示例#1
0
文件: game.py 项目: Mziserman/p2018
class Game:
	def set_up(self):
		self.player = Character()
		self.monsters = [
			Goblin(),
			Troll(),
			Dragon()
		]

	def get_next_monster(self):
		try:
			return self.monsters.pop(0)
		except IndexError:
			return None

	def monster_turn(self):
		if self.monster.attack():
			if self.player.dodge():
				print("{} vous attaque mais vous evitez le coup".format(self.monster))
			else:
				print("{} vous attaque et vous n'esquivez pas le coup".format(self.monster))
				self.player.hit_points -= 1
		else:
			print("{} n'a pas réussi à vous attaquer".format(self.monster))

	def choose_action(self):
		action = input("Choose your action : [A]ttack, [R]est, [Q]uit: ").lower()

		if action in 'arq':
			if action == 'a':
				return 'attack'
			elif action == 'r':
				return 'rest'
			else:
				return 'quit'
		else:
			return self.choose_action()

	def player_turn(self):
		action = self.choose_action()

		if action == "attack":
			if self.player.attack():
				if self.monster.dodge():
					print("Vous attaquez {} mais il arrive a esquiver".format(self.monster))
				else:
					print("Vous attaquez {} et lui enlevez 1 hp".format(self.monster))
					if self.monster.hit_points > 1:
						self.monster.hit_points -= 1
					else:
						self.clean_up()
			else:
				print("Vous ratez votre attaque")
		elif action == "rest":
			self.player.rest()
		else:
			self.quit()
		
	def clean_up(self):
		self.player.add_experience(self.monster.experience)
		print("Vous avez vaincu la {}".format(self.monster))
		self.monster = self.get_next_monster()

	def quit(self):
		return

	def __init__(self):
		self.set_up()
		self.monster = self.get_next_monster()

		while self.player.hit_points and (self.monster or self.monsters):
			print(self.player)
			self.monster_turn()
			self.player_turn()

		if self.player.hit_points:
			print('You win')
		else:
			print('You lose')