【対象】ナタク大戦三太子
3955 ワード
対象となるナタク大戦三太子
オブジェクト向けプログラミングは難しいですか?!私にとって、実は難しくない~なぜ難しいと感じるのか、あなたに対象に向かうあの人の説明がはっきりしていないことを伝播するためで、甚だしきに至っては彼本人がすべて対象に向かうことを深く理解していないと言えるかもしれません!もしかすると、しばらく勉強した後、蓄積があって一定の質変を生んだのかもしれません.
まとめ
私が書いた「ナタク大戦三太子」には、様々な文法規則やオブジェクト向けによく使われるプログラミング方法が意識的に混ざっている.たとえば、最初からRoleクラスを作成したり、Toolクラスを作成したりして、特殊な構造方法を使っています_.init__,マジックメソッド_str__,インスタンスオブジェクトは他のインスタンスオブジェクトをパラメータとして転送し、他のインスタンスオブジェクト属性を呼び出し、getter、setterを使用してカプセル化し、クラスインスタンス化オブジェクトを作成し、インスタンスオブジェクトを初期化、印刷し、getter、setterカプセル化効果をテストし、whileループ、forループ、条件判断、および役割ドメインの問題、異常キャプチャメカニズムなどがあります.全部混ざっている.もちろん、才疎学浅、また各位の大神に教えてもらいます~
"""
Project Name :
Created On : 7/30/2019 00:30:00
@Author : Eric_Yan
"""
class Role():
def __init__(self,role_name):
self.__name = role_name
self.lifevalue = 500
self.attack = 45
self.status = True
def __str__(self):
return "My name is %s,and my lifevalue is %d,and my attack is %d" %(self.__name,self.lifevalue,self.attack)
def commonskill(self,obj):
obj.lifevalue -= self.attack
if (obj.lifevalue < 50) & (obj.lifevalue > 0) :
obj.attack = obj.lifevalue
print("Be beated %d times,%s in danger!" %(count,obj.__name))
elif obj.lifevalue <=0:
obj.status = False
obj.lifevalue = 0
obj.attack = 0
print("Be beated %d times,%s dead." %(count,obj.__name))
else:
pass
def addtool(self,tool):
if self.lifevalue == 0:
print(" , ")
elif self.lifevalue < 20:
print(" , ")
else:
global get
get = True
self.tool = tool.name
self.lifevalue += tool.lifeplus
self.attack += tool.attackplus
@property
def name(self):
return self.__name
@name.setter
def name(self,value):
print("%s :%s" %(self.__name,value))
print("
"+"*"*50)
self.__name = value
class Tool():
def __init__(self,name,lifeplus,attackplus):
self.name = name
self.lifeplus = lifeplus
self.attackplus = attackplus
print("*********************** ***********************")
r1 = Role(" ")
print(r1)
print("
"+"*"*50)
r2 = Role(" ")
print(r2)
print("
"+"*"*50)
r2.name = " "
print(r1.name+" ",end='
')
t1 = Tool(" ",100,50)
get = None
count = 0
while True:
n = input(" %s %s :"%(r1.name,r2.name))
#import random
#n = random.randint(0,12)
#print(n)
try:
n = int(n)
except Exception as error:
print(error,end='
')
continue
else:
if n == 0:
print("
"+"*********************** ***********************")
break
print(" ~
")
for i in range(n):
if r2.status:
count += 1
r1.commonskill(r2)
print(r2.name," ",r2.lifevalue)
print(r2.name," ",r2.attack)
print("
"+"*"*50)
if r2.lifevalue == 0:
print(" %d ,%s !" %(count,r2.name))
print("
"+"*********************** ***********************")
break
else:
times = 0
while times < 3:
help = input(" ?[y/n]")
#help = random.choice(['Y','y','N','n',0,'s'])
#print(help)
if help == 'Y' or help == 'y':
r2.addtool(t1)
if get:
print(r2.name," ",r2.tool)
print(r2.name," +",t1.lifeplus)
print(r2.name," +",t1.attackplus)
print("
"+"*"*50)
break
elif help == 'N' or help == 'n':
print("
"+"*"*50)
break
else:
print("ValueError:Type [y/n] only
")
times += 1
if times == 2 :
print(" , !")
if times == 3 :
print("
"+"*********************** ***********************")
break
オブジェクト向けプログラミングは難しいですか?!私にとって、実は難しくない~なぜ難しいと感じるのか、あなたに対象に向かうあの人の説明がはっきりしていないことを伝播するためで、甚だしきに至っては彼本人がすべて対象に向かうことを深く理解していないと言えるかもしれません!もしかすると、しばらく勉強した後、蓄積があって一定の質変を生んだのかもしれません.
まとめ
私が書いた「ナタク大戦三太子」には、様々な文法規則やオブジェクト向けによく使われるプログラミング方法が意識的に混ざっている.たとえば、最初からRoleクラスを作成したり、Toolクラスを作成したりして、特殊な構造方法を使っています_.init__,マジックメソッド_str__,インスタンスオブジェクトは他のインスタンスオブジェクトをパラメータとして転送し、他のインスタンスオブジェクト属性を呼び出し、getter、setterを使用してカプセル化し、クラスインスタンス化オブジェクトを作成し、インスタンスオブジェクトを初期化、印刷し、getter、setterカプセル化効果をテストし、whileループ、forループ、条件判断、および役割ドメインの問題、異常キャプチャメカニズムなどがあります.全部混ざっている.もちろん、才疎学浅、また各位の大神に教えてもらいます~