盖伦和瑞文对打的小游戏


'''分别定义盖伦类和瑞文类'''

# class Riven:
#     camp = 'Noxus'
#
#     def __init__(self, name, aggressivity=54, life_value=414, money=600, armor=12):
#         self.name = name
#         self.aggressivity = aggressivity
#         self.life_value = life_value
#         self.money = money
#         self.armor = armor
#
#     def attack(self, enemy):
#         damage_attack = self.aggressivity - enemy.armor
#         enemy.life_value -= damage_attack
#
#
# class Garen:
#     camp = 'Demcia'
#
#     def __init__(self, name, aggressivity=56, life_value=455, money=600, armor=19):
#         self.name = name
#         self.aggressivity = aggressivity
#         self.life_value = life_value
#         self.money = money
#         self.armor = armor
#
#     def attack(self, enemy):
#         damage_attack = self.aggressivity - enemy.armor
#         enemy.life_value -= damage_attack

'''定义大宝剑,加属性'''
class Dolan:
    def __init__(self, prize=475, life_value=100, aggrev=9):
        self.prize = prize
        self.life_value = life_value
        self.aggrev = aggrev

    def update(self, hero):
        hero.money -= self.prize
        hero.life_value += self.life_value
        hero.aggressivity += self.aggrev

'''通过英雄类来生成盖伦和瑞文'''
class Hero:
    def __init__(self, name, aggressivity, life_value, armor, money=600):
        self.name = name
        self.aggressivity = aggressivity
        self.life_value = life_value
        self.armor = armor
        self.money = money

    def attack(self, enemy):
        damage_attack = self.aggressivity - enemy.armor
        enemy.life_value -= damage_attack

'''通过类生成对象'''
ruiwen = Hero('ruiwen', 54, 414, 12)
gailun = Hero('gailun', 59, 454, 19)
b = Dolan()

'''这是执行的操作,前两个传入的是对象而不是对象的名字,只有对象才有下面的attck等方法'''
def action(hero, enemy, heroname, enemyname):
    while True:
        choice = input(f'{heroname}回合,请输入操作,a普通攻击,b升级属性').strip()
        if choice == 'a':
            hero.attack(enemy)
            break
        elif choice == 'b':
            if hero.money < 475:
                print('金币不足')
                continue
            b.update(hero)
            break
    hero.money += 50
    print(heroname, hero.life_value, hero.aggressivity, hero.money)
    print(enemyname, enemy.life_value, enemy.aggressivity, enemy.money)
    if enemy.life_value <= 0:
        return True

'''以n作为判断,形成回合制条件'''
n = 0
while True:
    n += 1
    if n % 2 == 0:
        res = action(ruiwen, gailun, '瑞文', '盖伦')
        if res:
            print('盖伦死了')
            break

    else:
        res = action(gailun, ruiwen, '盖伦', '瑞文')
        if res:
            print('瑞文死了')
            break

转载于:https://www.cnblogs.com/masterjian924/p/11046936.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值