Python编写一个简易的“战斗模拟小游戏”

编写一个简易的“战斗模拟小游戏”,游戏规则如下:

1.每个人有这些属性:生命值、攻击力、暴击率、闪避率。

2.两个人轮流向对方发动攻击,正常时造成对方生命值减少量等于自身攻击力。

3.发动攻击方有一定的概率产生暴击,暴击时造成对方生命值减少量等于自身攻击力的2倍。

4.受到攻击方有一定的概率躲闪掉,躲闪掉时则此次攻击不造成生命值减少。

5.当其中一方生命值降低到0或负数则失败,游戏结束。

具体要求

编写程序的要求如下:

1.定义一个类,代表一位参战选手,可以通过__init.__构造函数设置他的名字和所有属性值。其中生命力、攻击力皆整数,暴击率、闪避率为0~1之间的实数。

2.给这个类实现一个attack方法,接受一个参数,该参数代表攻击的对象(另一个此类的实例)。按照上述规则计算利判断,如果对方失败,则返回True,否则返回False 。

3.需要在上述attack方法中输出相关信息,例如:

  • A向B发动了XXX点攻击。
  • B躲开了。
  • B的生命值降低到XXX。
  •  B失败了。

4.写一段主程序,创建上述类的两个实例,分别赋予他们不同的名字和属性值。然后使用循环,让二者轮流攻击对方,到结束。

示例代码

下面是一个用Python编写的简易战斗模拟小游戏的示例代码:

import random

class Fighter:
    def __init__(self, name, health, attack, crit_rate, dodge_rate):
        self.name = name
        self.health = health
        self.attack = attack
        self.crit_rate = crit_rate
        self.dodge_rate = dodge_rate
    
    def attack_enemy(self, enemy):
        print(f"{self.name}向{enemy.name}发动了{self.attack}点攻击。")
        
        if random.random() < enemy.dodge_rate:
            print(f"{enemy.name}躲开了攻击。")
        else:
            damage = self.attack
            
            if random.random() < self.crit_rate:
                damage *= 2
            
            enemy.health -= damage
            print(f"{enemy.name}的生命值降低到{enemy.health}。")
            
            if enemy.health <= 0:
                print(f"{enemy.name}失败了。")
                return True
        
        return False

# 创建两个选手实例
fighter1 = Fighter("A", 100, 20, 0.3, 0.2)
fighter2 = Fighter("B", 100, 18, 0.2, 0.3)

# 游戏主循环
while True:
    if fighter1.attack_enemy(fighter2):
        break
    
    if fighter2.attack_enemy(fighter1):
        break

这个程序首先定义了一个Fighter类,代表一位参战选手。该类具有生命值、攻击力、暴击率和闪避率等属性。其中,__init__方法用于初始化选手的属性。

类中还有一个attack_enemy方法,用于攻击敌人。在该方法中,根据规则进行攻击判断,并根据不同的情况输出相应的信息。

在主程序中,创建了两个选手实例fighter1fighter2,并通过循环让它们轮流攻击对方,直到一方失败为止。

请注意,在这个示例代码中,暴击率和闪避率的概率是随机生成的,可以根据实际需要进行调整。同时,这只是一个简单的示例,你可以根据自己的需求对代码进行修改和扩展。

© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享