鱼C论坛

 找回密码
 立即注册
查看: 1400|回复: 11

[已解决]请教下004讲的改进小游戏

[复制链接]
发表于 2017-12-28 22:03:21 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 四君子 于 2017-12-28 23:08 编辑

白天上班,一般只有晚上才有时间学习,而今晚我根据自己的想法把004的小游戏再次改进下,实现次数提示的功能,功能是实现了,但是我觉得代码重复多了,但是不知道怎么去改进,希望大神们给点意见,代码如下:

  1. import random                                #引入random模块
  2. print('--------猜猜我心里想的是哪个数字--------')
  3. score = random.randint(1,8)                #对score赋予(1-8)的随机数
  4. number = input('请输入一个数字:')
  5. guess = int(number)
  6. n = 1                        #初次输入次数默认为1
  7. if guess == score:                    #首次输入就猜中数字
  8.     print('噢!厉害了哦,这都被你猜到了。')
  9. else:
  10.     while guess != score and n < 4:                #当输入值不等于随机值和次数少于4次执行循环
  11.         number = input('猜错了,请继续输入:')
  12.         guess = int(number)
  13.         n = n + 1                        #次数累加
  14.         if guess == score:
  15.             print('噢!厉害了哦,这都被你猜到了。')
  16.         else:
  17.             if guess > score:                #输入值大于随机值
  18.                 print('嘿嘿!你猜的数字大了!你还有', end = '')
  19.                 print(4-n, end = '')
  20.                 print('次机会')                #三个print打印结果的合并
  21.             else:
  22.                 if 4-n > 0:                #当可输入次数大于0时执行
  23.                     print('嘿嘿!你猜的数字小了!你还有', end = '')
  24.                     print(4-n, end = '')
  25.                     print('次机会')
  26.                 else:
  27.                     print('给了这么多次机会都猜不到,真丢脸!')        #输错次数为0时
  28. print('游戏到此结束!拜拜!')
复制代码


执行的结果如下:
--------猜猜我心里想的是哪个数字--------
请输入一个数字:1
猜错了,请继续输入:2
嘿嘿!你猜的数字小了!你还有2次机会
猜错了,请继续输入:3
嘿嘿!你猜的数字小了!你还有1次机会
猜错了,请继续输入:4
给了这么多次机会都猜不到,真丢脸!
游戏到此结束!拜拜!
>>>
最佳答案
2017-12-28 23:27:20
①你在循环外面还添加了一个input值,所以就会让你输入四次
②你那三行代码可以合成一行写,比如:
  1. if guess > score:                #输入值大于随机值
  2.                 print('嘿嘿!你猜的数字大了!你还有',4-n,'次机会')
  3.             else:
复制代码

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

使用道具 举报

发表于 2017-12-28 22:49:06 From FishC Mobile | 显示全部楼层
你这样让我们写一次代码,你在复制一遍有什么区别?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 22:50:35 From FishC Mobile | 显示全部楼层
你比我强,我啥也不会
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 22:51:22 From FishC Mobile | 显示全部楼层
写代码,请给注释。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 22:57:00 | 显示全部楼层
tuple小白 发表于 2017-12-28 22:51
写代码,请给注释。

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

使用道具 举报

 楼主| 发表于 2017-12-28 23:07:06 | 显示全部楼层
tuple小白 发表于 2017-12-28 22:49
你这样让我们写一次代码,你在复制一遍有什么区别?

我刚上手,以前接触过一点java,对编程不熟悉,不好意思,重要的我都备注上了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 23:15:42 | 显示全部楼层
只有三次机会,你这个输入了四次结果不对吧,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 23:24:21 | 显示全部楼层
我也没做过多久,我是这样写的:
  1. import random
  2. secret = random.randint(1,10)
  3. times = 1
  4. guess = 0
  5. print('\n不妨猜一下小甲鱼现在心里想的是哪个数字:',end='')
  6. while (guess != secret) and (times<4):
  7.     temp = input()
  8.     guess = int(temp)
  9.     times = times+1
  10.     left = 4-times
  11.     if guess == secret:
  12.         print('哇,bingo~~~')
  13.     else:
  14.         if guess>secret:
  15.             print('不好意思,大了')
  16.         else:
  17.             print('哥们,小了,太小了')
  18.         if times < 4:
  19.             print('你还剩',left,'次机会')
  20.             print('\n来再猜一次:',end='')
  21.         else:
  22.             print('机会用光了')
  23. print('游戏结束,不玩了')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 23:27:20 | 显示全部楼层    本楼为最佳答案   
①你在循环外面还添加了一个input值,所以就会让你输入四次
②你那三行代码可以合成一行写,比如:
  1. if guess > score:                #输入值大于随机值
  2.                 print('嘿嘿!你猜的数字大了!你还有',4-n,'次机会')
  3.             else:
复制代码

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

使用道具 举报

发表于 2017-12-29 03:57:10 | 显示全部楼层
本帖最后由 theonen 于 2017-12-29 04:05 编辑

鱼神的循环已经很完美了,直接在里面改改就可以啊。


  1. import random
  2. secret = random.randint(1,9)
  3. times = 3
  4. guess = 0            #while循环的前提                     
  5. print('猜猜我心里想什么数字:',end = "")
  6. while (guess != secret) and (times > 0):
  7.     times = times-1           #次数减一
  8.     guess = int(input())      
  9.     if guess == secret:
  10.         print('猜中了,你真棒!')
  11.     else:
  12.         if guess > secret:
  13.             print('大了大了,你还有',times,'次机会')       #三合一
  14.         else:
  15.             print('小了小了,你还有',times,'次机会')          #三合一
  16.         if times > 0:
  17.             print('再试试吧:',end = "")
  18.         else:
  19.             print("哇,真没有默契。")
  20. print('游戏结束')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 09:27:44 | 显示全部楼层
theonen 发表于 2017-12-29 03:57
鱼神的循环已经很完美了,直接在里面改改就可以啊。

谢谢!这个代码还有有点瑕疵,就是最后会输出一个‘还有0次机会’,这个用8楼前辈代码可以去除这个瑕疵
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 09:28:47 | 显示全部楼层
zero月蚀的假面 发表于 2017-12-28 23:27
①你在循环外面还添加了一个input值,所以就会让你输入四次
②你那三行代码可以合成一行写,比如:

非常感谢,代码比我的好很多,已经进行修改和理解,非常感谢!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 12:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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