我想创建一个猜测游戏,将数字(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
全球thePreAnswerglobal 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
答案 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