写一个对战类游戏的代码
时间: 2023-12-20 14:03:14 浏览: 390
好的,我来写一个简单的对战游戏代码。这个游戏是两个玩家对战,每个玩家有三个角色,每个角色有一定的攻击和防御属性。玩家可以选择其中一个角色进行攻击,攻击后另一个玩家可以选择防御或者反击。游戏的胜利条件是将对手的三个角色全部击败。
下面是代码实现:
```python
import random
class Character:
def __init__(self, name, attack, defense):
self.name = name
self.attack = attack
self.defense = defense
self.health = 100
def attack_opponent(self, opponent):
damage = random.randint(1, self.attack)
print(f"{self.name} attacks {opponent.name} for {damage} damage.")
opponent.defend(damage)
def defend(self, damage):
block = random.randint(1, self.defense)
if block >= damage:
print(f"{self.name} blocks the attack!")
else:
self.health -= damage - block
print(f"{self.name} takes {damage - block} damage.")
def is_alive(self):
return self.health > 0
class Game:
def __init__(self):
self.player1 = [Character("Knight", 20, 10), Character("Archer", 15, 5), Character("Mage", 10, 15)]
self.player2 = [Character("Warrior", 15, 15), Character("Rogue", 10, 20), Character("Wizard", 5, 25)]
self.current_player = 1
def switch_player(self):
self.current_player = 1 if self.current_player == 2 else 2
def get_opponent(self):
return self.player1 if self.current_player == 2 else self.player2
def get_current_player(self):
return self.player2 if self.current_player == 1 else self.player1
def play(self):
while True:
current = self.get_current_player()
opponent = self.get_opponent()
print(f"\n{current[0].name}({current[0].health}), {current[1].name}({current[1].health}), {current[2].name}({current[2].health})")
print(f"{opponent[0].name}({opponent[0].health}), {opponent[1].name}({opponent[1].health}), {opponent[2].name}({opponent[2].health})")
choice = int(input(f"\n{current[0].name}, {current[1].name}, or {current[2].name}? "))
attacker = current[choice - 1]
defender = opponent[random.randint(0, 2)]
attacker.attack_opponent(defender)
if not defender.is_alive():
print(f"{defender.name} has been defeated!")
opponent.remove(defender)
if len(opponent) == 0:
print(f"{current[0].name} wins!")
break
self.switch_player()
game = Game()
game.play()
```
这个游戏代码中,我们首先定义了一个角色类 Character,它包含了名字,攻击力,防御力和生命值等属性。接下来,我们定义了一个游戏类 Game,它包含了两个玩家的三个角色,并且实现了游戏的逻辑。每个回合,玩家可以选择其中一个角色进行攻击,攻击后另一个玩家可以选择防御或者反击。当一个玩家的三个角色全部被击败时,游戏结束,另一个玩家获胜。
在游戏中,我们使用了 random 模块来实现随机攻击和防御。同时,我们还定义了一些辅助函数,如 switch_player() 用于交换当前玩家和对手,get_opponent() 和 get_current_player() 用于获取当前玩家和对手的角色列表等。
最后,我们创建了一个游戏实例 game,并调用了它的 play() 方法来开始游戏。玩家可以通过输入 1,2,3 来选择自己的角色进行攻击。
阅读全文