首页 >> 日常问答 >

问 Python人狗大战游戏代码实现

2026-09-16 16:20:40

答

在编程学习过程中,通过小游戏来巩固基础语法是很有趣的方式。本文提供一段Python代码,实现一个简单的“人狗大战”回合制对战游戏。玩家控制人物与计算机控制的狗进行战斗,双方轮流攻击,直到一方血量为0。

游戏设计思路

- 人物和狗各有生命值(hp)和攻击力(atk)。

- 每回合玩家先选择攻击或逃跑,若攻击则随机造成伤害;若逃跑有一定概率成功。

- 计算机控制的狗每回合自动攻击玩家。

- 游戏持续直到一方生命值归零,输出胜负结果。

完整代码

```python

import random

class Character:

def __init__(self, name, hp, atk):

self.name = name

self.hp = hp

self.atk = atk

def is_alive(self):

return self.hp > 0

def attack(self, opponent):

damage = random.randint(int(self.atk 0.8), int(self.atk 1.2))

opponent.hp -= damage

print(f"{self.name} 攻击了 {opponent.name},造成 {damage} 点伤害,{opponent.name} 剩余血量 {opponent.hp}")

return damage

def main():

player = Character("你", 100, 25)

dog = Character("狗", 80, 30)

print("=== 人狗大战 ===")

print(f"你的血量:{player.hp}攻击力:{player.atk}")

print(f"狗的血量:{dog.hp}攻击力:{dog.atk}")

print("")

while player.is_alive() and dog.is_alive():

玩家回合

print("你的回合:1. 攻击2. 逃跑")

choice = input("请选择操作:")

if choice == "1":

player.attack(dog)

elif choice == "2":

if random.random() < 0.3:

print("你成功逃跑了!游戏结束")

return

else:

print("逃跑失败,受到狗的偷袭!")

dog.attack(player)

else:

print("无效输入,自动视为攻击")

player.attack(dog)

if not dog.is_alive():

break

狗回合

print("狗的回合:")

dog.attack(player)

判断胜负

if player.is_alive():

print("恭喜你战胜了狗!")

else:

print("你被狗打败了...")

if __name__ == "__main__":

main()

```

代码说明

1. Character类:定义了角色属性(名称、血量、攻击力)和攻击方法。攻击伤害在攻击力的80%~120%之间随机波动。

2. main函数:初始化玩家和狗,进入循环。玩家可以选择攻击或逃跑(逃跑成功率30%)。逃跑失败时狗会立即反击一次。狗回合自动攻击玩家。

3. 游戏流程:每回合显示双方状态,直到一方血量归零或玩家成功逃跑。

运行示例

```

=== 人狗大战 ===

你的血量:100攻击力:25

狗的血量:80攻击力:30

你的回合:1. 攻击2. 逃跑

请选择操作:1

你 攻击了 狗,造成 27 点伤害,狗 剩余血量 53

狗的回合:

狗 攻击了 你,造成 33 点伤害,你 剩余血量 67

你的回合:1. 攻击2. 逃跑

请选择操作:1

你 攻击了 狗,造成 22 点伤害,狗 剩余血量 31

...

```

扩展建议

- 可以增加技能系统,如暴击、闪避、回血等。

- 用图形界面(如pygame)替代控制台。

- 添加多关卡或不同敌人。

注意事项

代码使用纯Python标准库,无需额外安装。复制到Python环境即可运行。注意输入为数字,否则会被视为无效操作。

  免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。

 
分享:
最新文章