【対象】ナタク大戦三太子

3955 ワード

対象となるナタク大戦三太子
"""
  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ループ、条件判断、および役割ドメインの問題、異常キャプチャメカニズムなどがあります.全部混ざっている.もちろん、才疎学浅、また各位の大神に教えてもらいます~