永久存储一个随机数的实时代码

时间:2017-06-03 14:21:18

标签: random livecode storing-data

我想创建一个猜测游戏,将数字(100个)存储到象限中,并让用户知道A.它们太高/太低而且B.如果他们已进入正确的象限。

但我希望在程序开头随机生成的数字保持不变,直到用户猜对了。

我已经在这个网站上研究了随机数,而选择的答案(虽然它是一个C#线程)实际上与我提出的方法相同。但显然我没有正确的语法。 Guessing game random number to static

我尝试使用全局数字并在每组处理程序中重新创建它,并将该全局数字放入另一个变量中。这使得在每次猜测之后,答案都变得空白。我对如何解决这个问题几乎更感兴趣,因为这意味着我不了解自己的代码,这是一个更大的问题。

我在这个网站上关于Javascript的类似线程,并且选择的答案表示在函数之外执行整个初始化。

JavaScript: How to stop random number from regenerating?

我更改了下面的代码,以便我制作的openStack方法既包含thePreAnswer的随机化,又包含了对该数字的答案设置。它仍然是空白的。下面的代码对我来说更有意义,因为Livecode使用

on openStack

全球thePreAnswer

将randomSeed设置为长秒

将随机(100)放入预备答案

结束openStack

on mouseUp

将fld“fld_guess”的文本放入theGuess

当地季度零,季度,季度,季度,季度,三季度,四季度

将0添加到quarterZero

将25放入quarterOne

将50加入quarterTwo

将75放入quarterThree

将100放入quarterFour

全球thePreAnswer

global theAnswer

将thePreAnswer放入答案

重复直到theGuess = theAnswer

如果theGuess< theAnswer然后

回答“太低了,猜得更高!”

回答“答案是”&& theAnswer

退出重复

结束如果

如果theGuess> theAnswer然后

回答“太高了,猜得更低!”

回答“答案是”&& theAnswer

退出重复

结束如果

如果theGuess是theAnswer那么

回答“正确”

回答“答案是”&& theGuess

将空置于fld“fld_guess”

将空置于theGuess

退出重复

如果“fld_guess”为空则退出重复

如果theGuess> quarterZero和theGuess< = quarterOne AND theAnswer> quarterZero AND theAnswer< = quarterOne then

回答“它在1到25之间!你很接近!”

回答“答案是”&& theAnswer

将空置于fld“fld_guess”

将空置于theGuess

退出重复

如果“fld_guess”为空则退出重复

如果theGuess> quarterOne和theGuess< = quarterTwo ANDAnswer> quarterOne AND theAnswer< = quarterTwo then

回答“它在25到50之间!你很接近!”

回答“答案是”&& theAnswer

将空置于fld“fld_guess”

将空置于theGuess

退出重复

如果“fld_guess”为空则退出重复

退出重复

如果theGuess> quarterTwo和theGuess< = quarterThree ANDAnswer> quarterTwo和theAnswer< = quarterThree then

回答“它在1到75之间!你很接近!”

回答“答案是”&& theAnswer

将空置于fld“fld_guess”

将空置于theGuess

退出重复

如果fld“fld_guess”为空,则退出重复

退出重复

如果theGuess> quarterThree和theGuess< = quarterFour AND theAnswer> quarterThree和theAnswer< = quarterFour then

回答“它在1到100之间!你很接近!”

回答“答案是”&& theAnswer

将空置于fld“fld_guess”

将空置于theGuess

退出重复

如果fld“fld_guess”为空,则退出重复

回答“重复退出”退出重复

退出重复

结束如果

结束如果

结束如果

结束如果

结束如果

结束重复

结束mouseUp

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题。 你永远不会在这一行之后到达

if "fld_guess" is empty then exit repeat   

因为你已经检查了所有的可能性。 可能你正在寻找这个:

global thePreAnswer
set the randomSeed to the long seconds
put random(100) into thePreAnswer
global tmin
global tMax
put 0 into tMin
put 100 into tMax

on mouseUp   
   ask "Type the number:"
   if the result is not "cancel" then  
      checkNumber it
   end if
end mouseUp

on checkNumber temp
   switch 
      case temp < tMin
         answer "Too low, answer is more than " & tMin
         MouseUp
         break
      case temp =  thePreAnswer
         answer "You win!"
         break
      case temp > tMax
         answer "Too high, answer is less than " & tMax
         MouseUp
         break
      case temp <  thePreAnswer
         answer "You are close, answer is more than " & temp & " and less than " & tMax
         put temp into tMin
         MouseUp
         break
      case temp >  thePreAnswer
         answer "You are close, answer is more than " & tMin & " and less than " & temp
         put temp into tMax
         MouseUp
         break
   end switch
end checkNumber