初次使用物件導向式程式設計
做乙個奧特曼打怪獸案例
初次類的使用
思路:
需要建立三個類
(戰鬥者類)
奧特曼和怪獸共同點的類
裡面寫一些共同屬性
比如 攻擊,技能,血量,等等…
奧特曼類(戰鬥者)
首先繼承戰鬥者類,獲得戰鬥者類的所有屬性和方法
再寫一些奧特曼獨有的屬性
怪獸類(戰鬥者)
首先繼承戰鬥者類,獲得戰鬥者類的所有屬性和方法
再寫一些怪獸獨有的屬性
**如下:
# _*_ coding: utf-8 _*_
# date: 2019/8/10 0010 13:42
# author: mijiu
# version: 1.0
import time # 引用時間模組
import random # 引用隨機數模組
class hm(): # 戰鬥者類
def __init__(self,name,bis): # 初始化函式 bis為必殺技
self.hp = random.randint(5000, 7000) # 血量為 5000-7000隨機數
self.name = name
self.bis = bis
self.mp = random.randint(100, 200) # 藍量為100-200隨機數
def chuc(self): # 怪獸出場類方法 (沒什麼用 ,瞎寫的,可忽略)
"""怪獸出場!!!"""
print("雷聲陣陣....!")
time.sleep(1) # 睡眠一秒輸出
print("突然....!")
time.sleep(1)
print("啊.......嗚")
time.sleep(1)
print(f"\033[1;31;0m出現啦.....!!!\033[0m")
time.sleep(1)
print(f"出現啦!!!世界完蛋了,大家快跑啊!!")
def pg(self): # 普通攻擊方法
"""普通攻擊!"""
time.sleep(1)
print(f"進行攻擊!")
a = random.randint(400,700) # 普通攻擊傷害為400-700的隨機數
self.mp += 10 # 每次攻擊恢復10點藍
time.sleep(1)
print(f"傷害: ")
time.sleep(1)
print(f"的mp恢復了10點!")
return a
def bao(self): # 必殺技
if self.mp>=50: # 如果藍量大於50可釋放
time.sleep(1)
print(">>>>>>>>>>>>>>>>")
time.sleep(1)
print(">>>>>>>>>")
time.sleep(1)
print(f"必殺技")
time.sleep(1)
print(f"---------")
time.sleep(1)
self.mp -= 50 # 釋放後藍量-50
print(f"mp下降50! mp: ")
b =random.randint(1000,1500)
print(f"\033[1;31;0m傷害為!!!\033[0m")
return b
else:
time.sleep(1)
print(f"mp不足無法釋放絕招")
return false
def __str__(self): # 內建魔法方法,輸出物件時輸出
return f"\033[1;31;0m-------- hp: mp:\033[0m"
class monster(hm): # 怪獸類 ,繼承戰鬥者類
def __init__(self, name, bis):
super().__init__(name,bis)
class outman(hm): # 奧特曼類,繼承戰鬥者類
def __init__(self,name,bis):
super().__init__(name,bis)
def chuc(self): # 重寫出場方法(沒什麼用 ,瞎寫的,可忽略)
"""奧特曼特色登場"""
print("是他..是他...!")
time.sleep(1)
print("....就是他....!")
time.sleep(1)
print("我們的朋友....!")
time.sleep(1)
print(f"\033[1;31;0m出現啦.....大家有救了!!!!\033[0m")
print("")
def main(): # 執行函式
num = 0
outman_name = input("請輸入您選擇的奧特曼: ")
outman_bos = input("奧特曼的大招: ")
monster_name = input("請輸入您選擇的怪獸: ")
monster_bos = input("怪獸的絕招: ")
a = outman(outman_name,outman_bos) # 奧特曼例項化
b = monster(monster_name,monster_bos) # 怪獸例項化
print("\033[1;37;40m本次奧特曼和怪獸之戰!\033[0m")
time.sleep(1)
print("\033[1;37;40m以公平,公正,公開為原則!\033[0m")
time.sleep(1)
print("\033[1;37;40m所以說,並不是奧特曼必勝.\033[0m")
time.sleep(1)
b.chuc() # 怪獸呼叫出場方法
a.chuc()
while true:
if b.hp>0 and a.hp>0: # 如果怪獸和奧特曼都有血量就執行
num += 1
time.sleep(1)
print(f"\033[1;37;40m**********==第回合**********===\033[0m")
time.sleep(1)
print(a) # 輸出物件,自動執行了上面的__str__魔法方法
time.sleep(1)
print(b)
a = random.randint(0,100) # 隨機攻擊回合
if a >60: # 如果》60奧特曼攻擊 ,怪獸掉血
b.hp -= a.pg()
elif 60>=a>20:
a.hp -= b.pg()
elif 20>=a>10: # 如果是10-20直接奧特曼放絕招,怪獸掉血
b.hp -= a.bao()
else:
a.hp -= b.bao()
else:
if b.hp<=0: # 怪獸血為0,奧特曼獲勝
time.sleep(1)
print(f"\033[1;32;41mwin!!!!\033[0m")
break
else:
time.sleep(1)
print(f"\033[1;32;41mwin!!!!\033[0m")
time.sleep(1)
print("世界滅亡!")
break
main()
Python物件導向程式設計初級
結合 理解一下 class student object 定義乙個類 包含方法 函式 和屬性 數值 def init self,name,age 初始化,name,age是引數 self.name name 給self的name和age屬性附上值 self.age age 在把物件例項化之後,sel...
物件導向 初級
什麼是物件 什麼是收音機 物件是乙個整體,對外提供一些操作 什麼是物件導向 使用物件時,只關注物件提供的功能,而不關注內部細節 比如 jquery 物件導向是一種通用的思想,並非只有程式設計中能用,任何事情都可以用 js中的物件導向 物件導向程式設計 oop 的特點 抽象 抓住核心went 封裝 不...
物件導向 初級
物件導向 與 面向過程 物件導向物件,是根據某個物件,進行編寫物件屬性,不考慮物件以外的因素,只對物件本事的一些屬於自己的屬性進行創造,不用考慮 業務之間的邏輯。面向過程,是按照業務的一步步發展進行編碼,需要考慮業務邏輯順序 1 class role object 定義乙個類,名為role,繼承基類...