我的第一个简单Python游戏 改进

在这里插入图片描述
我厉害了!感谢大家支持!!!



还记得我们出第一个博客的时候,我写了一个简单的文字游戏吗?最近复习的时候发现还有一些漏洞,所以今天我们就来改进一下。我的第一个简单Python游戏原文

原文代码:

def oo():
   import time
   h = 1
   ss = 0
   mm = 0
   from random import shuffle
   print("\n规则:抽到金色传说宝箱和金色传说宝箱钥匙的,即可通关,如果抽奖卷不够,请输入yes,即可打怪兽赚钱,如果不需要,请输入no")
   dd = input("\n")
   while ss < 5:
      if dd == "yes":
         print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
         cc = input("\n请选择你想要打的怪兽:")
         if cc == "小型怪兽":
            print("\n狩猎成功")
            h += 1
            nn = input("\n是否继续打(yes or no)")
            if nn == "yes":
               ss += 1
            else:
               break
         elif cc == "\n中型怪兽":
            print("\n找不到鞭子,无法狩猎")
            nn = input("\n是否继续打(yes or no)")
            if nn == "yes":
               ss += 1
            else:
               break
         elif cc == "\n大型怪兽":
            print("\n找不到大宝剑,无法狩猎")
            nn = input("\n是否继续打(yes or no)")
            if nn == "yes":
               ss += 1
            else:
               break
      else:
         print("\n好的,开始抽奖")
         break
   time.sleep(5)
   while True:
      if h >= 1:
         l = ["\n金色传说宝箱","安慰奖","记忆3个","大宝剑","钻石100","钻石10000","5000金魂币","1万金魂币","金色传说宝箱钥匙","抽奖券2个"]
         print('\n奖品预览',l)
         print("\n打乱中...")
         time.sleep(5)
         shuffle(l)
         if l[1] == "安慰奖":
            print('\nSorry,抽到了安慰奖,送你一只小气球')
         else:
            print('\n恭喜你抽到了',l[1])
         h -= 1
         if l[1] == "抽奖券2个":
            h += 2
         print("")
         if l[1] == "金色传说宝箱" or l[1] == "金色传说宝箱钥匙":
            del l[1]
            mm += 1
         if mm == 2:
            print("\n恭喜通关!")
            exit()
            break
      else:
         print("\n您已没有抽奖券")
         break
   jj = input("\n会员跳关密码:")
   if jj == "Q20090611.":
      
      print("\n密码正确,可以跳关") 
      print("\n恭喜通关!")
   else:
      print("\n密码错误,不能跳关")
oo()


改变量名

首先第一件事情就是要改变量名,因为我当时取变量名的时候都是随便写的,以导致我复习的时候都有点看不懂我写的代码了。

改好之后:

def game():
   import time
   luck_draw = 1
   monster = 0
   end = 0
   from random import shuffle
   print("\n规则:抽到金色传说宝箱和金色传说宝箱钥匙的,即可通关,如果抽奖卷不够,请输入yes,即可打怪兽赚钱,如果不需要,请输入no")
   walk = input("\n")
   while monster < 5:
      if walk == "yes":
         print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
         walk = input("\n请选择你想要打的怪兽:")
         if walk == "小型怪兽":
            print("\n狩猎成功")
            monster += 1
            walk = input("\n是否继续打(yes or no)")
            if walk == "yes":
               monster += 1
            else:
               break
         elif walk == "中型怪兽":
            print("\n找不到鞭子,无法狩猎")
            walk = input("\n是否继续打(yes or no)")
            if walk == "yes":
               monster += 1
            else:
               break
         elif walk == "\n大型怪兽":
            print("\n找不到大宝剑,无法狩猎")
            walk = input("\n是否继续打(yes or no)")
            if walk == "yes":
               monster += 1
            else:
               break
      else:
         print("\n好的,开始抽奖")
         break
   time.sleep(5)
   while True:
      if luck_draw >= 1:
         l = ["\n金色传说宝箱","安慰奖","记忆3个","大宝剑","钻石100","钻石10000","5000金魂币","1万金魂币","金色传说宝箱钥匙","抽奖券2个"]
         print('\n奖品预览',l)
         print("\n打乱中...")
         time.sleep(5)
         shuffle(l)
         if l[1] == "安慰奖":
            print('\nSorry,抽到了安慰奖,送你一只小气球')
         else:
            print('\n恭喜你抽到了',l[1])
         luck_draw -= 1
         if l[1] == "抽奖券2个":
            luck_draw += 2
         print("")
         if l[1] == "金色传说宝箱" or l[1] == "金色传说宝箱钥匙":
            del l[1]
            end += 1
         if end == 2:
            print("\n恭喜通关!")
            exit()
            break
      else:
         print("\n您已没有抽奖券")
         break
   password = input("\n会员跳关密码:")
   if password == "Q20090611.":
      
      print("\n密码正确,可以跳关") 
      print("\n恭喜通关!")
   else:
      print("\n密码错误,不能跳关")
game()

打怪兽

如果仔细看代码就会发现,只有小怪兽才能打,大怪兽我没给判断条件。

所以我需要添加一些变量和判断。

首先我们要设立一个书包的字典,让打完小型怪兽之后增加一个鞭子

bag = {'鞭子': 0,
	   '大宝剑': 0}
         if walk == "小型怪兽":
            print("\n狩猎成功")
            monster += 1
            bag['鞭子'] + 1

因为在这个抽奖游戏中,只有鞭子,大宝剑,还有金钥匙,金宝箱是有用的,就不用多设置了。

接下来就是中型和大型的判断条件了

                if bag['鞭子'] > 0:
                    print('\n狩猎成功')
                    monster += 1
                else:
                    print("\n找不到鞭子,无法狩猎")

大型怪兽的判断条件也是如此。

因为大宝剑的的唯一来源是通过抽奖,我们就需要对抽奖系统进一些整体的改动。

首先就是在每次抽奖完毕的时刻加一个判断条件,用来判断每一次抽奖是返回打怪兽界面还是继续抽奖。

walk = input('\n1.去打怪兽 2.继续抽奖\n')
            if walk == 1:
                while monster > 0:
                    print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
                    walk = input("\n请选择你想要打的怪兽:")
                    if walk == "小型怪兽":
                        print("\n狩猎成功")
                        monster += 1
                        bag['鞭子'] + 1
                        walk = input("\n是否继续打(yes or no)")
                        if walk == "yes":
                            monster += 1
                        else:
                            break
                    elif walk == "中型怪兽":
                        if bag['鞭子'] > 0:
                            print('\n狩猎成功')
                            monster += 1
                        else:
                            print("\n找不到鞭子,无法狩猎")
                        walk = input("\n是否继续打(yes or no)")
                        if walk == "yes":
                            monster += 1
            if walk == 2:
                pass

然后在抽奖的时候增加一条大宝剑的判断。

            if l[1] == '大宝剑':
                print('\n恭喜你抽到了', l[1])
                bag['大宝剑'] += 1

再进行一下细节上的修改,成品:

def game():
    import time
    luck_draw = 1
    bag = {'鞭子': 0,
           '大宝剑': 0}
    monster = 0
    end = 0
    from random import shuffle

    print("\n规则:抽到金色传说宝箱和金色传说宝箱钥匙的,即可通关,如果抽奖卷不够,请输入yes,即可打怪兽赚钱,如果不需要,请输入no")
    walk = input("\n")
    while monster < 5:
        if walk == "yes":
            print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
            walk = input("\n请选择你想要打的怪兽:")
            if walk == "小型怪兽":
                print("\n狩猎成功")
                luck_draw += 1
                bag['鞭子'] += 1
                walk = input("\n是否继续打(yes or no)")
                if walk == "yes":
                    monster += 1
                else:
                    break
            elif walk == "中型怪兽":
                if bag['鞭子'] > 0:
                    print('\n狩猎成功')
                    luck_draw += 1
                else:
                    print("\n找不到鞭子,无法狩猎")
                walk = input("\n是否继续打(yes or no)")
                if walk == "yes":
                    monster += 2
                else:
                    break
            elif walk == "\n大型怪兽":
                if bag['大宝剑'] > 0:
                    print('\n狩猎成功')
                    luck_draw += 3
                else:
                    print("\n找不到大宝剑,无法狩猎")
                walk = input("\n是否继续打(yes or no)")
                if walk == "yes":
                    monster += 1
                else:
                    break
        else:
            print("\n好的,开始抽奖")
            break
    time.sleep(5)
    while True:
        if luck_draw >= 1:
            l = ["\n金色传说宝箱", "安慰奖", "记忆3个", "大宝剑", "钻石100", "钻石10000", "5000金魂币", "1万金魂币", "金色传说宝箱钥匙", "抽奖券2个"]
            print('\n奖品预览', l)
            print("\n打乱中...")
            time.sleep(5)
            shuffle(l)
            if l[1] == "安慰奖":
                print('\nSorry,抽到了安慰奖,送你一只小气球')
            else:
                print('\n恭喜你抽到了', l[1])
            luck_draw -= 1
            if l[1] == "抽奖券2个":
                luck_draw += 2
            print("")
            if l[1] == "金色传说宝箱" or l[1] == "金色传说宝箱钥匙":
                del l[1]
                end += 1
            if end == 2:
                print("\n恭喜通关!")
                exit()
                break
            if l[1] == '大宝剑':
                print('\n恭喜你抽到了', l[1])
                bag['大宝剑'] += 1

            walk = int(input('\n1.去打怪兽 2.继续抽奖\n'))
            if walk == 1:
                while monster < 5:
                    print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
                    walk = input("\n请选择你想要打的怪兽:")
                    if walk == "小型怪兽":
                        print("\n狩猎成功")
                        luck_draw += 1
                        bag['鞭子'] += 1
                        walk = input("\n是否继续打(yes or no)")
                        if walk == "yes":
                            monster += 1
                        else:
                            break
                    elif walk == "中型怪兽":
                        if bag['鞭子'] > 0:
                            print('\n狩猎成功')
                            luck_draw += 1
                        else:
                            print("\n找不到鞭子,无法狩猎")
                        walk = input("\n是否继续打(yes or no)")
                        if walk == "yes":
                            monster += 2
                        else:
                            break
                    elif walk == "\n大型怪兽":
                        if bag['大宝剑'] > 0:
                            print('\n狩猎成功')
                            luck_draw += 3
                        else:
                            print("\n找不到大宝剑,无法狩猎")
                        walk = input("\n是否继续打(yes or no)")
                        if walk == "yes":
                            monster += 1
                        else:
                            break
            if walk == 2:
                pass
        else:
            print("\n您已没有抽奖券")
            break
    password = input("\n会员跳关密码:")
    if password == "Q20090611.":

        print("\n密码正确,可以跳关")
        print("\n恭喜通关!")
    else:
        print("\n密码错误,不能跳关")
game()

随机

我突然有一个大胆的想法
在这里插入图片描述

打怪兽一定要有几率掉东西

在我出的零基础Python知识框架的时候,我讲过是随机的。

在这里插入图片描述

今天我们就要再次运用一下。

#首先在导入这边添加一个模块。
    import time,random

首先从小型怪兽下手,先加一个变量。

在这里插入图片描述

_int = random.randint(1,4)

然后加判断,也是在同一个地方加。

这就是小型怪兽的代码快了,感觉有点多。中型和大型的也是一样的。

            if walk == "小型怪兽":
                _int = random.randint(1,4)
                if _int == 1:
                    print("\n狩猎成功")
                    luck_draw += 1
                    bag['鞭子'] += 1
                    walk = input("\n是否继续打(yes or no)")
                    if walk == "yes":
                        monster += 1
                    else:
                        break
                if _int == 2:
                    print("\n狩猎失败")
                    walk = input("\n是否继续打(yes or no)")
                    if walk == "yes":
                        monster += 1
                    else:
                        break
                if _int == 3:
                    print("\n狩猎成功,抽奖券+1")
                    luck_draw += 1
                    walk = input("\n是否继续打(yes or no)")
                    if walk == "yes":
                        monster += 1
                    else:
                        break
                if _int == 4:
                    print("\n狩猎成功,鞭子+1")
                    bag['鞭子'] += 1
                    walk = input("\n是否继续打(yes or no)")
                    if walk == "yes":
                        monster += 1
                    else:
                        break

修改后代码:

def game():
    import time,random
    luck_draw = 1
    bag = {'鞭子': 0,
           '大宝剑': 0}
    monster = 0
    end = 0
    from random import shuffle

    print("\n规则:抽到金色传说宝箱和金色传说宝箱钥匙的,即可通关,如果抽奖卷不够,请输入yes,即可打怪兽赚钱,如果不需要,请输入no")
    walk = input("\n")
    while monster < 5:
        if walk == "yes":
            print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
            walk = input("\n请选择你想要打的怪兽:")
            if walk == "小型怪兽":
                _int = random.randint(1,4)
                if _int == 1:
                    print("\n狩猎成功")
                    luck_draw += 1
                    bag['鞭子'] += 1
                    walk = input("\n是否继续打(yes or no)")
                    if walk == "yes":
                        monster += 1
                    else:
                        break
                if _int == 2:
                    print("\n狩猎失败")
                    walk = input("\n是否继续打(yes or no)")
                    if walk == "yes":
                        monster += 1
                    else:
                        break
                if _int == 3:
                    print("\n狩猎成功,抽奖券+1")
                    luck_draw += 1
                    walk = input("\n是否继续打(yes or no)")
                    if walk == "yes":
                        monster += 1
                    else:
                        break
                if _int == 4:
                    print("\n狩猎成功,鞭子+1")
                    bag['鞭子'] += 1
                    walk = input("\n是否继续打(yes or no)")
                    if walk == "yes":
                        monster += 1
                    else:
                        break
            elif walk == "中型怪兽":
                _int = random.randint(1, 2)
                if bag['鞭子'] > 0:
                    if _int == 1:
                        print('\n狩猎成功')
                        luck_draw += 2
                    if _int == 2:
                        print('\n狩猎失败')
                else:
                    print("\n找不到鞭子,无法狩猎")
                walk = input("\n是否继续打(yes or no)")
                if walk == "yes":
                    monster += 1
                else:
                    break
            elif walk == "\n大型怪兽":
                if bag['大宝剑'] > 0:
                    if _int == 1:
                        print('\n狩猎成功')
                        luck_draw += 3
                    if _int == 2:
                        print('\n狩猎失败')
                else:
                    print("\n找不到大宝剑,无法狩猎")
                walk = input("\n是否继续打(yes or no)")
                if walk == "yes":
                    monster += 1
                else:
                    break
        else:
            print("\n好的,开始抽奖")
            break
    time.sleep(5)
    while True:
        if luck_draw >= 1:
            l = ["\n金色传说宝箱", "安慰奖", "记忆3个", "大宝剑", "钻石100", "钻石10000", "5000金魂币", "1万金魂币", "金色传说宝箱钥匙", "抽奖券2个"]
            print('\n奖品预览', l)
            print("\n打乱中...")
            time.sleep(5)
            shuffle(l)
            if l[1] == "安慰奖":
                print('\nSorry,抽到了安慰奖,送你一只小气球')
            else:
                print('\n恭喜你抽到了', l[1])
            luck_draw -= 1
            if l[1] == "抽奖券2个":
                luck_draw += 2
            print("")
            if l[1] == "金色传说宝箱" or l[1] == "金色传说宝箱钥匙":
                del l[1]
                end += 1
            if end == 2:
                print("\n恭喜通关!")
                exit()
                break
            if l[1] == '大宝剑':
                print('\n恭喜你抽到了', l[1])
                bag['大宝剑'] += 1

            walk = int(input('\n1.去打怪兽 2.继续抽奖\n'))
            if walk == 1:
                while monster < 5:
                    print("\n怪兽一共有三种,小型怪兽,中型怪兽,和大型怪兽。小型怪兽不需要任何武器,中型怪兽需要用鞭子,大型怪兽需要用大宝剑。鞭子是打败小型怪兽的战利品,大宝剑是抽奖那边的奖品。(只能狩猎五次,超过次数强行退出)")
                    walk = input("\n请选择你想要打的怪兽:")
                    if walk == "小型怪兽":
                        _int = random.randint(1, 4)
                        if _int == 1:
                            print("\n狩猎成功")
                            luck_draw += 1
                            bag['鞭子'] += 1
                            walk = input("\n是否继续打(yes or no)")
                            if walk == "yes":
                                monster += 1
                            else:
                                break
                        if _int == 2:
                            print("\n狩猎失败")
                            walk = input("\n是否继续打(yes or no)")
                            if walk == "yes":
                                monster += 1
                            else:
                                break
                        if _int == 3:
                            print("\n狩猎成功,抽奖券+1")
                            luck_draw += 1
                            walk = input("\n是否继续打(yes or no)")
                            if walk == "yes":
                                monster += 1
                            else:
                                break
                        if _int == 4:
                            print("\n狩猎成功,鞭子+1")
                            bag['鞭子'] += 1
                            walk = input("\n是否继续打(yes or no)")
                            if walk == "yes":
                                monster += 1
                            else:
                                break
                    elif walk == "中型怪兽":
                        _int = random.randint(1, 2)
                        if bag['鞭子'] > 0:
                            if _int == 1:
                                print('\n狩猎成功')
                                luck_draw += 2
                            if _int == 2:
                                print('\n狩猎失败')
                        else:
                            print("\n找不到鞭子,无法狩猎")
                        walk = input("\n是否继续打(yes or no)")
                        if walk == "yes":
                            monster += 1
                        else:
                            break
                    elif walk == "\n大型怪兽":
                        if bag['大宝剑'] > 0:
                            if _int == 1:
                                print('\n狩猎成功')
                                luck_draw += 3
                            if _int == 2:
                                print('\n狩猎失败')
                        else:
                            print("\n找不到大宝剑,无法狩猎")
                        walk = input("\n是否继续打(yes or no)")
                        if walk == "yes":
                            monster += 1
                        else:
                            break
            if walk == 2:
                pass
        else:
            print("\n您已没有抽奖券")
            break
    password = input("\n会员跳关密码:")
    if password == "Q20090611.":

        print("\n密码正确,可以跳关")
        print("\n恭喜通关!")
    else:
        print("\n密码错误,不能跳关")
game()

感觉修改后的比修改前的多多了呢。。。期待下次再见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值