鱼C论坛

 找回密码
 立即注册
查看: 3402|回复: 16

[学习笔记] 一个很无聊的小游戏,增加互动性(更新编码)

[复制链接]
发表于 2020-2-23 17:55:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 飞天大猫 于 2020-2-23 21:28 编辑
player = input("请输入玩家名字,按回车后开始游戏 \n")

print("欢迎" +"【" + player + "】" +"进入冒险!")
    

def restart():
    restart = input("是否重新开始游戏 \n 1.重新开始 \n 2.退出游戏")
    while restart:
        if int(restart) == 1:
            print("【" + player + "】,请拿好你的剑,重装出击!!!")
            game_start()
            
        elif int(restart) == 2:
            break
        else:
            print("输入有误,请重新输入")
            
def game_start():
    import time,random

    player_life = random.randint(350,450)
    player_attack = random.randint(15,30)
    enemy_life = random.randint(100,150)
    enemy_attack = random.randint(10,20)

    count = 1

    print("【" + player + "】" + " 血量:" + str(player_life)  + ";攻击:" + str(player_attack))
    
    time.sleep(1.5)
    
    time.sleep(1)
    print("敌军即将到达战场")

    time.sleep(1.5)

    print("【敌军】" + " 血量:" + str(enemy_life) + ";攻击:" + str(enemy_attack))

    time.sleep(1)

    print("即将进入战斗")

    time.sleep(1)

    while player_life:
        if player_life <= 0:
            break

        if player_life > 0 and enemy_life > 0:
            player_life = player_life - enemy_attack
            enemy_life = enemy_life - player_attack
            
            print("→→→你和敌军拼杀!!!→→→")
            print("【" + player + "】" + "剩余血量" + str(player_life) + " ‖ 【敌军】剩余血量" + str(enemy_life))
            
            time.sleep(1.5)
        elif player_life > 0 and enemy_life <= 0:
            print("敌军已被你击败,等待新一波敌军进入战场!")

            count += 1

            print("击杀1批敌军,属性可提升 \n1.增加血量 \n2.增加攻击")

              
            while True:
                tips = input("请选择")

                if int(tips) == 1:
                
                    player_life = player_life + random.randint(20,41)
                
                    print("【" + player + "】" + "血量↑:" +  str(player_life) + ";攻击:" + str(player_attack))
                                    
                    enemy_life = random.randint(100,150)
                    enemy_attack = random.randint(10,20)
                
                    print("【敌军】" + "血量:" + str(enemy_life) + ";攻击:" + str(enemy_attack))
                    
                    time.sleep(1)

                    break
                
                elif int(tips) == 2:
                
                    player_attack = player_attack + random.randint(3,9)                       
                
                    print("【" + player + "】" + "血量:"+  str(player_life) + ";攻击↑:" + str(player_attack))
                                    
                    enemy_life = random.randint(100,150)
                    enemy_attack = random.randint(10,20)
                
                    print("【敌军】" + "血量:" + str(enemy_life) +";攻击:" + str(enemy_attack))
                    
                    time.sleep(1)
                
                    break

                else:
                    print("输入有误,请重新输入")
        
  
              

    if player_life <= 0 and enemy_life <= 0:
        print("你与最后一个敌军同归于尽了!共打败了%d 个敌军!" % count)

        time.sleep(1.5)
        
        if count <= 5:
            time.sleep(1)
            print("“真的勇士敢于直面惨淡的人生,敢于正视淋漓的鲜血。”")
            
        elif count >= 10:
            time.sleep(1)
            print("“泽国江山入战图,生民何计乐樵苏。\n 凭君莫话封侯事,一将功成万骨枯。\n 传闻一战百神愁,两岸强兵过未休。 \n 谁道沧江总无事,近来长共血争流。”")
        else:
            time.sleep(1)
            print("“剑阁峥嵘而崔嵬,一夫当关,万夫莫开。”")
        restart()
  
    else:
        count -= 1
        print("你已经尽力了!共打败了%d 个敌军!" % count)

        time.sleep(1.5)
        
        if count <= 5:
            time.sleep(1)
            print("“真的勇士敢于直面惨淡的人生,敢于正视淋漓的鲜血。”")            
        elif count >= 10:
            time.sleep(1)
            print("“泽国江山入战图,生民何计乐樵苏。\n 凭君莫话封侯事,一将功成万骨枯。\n 传闻一战百神愁,两岸强兵过未休。 \n 谁道沧江总无事,近来长共血争流。”")
        else:
            time.sleep(1)
            print("“剑阁峥嵘而崔嵬,一夫当关,万夫莫开。”")
            
        restart()
       
game_start()
        


我把编码改了,加了重新开始的选项

还是那句话:谁能给我改个exe封装啊~~~~~~~~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-23 18:19:03 | 显示全部楼层
哦,好玩!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 19:12:05 | 显示全部楼层
为什么要str(player)啊?直接input()得到的类型应该就是str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 19:12:53 | 显示全部楼层
游戏很不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 19:23:50 | 显示全部楼层
Cosent 发表于 2020-2-23 19:12
为什么要str(player)啊?直接input()得到的类型应该就是str

避免挖坑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 19:25:15 | 显示全部楼层
啥意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 19:30:33 | 显示全部楼层

避免后面引用的时候有其他需求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 20:15:59 | 显示全部楼层
额,但把一串字符串给字符串化总感觉有点。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 20:44:13 | 显示全部楼层
Cosent 发表于 2020-2-23 20:15
额,但把一串字符串给字符串化总感觉有点。。。。。。

哈哈,我有强迫症;改掉它,顺便把其他的也改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 20:55:01 | 显示全部楼层
PYTHON真难
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 21:28:31 | 显示全部楼层
更新了编码,大家可以再试下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 21:29:05 | 显示全部楼层
Cosent 发表于 2020-2-23 20:15
额,但把一串字符串给字符串化总感觉有点。。。。。。

我把编码改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 21:32:26 | 显示全部楼层

感觉跟其他的编码逻辑上还是一样的,就是要记公式太痛苦了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 21:33:01 | 显示全部楼层
wuqramy 发表于 2020-2-23 18:19
哦,好玩!!!

多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 13:25:48 | 显示全部楼层
试着做了一下优化,你看看咋样

player = input("请输入玩家名字,按回车后开始游戏 ")

print("欢迎%s进入冒险!"% player)
   

def restart():
    restart = input("是否重新开始游戏 \n 1.重新开始 \n 2.退出游戏\n:")
    while True:
        if restart in ["1","2"]:
            break
        else:
            restart = input("输入有误,请重新输入")
        
    if restart == "1":
        print("【%s】,请拿好你的剑,重装出击!!!"% player)
        game_start()
            
    else:
        print("游戏结束,感谢游玩^-^")
            
def game_start():
    import time,random

    player_life = random.randint(350,450)
    player_attack = random.randint(15,30)
    enemy_life = random.randint(100,150)
    enemy_attack = random.randint(10,20)

    count = 0

    print("【%s】 血量:%s;攻击:%s"% (player,enemy_life,player_attack))
   
    time.sleep(1.5)

    time.sleep(1)
    print("敌军即将到达战场")

    time.sleep(1.5)

    print("【敌军】 血量:%s;攻击:%s"% (enemy_life,enemy_attack))

    time.sleep(1)

    print("即将进入战斗")

    time.sleep(1)

    while player_life >0:
        
        if enemy_life > 0:
            player_life = player_life - enemy_attack
            enemy_life = enemy_life - player_attack
            
            print("→→→你和敌军拼杀!!!→→→")
            print("【%s】剩余血量%s ‖ 【敌军】剩余血量%s"% (player,player_life,enemy_life))
            
            time.sleep(1.5)
            
        elif enemy_life <= 0:
            print("敌军已被你击败,等待新一波敌军进入战场!")

            count += 1

            print("击杀1批敌军,属性可提升 \n1.增加血量 \n2.增加攻击")

              
            while True:
                tips = input("请选择:")

                if int(tips) == 1:
               
                    player_life += random.randint(20,41)
               
                    print("【%s】血量↑:%s;攻击:%s"%(player,player_life,player_attack))
                                    
                    enemy_life = random.randint(100,150)
                    enemy_attack = random.randint(10,20)
               
                    print("【敌军】血量:%s;攻击:%s"% (enemy_life,enemy_attack))
                    
                    time.sleep(1)

                    break
               
                elif int(tips) == 2:
               
                    player_attack += random.randint(3,9)                       
               
                    print("【%s】血量:%s;攻击↑:%s"% (player,player_life,player_attack))
                                    
                    enemy_life = random.randint(100,150)
                    enemy_attack = random.randint(10,20)
               
                    print("【敌军】血量:%s;攻击:%s"% (enemy_life,enemy_attack))
                    
                    time.sleep(1)
               
                    break

                else:
                    print("输入有误,请重新输入")
        
  
              

    if enemy_life <= 0:
        count += 1
        print("你与最后一个敌军同归于尽了!共打败了%d 个敌军!" % count)
    else:
        print("你已经尽力了!共打败了%d 个敌军!" % count)

    time.sleep(1.5)
        
    if count <= 5:
        time.sleep(1)
        print("“真的勇士敢于直面惨淡的人生,敢于正视淋漓的鲜血。”")
            
    elif count >= 10:
        time.sleep(1)
        print("“泽国江山入战图,生民何计乐樵苏。\n 凭君莫话封侯事,一将功成万骨枯。\n 传闻一战百神愁,两岸强兵过未休。 \n 谁道沧江总无事,近来长共血争流。”")
    else:
        time.sleep(1)
        print("“剑阁峥嵘而崔嵬,一夫当关,万夫莫开。”")
    restart()
      
game_start()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-24 13:40:40 | 显示全部楼层
Cosent 发表于 2020-2-24 13:25
试着做了一下优化,你看看咋样

player = input("请输入玩家名字,按回车后开始游戏 ")

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 14:33:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 10:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表