鱼C论坛

 找回密码
 立即注册
查看: 2776|回复: 9

[已解决]猜数字循环问题!

[复制链接]
发表于 2020-2-8 17:20:36 | 显示全部楼层 |阅读模式
5鱼币
还是猜数字的小游戏,想多一点自己的想法,但是自己搞不出来,求各位帮帮忙,谢谢!
游戏规则:
1,随机数字猜三次,猜对了进入下一轮游戏
2,猜错了提示还有n次机会
3,三次都猜错重新进入下一轮游戏
#我遇到的问题是,猜错三次之后会出现两次输入数字的窗口,
需要解决的问题:1猜错三次不出现那个没用的窗口,2,如果输入有误(如没有输入或输入了非数字重新输入,不减少猜的次数)



import random
import easygui as g

g.msgbox("三次机会,猜错喝酒!!!",'猜点!')


msg = "猜猜这是几(1~13):"
title = "猜点小游戏"
flag = 1
while flag != 0:
    secret = random.randint(1, 13)
    print('这是答案'+ str(secret))
    time = 3
    guess = g.integerbox(msg, title, lowerbound=1, upperbound=13)

    while time:

        if guess == secret:
            g.msgbox("我草,你是蒙的吧?!")
            g.msgbox("哼,喝都喝!")
            break
        else:

            if guess > secret:
                g.msgbox("大了,还有"+str(time - 1)+'次机会!', '继续','再来')
            else:
                g.msgbox("小了,还有"+str(time - 1)+'次机会!', '继续','再来')
            guess = g.integerbox(msg, title, lowerbound=1, upperbound=13)

            time = time - 1
        flag = 1


谢谢了


最佳答案
2020-2-8 17:20:37
mcdmcd 发表于 2020-2-8 19:02
我之前就是这么写的,但是无论猜的对错,程序就结束了,我是想让程序在无论对错的情况下都重新运行,等于 ...

这样:

  1. import random
  2. import easygui as g

  3. g.msgbox("三次机会,猜错喝酒!!!", '猜点!')

  4. msg = "猜猜这是几(1~13):"
  5. title = "猜点小游戏"
  6. flag = 1
  7. while flag != 0:
  8.     secret = random.randint(1, 13)
  9.     print('这是答案' + str(secret))
  10.     time = 3
  11.     guess = g.integerbox(msg, title, lowerbound=1, upperbound=13)

  12.     while time:

  13.         if guess == secret:
  14.             g.msgbox("我草,你是蒙的吧?!")
  15.             g.msgbox("哼,喝都喝!")
  16.             break
  17.         else:

  18.             if guess > secret:
  19.                 g.msgbox("大了,还有" + str(time - 1) + '次机会!', '继续', '再来')
  20.             else:
  21.                 g.msgbox("小了,还有" + str(time - 1) + '次机会!', '继续', '再来')
  22.             time = time - 1
  23.             if time:
  24.                 guess = g.integerbox(msg, title, lowerbound=1, upperbound=13)
  25.         flag = 1
复制代码

最佳答案

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

使用道具 举报

发表于 2020-2-8 17:20:37 | 显示全部楼层    本楼为最佳答案   
mcdmcd 发表于 2020-2-8 19:02
我之前就是这么写的,但是无论猜的对错,程序就结束了,我是想让程序在无论对错的情况下都重新运行,等于 ...

这样:

  1. import random
  2. import easygui as g

  3. g.msgbox("三次机会,猜错喝酒!!!", '猜点!')

  4. msg = "猜猜这是几(1~13):"
  5. title = "猜点小游戏"
  6. flag = 1
  7. while flag != 0:
  8.     secret = random.randint(1, 13)
  9.     print('这是答案' + str(secret))
  10.     time = 3
  11.     guess = g.integerbox(msg, title, lowerbound=1, upperbound=13)

  12.     while time:

  13.         if guess == secret:
  14.             g.msgbox("我草,你是蒙的吧?!")
  15.             g.msgbox("哼,喝都喝!")
  16.             break
  17.         else:

  18.             if guess > secret:
  19.                 g.msgbox("大了,还有" + str(time - 1) + '次机会!', '继续', '再来')
  20.             else:
  21.                 g.msgbox("小了,还有" + str(time - 1) + '次机会!', '继续', '再来')
  22.             time = time - 1
  23.             if time:
  24.                 guess = g.integerbox(msg, title, lowerbound=1, upperbound=13)
  25.         flag = 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-8 17:38:26 | 显示全部楼层
另外弱弱问一句,怎么做到可以一键复制代码的?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-8 17:40:11 | 显示全部楼层
这样试试:

  1. import random
  2. import easygui as g

  3. g.msgbox("三次机会,猜错喝酒!!!", '猜点!')


  4. msg = "猜猜这是几(1~13):"
  5. title = "猜点小游戏"
  6. secret = random.randint(1, 13)
  7. print('这是答案:' + str(secret))
  8. time = 3
  9. guess = g.integerbox(msg, title, lowerbound=1, upperbound=13)

  10. while time:

  11.     if guess == secret:
  12.         g.msgbox("我草,你是蒙的吧?!")
  13.         g.msgbox("哼,喝都喝!")
  14.         break
  15.     else:

  16.         if guess > secret:
  17.             g.msgbox("大了,还有"+str(time - 1)+'次机会!', '继续', '再来')
  18.         else:
  19.             g.msgbox("小了,还有"+str(time - 1)+'次机会!', '继续', '再来')
  20.         time = time - 1
  21.         if time:
  22.             guess = g.integerbox(msg, title, lowerbound=1, upperbound=13)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-8 18:01:15 | 显示全部楼层
mcdmcd 发表于 2020-2-8 17:38
另外弱弱问一句,怎么做到可以一键复制代码的?

https://fishc.com.cn/forum.php?m ... peid%26typeid%3D441
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-8 19:02:17 | 显示全部楼层

我之前就是这么写的,但是无论猜的对错,程序就结束了,我是想让程序在无论对错的情况下都重新运行,等于一轮新的游戏
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-8 20:00:50 | 显示全部楼层

okok   可以了  谢谢啊   !!!
e:\Users\mayin\Desktop\临时文件\8.png

这个if time:是起什么作用的呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-8 21:47:39 | 显示全部楼层
mcdmcd 发表于 2020-2-8 20:00
okok   可以了  谢谢啊   !!!

如果 time 不为 0 才执行操作。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-8 23:23:41 | 显示全部楼层
zltzlt 发表于 2020-2-8 21:47
如果 time 不为 0 才执行操作。

是time !=0 就是True的道理吗?


但是貌似三次都错了time就等于0 啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-9 13:06:31 | 显示全部楼层
mcdmcd 发表于 2020-2-8 23:23
是time !=0 就是True的道理吗?

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 20:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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