Python:猫をクラスで表現

Python

実行イメージ

たろう【オス】タイプ:三毛 体力:5

何する? 1:散歩 2:寝る q:終了>>> 1
楽しい♪
たろう 体力:4

何する? 1:散歩 2:寝る q:終了>>> 1
楽しい♪
たろう 体力:3

何する? 1:散歩 2:寝る q:終了>>> 1
楽しい♪
たろう 体力:2
腹減った!

何する? 1:散歩 2:寝る q:終了>>> 1
やだ!

何する? 1:散歩 2:寝る q:終了>>>
            :
            : 

ファイル名:class_cat.py

# クラスで猫を表現してみる

# 猫クラス
class Cat:
	# コンストラクタ
	def __init__(self, name, sex, type, hp):
		self.name = name       # 猫の名前
		self.sex = sex         # 性別
		self.type = type       # 種類
		self.hp = hp           # 体力
		self.isHungry = False  # お腹の減り具合
	
		print("{}【{}】タイプ:{} 体力:{}".format(self.name, self.sex, self.type, self.hp))

	# 散歩する
	def sanpo(self):
		if self.isHungry:  # お腹がすいている場合
			print("やだ!")
			return

		self.hp -= 1

		if self.hp < 3:  # 体力が減ったらお腹がすく
			self.isHungry = True

		print("楽しい♪")
		self.show_info()  # 状態表示
	
	# 寝る
	def neru(self):
		self.hp += 1  # 体力回復
		if self.hp >= 3:  # よく寝たらお腹回復
			self.isHungry = False

		print("あ~、よく寝た!")
		self.show_info()  # 状態表示

	# 状態表示
	def show_info(self):
		print("{} 体力:{}".format(self.name, self.hp))

		if self.isHungry:
			print("腹減った!")
	
# 猫生成
taro = Cat("たろう","オス", "三毛", 5)

# どうする?
while True:
	print("\n何する? 1:散歩 2:寝る q:終了>>> ", end="")
	do = input()

	if do == "1":
		taro.sanpo()
	elif do == "2":
		taro.neru()
	elif do == "q":
		break
	else:
		continue

コメント