鱼C论坛

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

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

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

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

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

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

白天上班,一般只有晚上才有时间学习,而今晚我根据自己的想法把004的小游戏再次改进下,实现次数提示的功能,功能是实现了,但是我觉得代码重复多了,但是不知道怎么去改进,希望大神们给点意见,代码如下:
import random                                #引入random模块
print('--------猜猜我心里想的是哪个数字--------')
score = random.randint(1,8)                #对score赋予(1-8)的随机数
number = input('请输入一个数字:')
guess = int(number)
n = 1                        #初次输入次数默认为1
if guess == score:                    #首次输入就猜中数字
    print('噢!厉害了哦,这都被你猜到了。')
else:
    while guess != score and n < 4:                #当输入值不等于随机值和次数少于4次执行循环
        number = input('猜错了,请继续输入:')
        guess = int(number)
        n = n + 1                        #次数累加
        if guess == score:
            print('噢!厉害了哦,这都被你猜到了。')
        else:
            if guess > score:                #输入值大于随机值
                print('嘿嘿!你猜的数字大了!你还有', end = '')
                print(4-n, end = '')
                print('次机会')                #三个print打印结果的合并
            else:
                if 4-n > 0:                #当可输入次数大于0时执行
                    print('嘿嘿!你猜的数字小了!你还有', end = '')
                    print(4-n, end = '')
                    print('次机会')
                else:
                    print('给了这么多次机会都猜不到,真丢脸!')        #输错次数为0时
print('游戏到此结束!拜拜!')

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

使用道具 举报

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

使用道具 举报

发表于 2017-12-28 22:50:35 From FishC Mobile | 显示全部楼层
你比我强,我啥也不会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 22:51:22 From FishC Mobile | 显示全部楼层
写代码,请给注释。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

我刚上手,以前接触过一点java,对编程不熟悉,不好意思,重要的我都备注上了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 23:15:42 | 显示全部楼层
只有三次机会,你这个输入了四次结果不对吧,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 23:24:21 | 显示全部楼层
我也没做过多久,我是这样写的:
import random
secret = random.randint(1,10)
times = 1
guess = 0
print('\n不妨猜一下小甲鱼现在心里想的是哪个数字:',end='')
while (guess != secret) and (times<4):
    temp = input()
    guess = int(temp)
    times = times+1
    left = 4-times
    if guess == secret:
        print('哇,bingo~~~')
    else:
        if guess>secret:
            print('不好意思,大了')
        else:
            print('哥们,小了,太小了')
        if times < 4:
            print('你还剩',left,'次机会')
            print('\n来再猜一次:',end='')
        else:
            print('机会用光了')
print('游戏结束,不玩了') 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 23:27:20 | 显示全部楼层    本楼为最佳答案   
①你在循环外面还添加了一个input值,所以就会让你输入四次
②你那三行代码可以合成一行写,比如:
if guess > score:                #输入值大于随机值
                print('嘿嘿!你猜的数字大了!你还有',4-n,'次机会')
            else:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

import random
secret = random.randint(1,9)
times = 3
guess = 0            #while循环的前提                      
print('猜猜我心里想什么数字:',end = "")
while (guess != secret) and (times > 0):
    times = times-1           #次数减一
    guess = int(input())      
    if guess == secret:
        print('猜中了,你真棒!')
    else:
        if guess > secret:
            print('大了大了,你还有',times,'次机会')       #三合一
        else:
            print('小了小了,你还有',times,'次机会')          #三合一
        if times > 0:
            print('再试试吧:',end = "")
        else:
            print("哇,真没有默契。")
print('游戏结束')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢!这个代码还有有点瑕疵,就是最后会输出一个‘还有0次机会’,这个用8楼前辈代码可以去除这个瑕疵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

非常感谢,代码比我的好很多,已经进行修改和理解,非常感谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 21:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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