Python 官方文档:入门教程 => 点击学习
前言 在本教程中,我们将使用Python写一个武侠类的游戏,大的框架全部搭好了,很多元素都可以自己添加,让游戏更丰富 📝个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列: ☄️爬
前言
在本教程中,我们将使用Python写一个武侠类的游戏,大的框架全部搭好了,很多元素都可以自己添加,让游戏更丰富
📝个人主页→数据挖掘博主ZTLJQ的主页
个人推荐python学习系列:
☄️python系列专栏 - 从零开始学python
完整的所有代码和游戏截图在最底部展示,以下是代码讲解
当我们开始编写一个武侠战斗游戏时,需要考虑游戏中的角色、战斗系统和基本功能。
以下代码中定义了一个基础角色类
Character
,该类用于创建角色对象,包括玩家和敌人。角色有名字、生命值和攻击力等属性。我们为角色定义了初始化方法__init__
,以及受伤和攻击的方法take_damage
和attack_target
。
class Character: def __init__(self, name, health, attack): self.name = name self.health = health self.attack = attack def take_damage(self, damage): self.health -= damage print(f"{self.name}受到了{damage}点伤害,剩余生命值:{self.health}") def attack_target(self, target): damage = random.randint(0, self.attack) print(f"{self.name}发起了攻击,对{target.name}造成了{damage}点伤害") target.take_damage(damage)
在这个基础上,我们派生了玩家类
Player
和敌人类Enemy
。玩家类额外包含了药水的数量,并且有一个方法use_potion
用于使用药水来恢复生命值。
class Player(Character): def __init__(self, name): super().__init__(name, health=100, attack=20) self.potions = 3 def use_potion(self): if self.potions > 0: self.health += 30 self.potions -= 1 print(f"{self.name}使用了一瓶药水,恢复了30点生命值,剩余药水数:{self.potions}") else: print(f"{self.name}没有药水了!")class Enemy(Character): def __init__(self, name): super().__init__(name, health=random.randint(50, 80), attack=random.randint(10, 15))
接着,我们定义了一个战斗函数
battle
,该函数模拟了玩家和敌人之间的战斗。玩家和敌人会轮流进行攻击,直到一方的生命值降为零。玩家可以选择攻击、使用药水或逃跑。战斗结果会根据生命值来判断胜负。
def battle(player, enemy): print(f"{player.name}遇到了{enemy.name}!") while player.health > 0 and enemy.health > 0: action = input("选择行动:[1] 攻击 [2] 使用药水 [3] 逃跑\n") if action == '1': player.attack_target(enemy) if enemy.health <= 0: print(f"{enemy.name}被击败了!") break enemy.attack_target(player) elif action == '2': player.use_potion() enemy.attack_target(player) elif action == '3': print(f"{player.name}逃跑了,游戏结束。") break else: print("无效的选择,请重新输入。") if player.health <= 0: print(f"{player.name}被{enemy.name}击败了,游戏结束。") elif enemy.health <= 0: print(f"{player.name}战胜了{enemy.name},获得了胜利!")
最后,在
main
函数中,我们首先获取玩家的名字,然后随机选择一个敌人。接着,调用battle
函数开始战斗。
def main(): player_name = input("请输入你的角色名:") player = Player(player_name) enemies = [Enemy("恶霸"), Enemy("刺客"), Enemy("恶徒")] enemy = random.choice(enemies) battle(player, enemy)if __name__ == "__main__": main()
以下是全代码和游戏截图
import randomclass Character: def __init__(self, name, health, attack): self.name = name self.health = health self.attack = attack def take_damage(self, damage): self.health -= damage print(f"{self.name}受到了{damage}点伤害,剩余生命值:{self.health}") def attack_target(self, target): damage = random.randint(0, self.attack) print(f"{self.name}发起了攻击,对{target.name}造成了{damage}点伤害") target.take_damage(damage)class Player(Character): def __init__(self, name): super().__init__(name, health=100, attack=20) self.potions = 3 def use_potion(self): if self.potions > 0: self.health += 30 self.potions -= 1 print(f"{self.name}使用了一瓶药水,恢复了30点生命值,剩余药水数:{self.potions}") else: print(f"{self.name}没有药水了!")class Enemy(Character): def __init__(self, name): super().__init__(name, health=random.randint(50, 80), attack=random.randint(10, 15))def battle(player, enemy): print(f"{player.name}遇到了{enemy.name}!") while player.health > 0 and enemy.health > 0: action = input("选择行动:[1] 攻击 [2] 使用药水 [3] 逃跑\n") if action == '1': player.attack_target(enemy) if enemy.health <= 0: print(f"{enemy.name}被击败了!") break enemy.attack_target(player) elif action == '2': player.use_potion() enemy.attack_target(player) elif action == '3': print(f"{player.name}逃跑了,游戏结束。") break else: print("无效的选择,请重新输入。") if player.health <= 0: print(f"{player.name}被{enemy.name}击败了,游戏结束。") elif enemy.health <= 0: print(f"{player.name}战胜了{enemy.name},获得了胜利!")def main(): player_name = input("请输入你的角色名:") player = Player(player_name) enemies = [Enemy("恶霸"), Enemy("刺客"), Enemy("恶徒")] enemy = random.choice(enemies) battle(player, enemy)if __name__ == "__main__": main()
来源地址:https://blog.csdn.net/SUEJESDA/article/details/132510232
--结束END--
本文标题: 用Python写一个武侠游戏
本文链接: https://lsjlt.com/news/388049.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0