鱼C论坛

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

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

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

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

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

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

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

  4. def restart():
  5.     restart = input("是否重新开始游戏 \n 1.重新开始 \n 2.退出游戏")
  6.     while restart:
  7.         if int(restart) == 1:
  8.             print("【" + player + "】,请拿好你的剑,重装出击!!!")
  9.             game_start()
  10.             
  11.         elif int(restart) == 2:
  12.             break
  13.         else:
  14.             print("输入有误,请重新输入")
  15.             
  16. def game_start():
  17.     import time,random

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

  22.     count = 1

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

  29.     time.sleep(1.5)

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

  31.     time.sleep(1)

  32.     print("即将进入战斗")

  33.     time.sleep(1)

  34.     while player_life:
  35.         if player_life <= 0:
  36.             break

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

  47.             count += 1

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

  49.               
  50.             while True:
  51.                 tips = input("请选择")

  52.                 if int(tips) == 1:
  53.                
  54.                     player_life = player_life + random.randint(20,41)
  55.                
  56.                     print("【" + player + "】" + "血量↑:" +  str(player_life) + ";攻击:" + str(player_attack))
  57.                                     
  58.                     enemy_life = random.randint(100,150)
  59.                     enemy_attack = random.randint(10,20)
  60.                
  61.                     print("【敌军】" + "血量:" + str(enemy_life) + ";攻击:" + str(enemy_attack))
  62.                     
  63.                     time.sleep(1)

  64.                     break
  65.                
  66.                 elif int(tips) == 2:
  67.                
  68.                     player_attack = player_attack + random.randint(3,9)                       
  69.                
  70.                     print("【" + player + "】" + "血量:"+  str(player_life) + ";攻击↑:" + str(player_attack))
  71.                                     
  72.                     enemy_life = random.randint(100,150)
  73.                     enemy_attack = random.randint(10,20)
  74.                
  75.                     print("【敌军】" + "血量:" + str(enemy_life) +";攻击:" + str(enemy_attack))
  76.                     
  77.                     time.sleep(1)
  78.                
  79.                     break

  80.                 else:
  81.                     print("输入有误,请重新输入")
  82.         
  83.   
  84.               

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

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

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


复制代码



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

还是那句话:谁能给我改个exe封装啊~~~~~~~~~~~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-23 18:19:03 | 显示全部楼层
哦,好玩!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 19:12:05 | 显示全部楼层
为什么要str(player)啊?直接input()得到的类型应该就是str
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 19:12:53 | 显示全部楼层
游戏很不错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

避免挖坑
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 19:25:15 | 显示全部楼层
啥意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

避免后面引用的时候有其他需求
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 20:15:59 | 显示全部楼层
额,但把一串字符串给字符串化总感觉有点。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

哈哈,我有强迫症;改掉它,顺便把其他的也改了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 20:55:01 | 显示全部楼层
PYTHON真难
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 21:28:31 | 显示全部楼层
更新了编码,大家可以再试下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我把编码改了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

感觉跟其他的编码逻辑上还是一样的,就是要记公式太痛苦了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

多谢
小甲鱼最新课程 -> https://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()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 14:33:31 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 18:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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