鱼C论坛

 找回密码
 立即注册
查看: 2868|回复: 8

[已解决]怎么让随机数在每次循环后刷新

[复制链接]
发表于 2017-9-24 06:08:02 | 显示全部楼层 |阅读模式

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

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

x
我编了一个两个人玩的猜1-10随机数的一个小游戏,但目前的问题是每一次while循环后为了下一次的随机数和上次的不一样我要再加一个变量如secret2来代表随机数,而这样子(我现在的代码)的局限就是当我想要以赢家比输家多赢两局来算输赢的话会不知道应该需要多少个随机数,想问问大神们有没有什么方法可以使这个secret在每次循环后都自己刷新一次产生一个新的随机数,谢谢

  1. import random
  2. import easygui as g
  3. g.msgbox("                               嗨,欢迎进入一个小游戏!^_^")

  4. msg = "1号猜一猜我心里想的是哪个数字(1-10):"
  5. msg2 = "2号猜一猜我心里想的是哪个数字(1-10):"
  6. title = "数字小游戏"
  7. score1 = 0
  8. score2 = 0
  9. times = 3

  10. secret = random.randint(1, 10)
  11. secret2 = random.randint(1,10)
  12. secret3 = random.randint(1,10)

  13. while times == 3:
  14.     guess1 = g.integerbox(msg, title, lowerbound=1, upperbound=10)
  15.     if guess1 == secret:
  16.         g.msgbox("握草对了")
  17.         score1 += 1
  18.         times -= 1
  19.         g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  20.         continue

  21.     elif guess1 > secret:
  22.         g.msgbox("猜大了")
  23.         guess2 = g.integerbox(msg2, title, lowerbound=1, upperbound=10)
  24.         if guess2 == secret:
  25.             g.msgbox("握草对了")
  26.             score2 += 1
  27.             times -= 1
  28.             g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  29.             continue
  30.         if guess2 > secret:
  31.             g.msgbox("猜大了")
  32.             continue
  33.         if guess2 < secret:
  34.             g.msgbox("猜小了")
  35.             continue

  36.     elif guess1 < secret:
  37.         g.msgbox("猜小了")
  38.         guess2 = g.integerbox(msg2, title, lowerbound=1, upperbound=10)
  39.         if guess2 == secret:
  40.             g.msgbox("握草对了")
  41.             score2 += 1
  42.             times -= 1
  43.             g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  44.             continue
  45.         if guess2 > secret:
  46.             g.msgbox("猜大了")
  47.             continue
  48.         if guess2 < secret:
  49.            g.msgbox("猜小了")
  50.            continue

  51. while times == 2:
  52.     guess1 = g.integerbox(msg, title, lowerbound=1, upperbound=10)
  53.     if guess1 == secret2:
  54.         g.msgbox("握草对了")
  55.         score1 += 1
  56.         times -= 1
  57.         g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  58.         continue

  59.     elif guess1 > secret2:
  60.         g.msgbox("猜大了")
  61.         guess2 = g.integerbox(msg2, title, lowerbound=1, upperbound=10)
  62.         if guess2 == secret2:
  63.             g.msgbox("握草对了")
  64.             score2 += 1
  65.             times -= 1
  66.             g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  67.             continue
  68.         if guess2 > secret2:
  69.             g.msgbox("猜大了")
  70.             continue
  71.         if guess2 < secret2:
  72.             g.msgbox("猜小了")
  73.             continue

  74.     elif guess1 < secret2:
  75.         g.msgbox("猜小了")
  76.         guess2 = g.integerbox(msg2, title, lowerbound=1, upperbound=10)
  77.         if guess2 == secret2:
  78.             g.msgbox("握草对了")
  79.             score2 += 1
  80.             times -= 1
  81.             g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  82.             continue
  83.         if guess2 > secret2:
  84.             g.msgbox("猜大了")
  85.             continue
  86.         if guess2 < secret2:
  87.            g.msgbox("猜小了")
  88.            continue

  89. while times == 1:
  90.     guess1 = g.integerbox(msg, title, lowerbound=1, upperbound=10)
  91.     if guess1 == secret3:
  92.         g.msgbox("握草对了")
  93.         score1 += 1
  94.         times -= 1
  95.         g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  96.         continue

  97.     elif guess1 > secret3:
  98.         g.msgbox("猜大了")
  99.         guess2 = g.integerbox(msg2, title, lowerbound=1, upperbound=10)
  100.         if guess2 == secret3:
  101.             g.msgbox("握草对了")
  102.             score2 += 1
  103.             times -= 1
  104.             g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  105.             continue
  106.         if guess2 > secret3:
  107.             g.msgbox("猜大了")
  108.             continue
  109.         if guess2 < secret3:
  110.             g.msgbox("猜小了")
  111.             continue

  112.     elif guess1 < secret3:
  113.         g.msgbox("猜小了")
  114.         guess2 = g.integerbox(msg2, title, lowerbound=1, upperbound=10)
  115.         if guess2 == secret3:
  116.             g.msgbox("握草对了")
  117.             score2 += 1
  118.             times -= 1
  119.             g.msgbox("现在比分是1号%d分2号%d分" % (score1,score2))
  120.             continue
  121.         if guess2 > secret3:
  122.             g.msgbox("猜大了")
  123.             continue
  124.         if guess2 < secret3:
  125.            g.msgbox("猜小了")
  126.            continue
  127. if times < 1:
  128.     g.msgbox("游戏结束不玩啦嘻嘻^_^")
复制代码
最佳答案
2017-9-24 10:35:45
夜深听雨 发表于 2017-9-24 08:36
可是写在内部的话会有两种情况,一是我还没有猜中随机的数那个数就又会被随机成另外一个,要不就是随机数 ...

你的代码我没看,你说的问题。你可以这样思考。
你想循环一次刷新一次。这个就可以理解为对这个变量重新赋值。即在循环内部重新赋值就行了。
另,你还想要要是猜中了才刷新这个值。那就直接在猜中的if语句中更新这个赋值。其他不变就行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-24 07:59:30 | 显示全部楼层
弄成一个循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-24 08:03:13 From FishC Mobile | 显示全部楼层
将随机数写到循环内部,每次循环的时候就刷新了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-24 08:36:08 | 显示全部楼层
左手十字 发表于 2017-9-24 08:03
将随机数写到循环内部,每次循环的时候就刷新了

可是写在内部的话会有两种情况,一是我还没有猜中随机的数那个数就又会被随机成另外一个,要不就是随机数一直都是那一个数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-24 08:36:50 | 显示全部楼层

能详细的说一说吗,我试了试还是不行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-24 10:35:45 | 显示全部楼层    本楼为最佳答案   
夜深听雨 发表于 2017-9-24 08:36
可是写在内部的话会有两种情况,一是我还没有猜中随机的数那个数就又会被随机成另外一个,要不就是随机数 ...

你的代码我没看,你说的问题。你可以这样思考。
你想循环一次刷新一次。这个就可以理解为对这个变量重新赋值。即在循环内部重新赋值就行了。
另,你还想要要是猜中了才刷新这个值。那就直接在猜中的if语句中更新这个赋值。其他不变就行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-24 11:23:18 | 显示全部楼层
bush牛 发表于 2017-9-24 10:35
你的代码我没看,你说的问题。你可以这样思考。
你想循环一次刷新一次。这个就可以理解为对这个变量重新 ...


明白了,谢谢O(∩_∩)O!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-24 11:29:52 | 显示全部楼层
左手十字 发表于 2017-9-24 08:03
将随机数写到循环内部,每次循环的时候就刷新了

我现在明白你的意思了,把定义随机数的写到while下一行就好了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-24 11:30:13 | 显示全部楼层
左手十字 发表于 2017-9-24 08:03
将随机数写到循环内部,每次循环的时候就刷新了

我现在明白你的意思了,把定义随机数的写到while下一行就好了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 14:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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