2017-06-03 80 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