当前位置: 移动技术网 > IT编程>脚本编程>Python > 丧心病狂编一个400多行的游戏

丧心病狂编一个400多行的游戏

2020年07月30日  | 移动技术网IT编程  | 我要评论

我最近在python编了一个文字游戏
大家可以来指点指点
代码如下:

print(“一定要输入对”)
print(“不然程序会混乱”)
name = input(“你叫什么名字?”)
message = input(“1.向左走 2.向右走”)

if message == ‘1’:
print(“有一个人站在那”)
print(“他数着数”)
print(“1……2……3……4……5”)

message = input("想上去问问吗")
if message == '想':
    print("你去了")
    print("他看见你了,立刻和你打起来")
    print("他立刻掏出一把刀")
    print("…………")
    print("你掏出了一把手枪")

    message = input("打他吗?")
    if message == '打':
        print("他跑了")

        message = input("追吗?")
        if message == '追':
            print("你追他")
            print("他向你扔刀子")
            print("你躲开了")
            print("并把他杀了")
            print("GAME OVER")

        elif message == '不追':
            print("你没有追")
            print("你回了家")
            print("GANE OVER")
        else:
            print("你选了别的")
            print("你不能选别的")

    elif message == '不打':
        print("你没有打他")
        print("但把他吓死了")
        print("你犯罪了")
        print("被判了20年才出监狱")
    else:
        print("你不应该选这个的")
        print("ok?")
elif message == '不想':
    print("你没有问他")
    print("平安无事")
    print("GAME OVER")
else:
    print("请你不要这样")

elif message == ‘2’:
print(“你来到一家游戏厅”)
message = input(“玩游戏吗?”)

if message == '玩':
    print("玩什么游戏")
    message = input("1.3v3决斗 2.猜拳 3.对打")
    if message == '1':
        import time, random

        class Role():
            def __init__(self, name='|角色|'):
                self.name = name
                self.life = random.randint(100, 150)
                self.attack = random.randint(30, 50)


        class Sains_knight(Role):
            def __init__(self, name='|圣光骑士|'):
                Role.__init__(self, name)
                self.life = 5 * self.life
                self.attack = 3 * self.attack

            def fight_buff(self, enemy):
                if enemy == '|暗影刺客|':
                    self.attack *= 1.5
                else:
                    self.attack = self.attack


        class Shadow_Assassin(Role):
            def __init__(self, name='|暗影刺客|'):
                Role.__init__(self, name)
                self.life = 3 * self.life
                self.attack = 5 * self.attack

            def fight_buff(self, enemy):
                if enemy == '|精灵弩手|':
                    self.attack *= 1.5
                else:
                    self.attack = self.attack


        class Faerie_Bowman(Role):
            def __init__(self, name='|精灵弩手|'):
                Role.__init__(self, name)
                self.life = 4 * self.life
                self.attack = 4 * self.attack

            def fight_buff(self, enemy):
                if enemy == '|圣光骑士|':
                    self.attack *= 1.5
                else:
                    self.attack = self.attack


        class GAME():
            def __init__(self):
                self.players = []
                self.enemies = []
                self.show_title()
                self.show_role()
                self.order_role()
                self.pk_role()

            # 随机生成角色的属性
            def born_role(self):
                for i in range(3):
                    self.players.append(random.choice([Sains_knight(), Shadow_Assassin(), Faerie_Bowman()]))
                    self.enemies.append(random.choice([Sains_knight(), Shadow_Assassin(), Faerie_Bowman()]))

            # 生成和展示角色信息
            def show_role(self):
                self.born_role()
                # 展示我方的3个角色
                print('----------------- 角色信息 -----------------')
                print('你的队伍:')
                for i in range(3):
                    print('|我方|%s  血量:%s  攻击:%s'
                          % (self.players[i].name, self.players[i].life, self.players[i].attack))
                print('--------------------------------------------')
                print('敌人队伍:')

                # 展示敌方的3个角色
                for i in range(3):
                    print('|敌方|%s  血量:%s  攻击:%s'
                          % (self.enemies[i].name, self.enemies[i].life, self.enemies[i].attack))
                print('--------------------------------------------')
                input('请按回车键继续。')  # 为了让玩家更有控制感,可以插入类似的代码来切分游戏进程。

            # 角色排序,选择出场顺序。
            def order_role(self):
                order_dict = {}
                for i in range(3):
                    order = int(input('你想让{}第几个上场?(输入数字1-3)'.format(self.players[i].name)))
                    order_dict[order] = self.players[i]

                self.players = []
                for i in range(1, 4):
                    self.players.append(order_dict[i])

                print('\n我方角色的出场顺序是:%s、%s、%s' % (self.players[0].name, self.players[1].name, self.players[2].name))
                print('敌方角色的出场顺序是:%s、%s、%s' % (self.enemies[0].name, self.enemies[1].name, self.enemies[2].name))

            # 角色PK
            def pk_role(self):
                round = 1
                score = 0
                for i in range(3):  # 一共要打三局
                    player_name = self.players[i].name
                    enemy_name = self.enemies[i].name
                    # 判断敌人是否对其有克制效果,有则进行攻击加成
                    self.players[i].fight_buff(enemy_name)
                    self.enemies[i].fight_buff(player_name)
                    player_life = self.players[i].life
                    player_attack = self.players[i].attack
                    enemy_life = self.enemies[i].life
                    enemy_attack = self.enemies[i].attack

                    # 每一局开战前展示战斗信息
                    print('\n----------------- 【第%s局】 -----------------' % round)
                    print('玩家角色:%s vs 敌方角色:%s ' % (player_name, enemy_name))
                    print('%s 血量:%s  攻击:%s' % (player_name, player_life, player_attack))
                    print('%s 血量:%s  攻击:%s' % (enemy_name, enemy_life, enemy_attack))
                    print('--------------------------------------------')
                    input('请按回车键继续。\n')

                    # 开始判断血量是否都大于零,然后互扣血量。
                    while player_life > 0 and enemy_life > 0:
                        enemy_life = enemy_life - player_attack
                        player_life = player_life - enemy_attack
                        print('%s发起了攻击,%s剩余血量%s' % (player_name, enemy_name, enemy_life))
                        print('%s发起了攻击,%s剩余血量%s' % (enemy_name, player_name, player_life))
                        print('--------------------------------------------')
                        time.sleep(1)
                    else:  # 每局的战果展示,以及分数score和局数的变化。
                        # 调用show_result()函数,打印返回元组中的result。
                        print(self.show_result(player_life, enemy_life)[1])
                        # 调用show_result()函数,完成计分变动。
                        score += int(self.show_result(player_life, enemy_life)[0])
                        round += 1
                input('\n点击回车,查看比赛的最终结果\n')

                if score > 0:
                    print('【最终结果:你赢了!】\n')
                elif score < 0:
                    print('【最终结果:你输了!】\n')
                else:
                    print('【最终结果:平局!】\n')

            # 返回单局战果和计分法所加分数。
            def show_result(self, player_life, enemy_life):  # 注意:该函数要设定参数,才能判断单局战果。
                if player_life > 0 and enemy_life <= 0:
                    result = '\n敌人死翘翘了,你赢了!'
                    return 1, result  # 返回元组(1,'\n敌人死翘翘了,你赢了!'),类似角色属性的传递。
                elif player_life <= 0 and enemy_life > 0:
                    result = '\n悲催,敌人把你干掉了!'
                    return -1, result
                else:
                    result = '\n哎呀,你和敌人同归于尽了!'
                    return 0, result

            # 展示标题
            def show_title(self):
                print('''--------------欢迎来到炼狱角斗场-----------------

在昔日的黄昏山脉,陆奥帝国的北境边界上,有传说中的’炼狱角斗场’!
鲜血与战斗是角斗士的归宿,金钱与荣耀是角斗士的信仰!
今日,只要【你的队伍】能取得胜利,你将获得一笔够花一百万的财富!
即将随机生成【你的队伍】和【敌人队伍】!’’’)
input(’\n狭路相逢勇者胜,话不投机半句多(按任意键继续…)’)

        GAME_START = GAME()

    elif message == '2':
        import random  # 导入随机模块

        num = 1
        yin_num = 0
        shu_num = 0
        while num <= 3:
            if shu_num == 2 or yin_num == 2:
                break
            user = int(input('请出拳 0(石头) 1(剪刀) 2(布)'))
            if user > 2:
                print('不能出大于2的值')
            else:
                data = ['石头', '剪刀', '布']
                com = random.randint(0, 2)
                print("您出的是{},电脑出的是{}".format(data[user], data[com]))
                if user == com:
                    print('平局')
                    continue
                elif (user == 0 and com == 1) or (user == 1 and com == 2) or (user == 2 and com == 0):
                    print('你赢了')
                    yin_num += 1
                else:
                    print('你输了')
                    shu_num += 1
            num += 1
    elif message == '3':
        import time
        import random

        lose_player = 0
        lose_enemy = 0
        for i in range(3):
            print('-' * 10 + '第' + str(i + 1) + '局' + '-' * 10)
            hp_player = random.randint(100, 181)
            attack_player = random.randint(30, 51)
            hp_enemy = random.randint(100, 181)
            attack_enemy = random.randint(30, 51)
            print('【玩家血量】:', hp_player, '【玩家战力】:', attack_player)
            print('【敌人血量】:', hp_enemy, '【敌人战力】:', attack_enemy)
            print('-' * 30)
            time.sleep(1.5)
            while hp_player > 0 and hp_enemy > 0:
                hp_player = hp_player - attack_enemy
                hp_enemy = hp_enemy - attack_player
                print('你发起了攻击,【敌人】剩余血量:', hp_enemy)
                print('敌人向你发起了攻击,【玩家】的血量剩余:', hp_player)
                print('-' * 30)
                time.sleep(1.5)
            if hp_enemy <= 0 and hp_player < 0:
                print('玩家和敌人同归于尽了!')
            elif hp_enemy < 0 and hp_player >= 0:
                print('欧耶!敌人被玩家干掉了!')
                lose_enemy += 1
            elif hp_player < 0 and hp_enemy > 0:
                print('悲催,玩家被敌人干掉了!')
                lose_player += 1
            print('-' * 30)
            time.sleep(1.5)
            if lose_enemy == 2:
                print('【最终结果:玩家获胜!】')
                break
            elif lose_player == 2:
                print('【最终结果:你输了!】')
                break
        else:
            if lose_enemy > lose_player:
                print('【最终结果:玩家获胜!】')
            elif lose_player > lose_enemy:
                print('【最终结果:玩家输了!】')
            else:
                print('【最终结果:平局】')
    else:
        print("你是脑残吗?")
        message = input("1.是 2.是")
        if message == '1':
            print("好的")
            print("脑残!")
            print("看来真傻")
            print("说自己是脑残")
            print("·……·")
        elif message == '2':
            print("好吧")
            print("我承认你是脑残")
        else:
            print("你好,脑残!")
            print("想退出游戏?")
            print("没门")
            print("······")
            message = input("我好笑吗?")
            message = input("你真的很傻")
            message = input("你好,傻冒")
            message = input("来回答我问题,好吗?")
            message = input("你 这 样 的 人 ,就 应 该 让 程 序 员 马 死!!!")
            print("……")
            print("……")
            print("认输了吗?")
            print("(可回复“认输了” 和 “不认输”)")
            message = input("认了吗?")

            if message == '认输了':
                print("好吧")
                print("祝你好自为之吧,s——")
            elif message == '不认输':
                print("********")
                print("祖安场地")
                print("********")
                print("专")
                print("为")
                print("不")
                print("守")
                print("规")
                print("的")
                print("人")
                print("打")
                print("造")
                print("你真知道 祖 安 吗")
                print("————————————————————————————")
                print("           头条             ")
                print(   name + "的一家老小死于曹死")
                print("        原因: 找曹  ")
                print("———————————————————————————")
                print("           复条            ")
                print(    name + "一家在医院被J死")
                print("        原因: 想")
                print("你好" + name )
                print("想好了吗")
                print("请 你 好 好 玩 游 戏 !!")
            else:
                print("你 真 想 玩 程 序 员?")
                print("GAME OVER")
                print("**"
                      "**"
                      "**"
                      "**"
                      "**"
                      "**"
                      "**"
                      "**"
                      "**"
                      "**"
                      "**")
                print("OVER 个屁!")
                print("你个孤儿")
                print("你个没妈的孩子")
                print("你想啥呢")
                print("你要干嘛?")
                print("疯了是吗")
                print("连个要饭的都不是")
                print("nmd")
                print("cnm")
                print("rn*")
                print("s*")
                print("二百五")
                print("sm")
                print("Tmd")
                print("你妈怎么教你的你知道吗")
                print("不会?")
                print("先拖了衣服在大街上跑几圈")
                print("想结束游戏")
                print("你配吗")
                print("您不能做回人?")
                print("好吧")
                print("我不说了")

elif message == '不玩':
    print("GAME OVER")

else:
    print("你不应该选别的")
    message = input("知道了吗?")

    if message == '知道':
        message = input("真的知道了吗?")
        if message == '知道了':
            print("好吧")
            print("看来你知道了")
            print("重玩游戏吧")
        elif message == '不知道':
            print("???")
            print("玩我呢?")
            print("你真行")
            print("傻逼")
        else:
            print("真是一个傻逼")
            print("不听劝啊")
            print("还选别的")
    elif message == '不知道':
        print("好吧")
        print("真傻X")
        print("就 是 不 要 选 别 的!")
    else:
        print("还……")
        print("不要选别的")
        print("说你呢")
        print("对,就是你这个傻逼")

else:
print(“你不应该选别的”)
print(“ok?”)

还有上面几个代码呢!

内有彩蛋,要有不正确的输入才能激活

本文地址:https://blog.csdn.net/weixin_44665460/article/details/107660881

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网