题意
描述
一天唐僧被妖怪抓走了,菩萨神仙都不救,悟空八戒沙僧因为要争夺最后点盘缠,打了起来,最后谁能获得夺得最终的盘缠呢?
接着“西天取经已经放弃了(1)”和“西天取经已经放弃了(2)”,孙悟空猪八戒沙僧都准备好了,那就开战吧!!!!
他们三者的名字、血量、武器名称、武器攻击力的属性分别为:
孙悟空 50 金箍棒 20
猪八戒 100 九钉耙 15
沙僧 75 降妖宝杖 10
①每次战斗输入两个数index1和index2,这两个数分别代表攻击者和被攻击者,可以编写一个函数通过输入的值返回所指向的对象(见编程模板)。
②每次战斗前要根据攻击者和被攻击者存活情况进行判断,如果攻击者没存活,打印“xxx阵亡了 不能攻击”(xxx为攻击者名字);如果被攻击者没存活,打印“xxx阵亡了 不能被攻击”(xxx为攻击者名字);如果都存活,则调用被攻击者的beAttacked函数;
③循环体的控制条件是类的公有变量peopleNum不等于1
④循环结束后,根据存活者打印‘xxx赢了’(xxx为存活者名字)
输入:一次打斗输入分别是孙悟空猪八戒沙僧对应序号
输出:调用beAttacked方法时的打印及最终获胜的人的名字的打印
样例
输入 输出
示例 1
1
3
1
3
1
3
1
3
1
3
1
2
1
2
1
2
1
2
1
2
孙悟空用金箍棒攻击了沙僧 沙僧剩余血量55
孙悟空用金箍棒攻击了沙僧 沙僧剩余血量35
孙悟空用金箍棒攻击了沙僧 沙僧剩余血量15
孙悟空用金箍棒攻击了沙僧 沙僧阵亡了
沙僧阵亡了 不能被攻击
孙悟空用金箍棒攻击了猪八戒 猪八戒剩余血量80
孙悟空用金箍棒攻击了猪八戒 猪八戒剩余血量60
孙悟空用金箍棒攻击了猪八戒 猪八戒剩余血量40
孙悟空用金箍棒攻击了猪八戒 猪八戒剩余血量20
孙悟空用金箍棒攻击了猪八戒 猪八戒阵亡了
孙悟空赢了
解:
算法都谈不上的一道水题,帮助初学者熟悉一下class的用法吧。要是接触过c的同学,可以把类理解成一种结构体吧,用熟了其实是挺好用。
代码:
class people():
def __init__(self, name, life, weaponName, weaponPower, peopleAlive):
self.name=name
self.life=life
self.weaponName=weaponName
self.weaponPower=weaponPower
self.peopleAlive=peopleAlive
def beAttacked(self, pow):
self.life = self.life-pow
def showResult(self, attacker, weapon, live):
print("{}用{}攻击了{}".