Python入门编程小程序-猜数字游戏

        这是一个简单的小游戏,用到的Python知识相当少,但是还是需要了解Python基本语法的。

程序整体上的算法流程简单介绍如下(不想用VS画流程图了,懒):

        既然猜数字游戏,那么首先应该实现的是,要设定数字,然后允许player去输入猜测的数字。最简单莫过于,设定一个固定的数字,与player的输入相比较,得出正确与否的结论,三行代码就能实现,那会显得很没意思。那么就要改进这个代码,可以用固定的list来设定数字,实现起来也不难,看完代码后再猜测也显得无聊。再改进代码,用随机序列是个不错的选择,调用random。比较大小的环节也是从最简单一步步改进的,一开始立马想到if语句就好,针对相等,大于,小于的情况,来为player打印一串提示语,但这种猜一次就game over 的游戏机制也太low了,虽然我是菜鸟,也忍受不来这种侮辱。改进代码,用while循环来实现玩三次后,游戏结束,实现起来也不难,无非是if语句嵌套,梳理好思路写下来也是不太费劲的。当然我还是菜鸟阶段,整段代码写的毫无美感,更不用说什么风格。。。。大家将就看,不喜勿喷

        其实到这里似乎游戏可以简单的玩了,我比较有瘾可以玩1个小时。但是三次机会用尽后,想再玩总要在解释器中F5一下,实在是恶心极了,能不能出现Restart再玩一次的命令,于是我开始着手去写。这个简单问题我思考了一天,不得不说菜的真可怕。既然想restart,那么就要求代码在player输入某些值时,代码要重新运行。听起来很简单,有人说for循环即可,有人说可以把次数参数清零,返回继续运行。但Python有没有汇编的jump.yeild我又觉得别扭,无法实现。因为之前的程序段中已经包含了while循环,我用for循环试了试变量设置混乱不堪,况且我试了在while循环后return次数变量清零,没有实现。我思考良久我觉得要不断的去循环这段代码,和不断调用函数的概念是一样的,那么我就把这段代码全部封装在compare函数里面,随时调用就行。

       问题又来了,的确是可以在game over后可以再玩一次,但只是玩一次,因为你调用的代码只运行一次,所以只调用上面代码一次而已。也就是说我的调用代码也要一直循环,我为了省事呢(实话是:其他高级的语法不会),就用for循环内嵌while else语句简单写了一段,所以大家看源代码会发现我只是让游戏进行了10轮而已,我觉得我是没有耐心玩超过30次了,当然你也可以设置更大的值,大到近乎于无限循环。当然是否继续游戏,是可以选择的,player选择拒绝再次游戏就直接退出了,这部分是while else语句来实现的,懂起来比较容易。

       到此为止完成了一个十分简陋的游戏,无风格无美感无结构的,需要无尽优化的代码。。。。菜鸟共勉。绝对是菜鸟直接上手的小游戏了。

def compare(i):
 import random
 secret = random.randint(1,10)
 temp = input("guess the number in my heart(from 1 to 10):\n")
 guess = int(temp)
 if guess == secret:
     print("amazing,you are right")
 else:
     if guess > secret:
        print("worring,it's bigger,you have the last two chances")
     else:
        print('OMG! so foolish you are.litter!!The last two chances ~~')
     while i < 2:
           temp = input("guess again please~~:\n")
           guess = int(temp)
           i=i+1
           if guess == secret:
              print("ok,you win.")
              break
           elif (guess > secret):
              if i==1:
                  print("guess it by your heart please!!bigger!last chance")
              else:
                  print("see you latter!biggerererer!")
           elif (guess < secret):
              if i==1:
                 print('want to fuck someone!wrong ,again,litter!last chance')
              else:
                 print('you make me angery,say goodbye to games.')
 print( 'game over')
 return
compare(0)
n=0
while n<10:
  restart = input('do you want to restart?please write 1 or 0:')
  n=n+1
  if restart==1:
    compare(0)
  else:
    print('see you latter')
    break
    





      


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值