2017-06-03 4 views
-3

数字を(100のうちの)数字を象限に格納し、A.が高すぎる/低すぎることをユーザーに知らせる推測ゲームを作成したい。象限。乱数を永久に保存するライブコード

しかし、プログラムの開始時にランダムに生成された番号を、ユーザーが正しく推測するまで同じにしておきたいです。

私はこのサイトで乱数を研究していますが、Chosen Answer(これはC#スレッドですが)は実際に私が思いついたのと同じ方法です。しかし、明らかに私は構文の権利を持っていません。 Guessing game random number to static

グローバル番号を使用してハンドラの各セットで再作成し、そのグローバル番号を別の変数に入れようとしました。これにより、それぞれの推測の後にTheAnswerが空白になりました。私は、この問題を解決する方法よりも、私がそれをどのようにして管理したかに、もっと関心があります。なぜなら、これは私自身のコードを理解できないということです。

私はJavascriptに関するこのサイトの同様のスレッドに続き、Chosen Answerは関数の外で初期化全体を実行すると言いました。

JavaScript: How to stop random number from regenerating?

Iが行わOpenStackの方法はthePreAnswerのランダム化とその数にジ・アンサーの設定の両方を含むように、私は以下のコードを変更しました。まだ空白です。LivecodeがグローバルthePreAnswer

がthePreAnswer

最後にランダム(100)を入れ、長い秒にrandomSeedを設定OpenStackの

を使用しているため、以下のコードは私に多くの意味がありますopenStack

on mouseUp

がquarterOne

に25を置くローカルquarterZero、quarterOne、quarterTwo、quarterThree、quarterFour

がquarterZero

に0を入れ

theGuess

にFLD "fld_guess" のテキストを入れquarterTwoに50を入れます

75をquarter3に入れる

qを100に入れるuarterFour

グローバルthePreAnswer

グローバルジ・アンサー

は、その後、theGuess <ジ・アンサー場合theGuess =ジ・アンサー

まで

ジ・アンサー

に低すぎる

答えを」繰り返しをthePreAnswerを入れて高いと思います! "高すぎるtheGuess>ジ・アンサー、その後

答え」場合

場合& &ジ・アンサー

終了リピート

エンド "の答えだった"

答えは、下の推測します!答えは "

答え "だった" & &ジ・アンサー

終了リピート

END IF

theGuessはその後

答えジ・アンサーであれば "正しい"

答え"答えは「& &です。

はFLDに "fld_guess" theGuessに空入れ

を空に置く

終了リピート

"fld_guess" が空であるならば、終了リピート

場合theGuess> quarterZeroとtheGuess < = quarterOneとtheAnswer> quarterZero ANDAnswer < = quarterOne次に

の答え "1と25の間です!あなたは近いよ! "

答え "の答えだった" & &ジ・アンサー

FLDに空置く "fld_guess" theGuess

終了リピート

場合に空の入れ

" fld_guess "が空である場合には、繰り返しを終了します。

guess> quarterOneとthe guess < = quarterTwoとtheAnswer> quarterOneとtheAnswer < = quarterTwo

答え「25と50の間です!あなたは近いよ! "

答え "の答えだった" & &ジ・アンサー

FLDに空置く "fld_guess" theGuess

終了リピート

場合に空の入れ

" fld_guess "が空で、その後に繰り返し終了する

exit repeat

場合theGuess> quarterTwoとtheGuess < = quarterThreeとジ・アンサー> quarterTwoとジ・アンサー< = quarterThreeその後、

答え「それは1と75の間です!あなたは近くにいる!fld_guess "空であるfld_guess "FLDに空入れ& &ジ・アンサー

""

答え" の答えだった" FLDがあれば

は空theGuess

への出口リピート

を置きます"その後、繰り返しを終了します。

exit repeat

場合theGuess> quarterThreeとtheGuess < = quarterFourとジ・アンサー> quarterThreeとジ・アンサー< = quarterFourその後、

答え「それは1と100の間です!あなたは近いよ!」

答え "の答えだった"

& &ジ・アンサー

FLDに空置く "fld_guess" theGuessに空入れ

終了リピート

場合FLD "fld_guess"は空です。その後、繰り返しを終了します。

答え "repeat exited" exit repeat

出口リピート

END IF

END IF

END IF

END IF

なら端リピート

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 
関連する問題