Jumpstart Labsで Sinatra を使用して WebGuesser を構築しています。ブラウザのテキスト フィールドに数値を入力します。[送信] をクリックすると、数値が低すぎるか高すぎるか (または 5 以内) という応答が返されるはずです。Shotgun を使用してサーバーをロードします。推測するたびに乱数を変更せずに数字を推測できるようにしたい。
コード:
require 'sinatra'
require 'sinatra/reloader'
def check_guess(guess)
if params["guess"].to_i == guess
"You got it right!"
elsif params["guess"].to_i > guess
if params["guess"].to_i > (guess + 5)
"Way too high!"
else
"Close.. but too high!"
end
elsif params["guess"].to_i < guess
if params["guess"].to_i < (guess - 5)
"Way too low!"
else
"Close.. but too low!"
end
end
end
# Home route
get '/' do
SECRET_NUMBER = rand(100)
message = check_guess(SECRET_NUMBER)
erb :index, :locals => { :message => message }
end
現在、推測するたびに新しい乱数を取得しますが、これは役に立ちません。私のSECRET_NUMBERがスコープ的にどこにあるかと関係があるように感じます。何かご意見は?