|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
英雄pk怪物
用面向对象的方式编写一个小游戏,实现如下功能:英雄和怪物轮流攻击对方,展示对方受到的伤害与剩余血量,当一方血量低于0时游戏结束。
游戏输出结果如下所示:
小强你被张三攻击,受到了6点伤害!还剩54滴血
张三你被小强攻击,受到了25点伤害!还剩75滴血
小强你被张三攻击,受到了9点伤害!还剩45滴血
张三你被小强攻击,受到了19点伤害!还剩56滴血
小强你被张三攻击,受到了10点伤害!还剩35滴血
张三你被小强攻击,受到了23点伤害!还剩33滴血
小强你被张三攻击,受到了11点伤害!还剩24滴血
张三你被小强攻击,受到了22点伤害!还剩11滴血
小强你被张三攻击,受到了10点伤害!还剩14滴血
张三你被小强攻击,受到了24点伤害!还剩-13滴血
张三你被杀死了!胜败乃兵家常事 请重新来过。
- '''
- 题:英雄和怪物轮流攻击对方,展示对方受到的伤害与剩余血量,当一方血量低于0时游戏结束。
- 思路:
- 通过题意得知有2个对象 英雄 和 怪物。
- 因题中没有说明英雄和怪物的名称是什么及血量多少,则名称和血量由用户创建对象时输入。
- 伤害值则受到攻击时随机生成。
- 使用循环实现英雄和怪物轮流攻击,当一方血量低于0时退出循环游戏结束。
- 描述 英雄:
- 属性:
- 名称
- 血量
- 伤害血量
- 方法:
- 攻击(攻击对象)
- 被攻击
- 获取名称
- 获取血量
- 获取伤害血量
- 描述 怪物:
- 属性:
- 名称
- 血量
- 伤害血量
- 方法:
- 攻击(攻击对象)
- 被攻击
- 获取名称
- 获取血量
- 获取伤害血量
- '''
- import random
- # 描述英雄
- class Hero:
- def __init__(self, name, blood):
- self.name = name
- self.blood = blood
- self.hurBlood = 0
- def attack(self, monster):
- monster.attacked()
-
- def attacked(self):
- self.hurtBlood = random.randint(0, 50)
- if self.blood>0:
- self.blood -= self.hurtBlood
- def getName(self):
- return self.name
- def getBlood(self):
- return self.blood
- def getHurblood(self):
- return self.hurtBlood
-
- # 描述怪物
- class Monster:
- def __init__(self, name, blood):
- self.name = name
- self.blood = blood
- self.hurBlood = 0
-
- def attack(self, hero):
- hero.attacked()
-
- def attacked(self):
- self.hurtBlood = random.randint(0, 50)
- if self.blood>0:
- self.blood -= self.hurtBlood
- def getName(self):
- return self.name
- def getBlood(self):
- return self.blood
- def getHurblood(self):
- return self.hurtBlood
- # 游戏开始函数,传入英雄和怪物对象
- def startGame(hero, monster):
- flag = True # 用于标记切换攻击
- while True:
- if(flag):
- hero.attack(monster)
- print("%s你被%s攻击,受到了%d点伤害!还剩%d滴血" % (monster.getName(), hero.getName(), monster.getHurblood(), monster.getBlood()))
- if monster.getBlood()<=0:
- print("%s你被杀死了!胜败乃兵家常事 请重新来过。" % (monster.getName()))
- break
- flag = False
- else:
- monster.attack(hero)
- print("%s你被%s攻击,受到了%d点伤害!还剩%d滴血" % (hero.getName(), monster.getName(), hero.getHurblood(), hero.getBlood()))
- if hero.getBlood()<=0:
- print("%s你被杀死了!胜败乃兵家常事 请重新来过。" % (hero.getName()))
- break
- flag = True
-
- # 生成 英雄和怪物
- hero = Hero("张三", 100)
- monster = Monster("小强", 100)
- startGame(hero, monster)
复制代码
|
|