Python制作文字游戏(题目+代码)

题目:

游戏人物及属性

(1)小A,女,18,初始战斗力1000

(1)小B,男,20,初始战斗力1800

(1)小C,女,19,初始战斗力2500

游戏场景,分别是:

(1)草丛战斗,消耗200战斗力

(2)自我修炼,增加100战斗力

(3)多人游戏,消耗500战斗力

编写程序模拟游戏场景。

我的分析:定义一个类,包含人物的各种属性以及三种游戏场景,之前想把三个游戏场景再定义为一个子类,这样麻烦不说,也没写出来,所以干脆就用一个Game类完成。

首先Game类中包含了三个场景方法,草丛战斗以我的想法是与别人战斗,所以设定双方都会消耗战斗力,而且战斗力不足不允许战斗。自我修炼没什么好说的,修炼一次增加100攻击力。多人游戏应该是混战,参战人物都会消耗战斗力,不过现在的bug是混战中只有一人也会消耗,这点还没想好怎么改合适。

参考代码如下:

#  定义游戏类,主要包含了三个场景函数,战斗,修炼,多人游戏:
class Game:
    def __init__(self, name, sex, age, aggressivity):
        """
        人物的初始属性值
        :param name: 游戏人物名
        :param sex: 人物性别
        :param age: 人物年龄
        :param aggressivity: 人物战斗力
        """
        self.name = name
        self.sex = sex
        self.age = age
        self.aggressivity = aggressivity

    def Fight(self, person):
        """
        人物攻击函数,双方都减少等量的战斗力
        :param person: 被攻击的人物名
        :return: 攻击完输出双方战斗力
        """
        if self.aggressivity <= 200:  # 判断战斗力是否达到200,不足200无法战斗
            print("{}战力过低,不能继续战斗了,当前战斗力还有{}".format(self.name, self.aggressivity))
        else:
            self.aggressivity -= 200
            person.aggressivity -= 200
            print("{}攻击了{},{}的战斗力还剩{},{}的战斗力还剩{}".format(self.name, person.name, self.name, self.aggressivity,
                                                         person.name, person.aggressivity))

    def XiuLian(self):
        """
        人物进行修炼,增加一定的攻击力
        :return: 修炼完毕输出当前攻击力
        """
        self.aggressivity += 100
        print("修炼完毕,战斗力现在是{}".format(self.aggressivity))

    def DuoRen(self, *args):
        """
        多人混战,结束后各自减少相同的攻击力
        :param args: 参与大战的人物,这里是以元组的形式保存在args里
        :return: 大战结束后返回各自的战斗力
        """
        for i in args:  # for循环遍历参战人物列表
            if i.aggressivity <= 500:  # 判断每个人物的战斗力是否达到500
                print("{}的战斗力只有{},无法战斗".format(i.name, i.aggressivity))
                continue  # 战斗力不足500跳过
            else:
                i.aggressivity -= 500  # 参加战斗后战力减少500
                print("一场混战后{}的战斗力降到了{}".format(i.name, i.aggressivity))


p1 = Game("A", "女", 18, 1000)
p2 = Game("B", "男", 20, 1800)
p3 = Game("C", "女", 19, 2500)
p1.Fight(p2)
p1.XiuLian()
p1.DuoRen(p1, p2, p3)

运行截图:

Python制作文字游戏(题目+代码)
Python学习

Python字典练习题:统计列表中字符出现的次数

2021-2-15 23:13:54

Python学习

Python使用函数返回两个数相乘的结果:题目:Multiply (Intro)

2021-4-3 15:20:54

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索