gpt4 book ai didi

ruby - Sinatra + Ruby : Random Number keeps changing every time I guess. 作用域问题?

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:40 24 4
gpt4 key购买 nike

我正在使用 Sinatra 构建带有 Jumpstart Labs 的 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 的范围有关。有什么想法吗?

最佳答案

每次对 "/" 发出 GET 请求时,都会执行相关代码,这会生成(带有警告)一个新的 SECRET_NUMBER

处理这个问题的一种方法是为第一次猜测(在这种情况下应该生成一个密码)和连续猜测(在这种情况下不应该生成一个新的密码)路由到不同的 URL。

此外,对随时间变化的事物使用常量是非常糟糕的做法。

关于ruby - Sinatra + Ruby : Random Number keeps changing every time I guess. 作用域问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com