2017-06-03 121 views
-3

我想创建一个猜谜游戏,将数字(100分)存储到象限中,并让用户知道A.他们太高/低,并且B.如果他们输入了正确的象限。永久存储一个随机数livecode

但我希望在程序开始时随机生成的数字保持不变,直到用户猜测正确为止。

我研究过这个网站上的随机数字和选定的答案(这是一个C#线程虽然)实际上是我提出的相同的方法。但显然我没有正确的语法。 Guessing game random number to static

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

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

JavaScript: How to stop random number from regenerating?

我改变下面的代码,使得OPENSTACK方法我作出载二者thePreAnswer的随机化和theAnswer的到该号码的设定。它仍然是空白的。下面的代码,使我更有意义,因为Livecode使用

对OpenStack的

全球thePreAnswer

设置randomSeed的长秒

一放就乱(100)成thePreAnswer

末openStack

on mouseUp

把FLD “fld_guess” 的文成theGuess

当地quarterZero,quarterOne,quarterTwo,quarterThree,quarterFour

把0到quarterZero

把25到quarterOne

把50到quarterTwo

把75换成季度三

把100换成q uarterFour

全球thePreAnswer

全球theAnswer

把thePreAnswer到theAnswer

重复,直到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“为空然后退出重复

如果猜测> quarterOne AND theGuess < = quarterTwo AND theaanswer> quarterOne AND theanswer < = quarterTwo then

答案“它介于25到50之间!你靠近! “

答案 ”的回答是“ & & theAnswer

把空到FLD ”fld_guess“

把空到theGuess

退出重复

如果” fld_guess“为空然后退出重复

退出重复

如果theGuess> quarterTwo和theGuess < = quarterThree和theAnswer> quarterTwo和theAnswer < = quarterThree然后

回答“这是1和75之间!你很近!“

答案 ”的回答是“ & & theAnswer

把空到FLD ”fld_guess“

把空到theGuess

退出重复

如果FLD ”fld_guess“ 是空的然后退出重复

退出重复

如果theGuess> quarterThree和theGuess < = quarterFour和theAnswer> quarterThree和theAnswer < = quarterFour然后

回答“这是1和100之间!你靠近!”

答案 “的回答是” & & theAnswer

把空到FLD “fld_guess”

把空到theGuess

退出重复

如果FLD “fld_guess”为空然后退出重复

答案“repeat exited”exit repeat

退出重复

结束时,如果

结束时,如果

结束时,如果

结束时,如果

结束时,如果

末重复

end mouseUp

回答

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