Ruby 如何使随机生成的单词保持不变?
Ruby 如何使随机生成的单词保持不变?,ruby,Ruby,在这里输入code我正在做一个简单的猜字游戏,但每次我提交我的玩家时,都会猜出随机的单词变化。我尝试了很多解决方案,但我的猜测提交表总是刷新秘密单词。 有什么建议吗?谢谢 对不起,我讨厌的代码格式 这是我的密码: formulate_secret(@@codeword) @vmessage = "Welcome to Wheel of Fortune! To begin, type a letter:" @results = "..." while @@tries > 1 playe
在这里输入code
我正在做一个简单的猜字游戏,但每次我提交我的玩家时,都会猜出随机的单词变化。我尝试了很多解决方案,但我的猜测提交表总是刷新秘密单词。
有什么建议吗?谢谢
对不起,我讨厌的代码格式
这是我的密码:
formulate_secret(@@codeword)
@vmessage = "Welcome to Wheel of Fortune! To begin, type a letter:"
@results = "..."
while @@tries > 1
player_guess = params[:guess].to_s
eval_guess(player_guess)
break
end
erb :home, :locals => {:message => @message, :tries => @@tries, :response => response, :words => @words, :codeword => @@codeword, :vmessage => @vmessage, :wordtable => @wordtable, :guess => player_guess, :result => @results}
end
@@correct = false
@vmessage = ""
@results = ""
wordtable = []
@@tries = 10
@result = []
@@codeword = ""
def read_secret
wordtable = Array.new
file = File.open("wordfile.txt")
File.foreach("wordfile.txt") { |line|
line = line.strip
wordtable.push line }
file.close()
@wordtable = wordtable
end
def formulate_secret(codeword)
read_secret
@result = []
5.times do
@result << @wordtable[rand(@wordtable.length)]
end
@@codeword = @result.sample
end
def eval_guess(player_guess)
@results = "#{@@codeword}"
if player_guess == "".to_s
""
elsif
player_guess == @@codeword
@results = "Congrats you did it!"
@@correct = true
elsif player_guess != @@codeword && !player_guess.nil?
@results = ""
@@tries -= 1
end
end
u秘密(@@code)
@vmessage=“欢迎来到命运之轮!首先,键入一封信:”
@结果=“…”
当@@尝试>1时
player_guess=params[:guess]。到
评估猜测(玩家猜测)
打破
结束
erb:home,:locals=>{:message=>@message,:trytes=>@@trytes,:response=>response,:words=>@words,:codeword=>@@codeword,:vmessage=>@vmessage,:wordtable=>@wordtable,:guess=>player\u guess,:result=>@results}
结束
@@正确=错误
@vmessage=“”
@结果=“”
wordtable=[]
@@尝试=10次
@结果=[]
@@codeword=“”
def read_秘密
wordtable=Array.new
file=file.open(“wordfile.txt”)
foreach(“wordfile.txt”){|行|
line=line.strip
wordtable.push行}
file.close()文件
@wordtable=wordtable
结束
def_秘密(码字)
读你的秘密
@结果=[]
5.5倍
@结果这里有一些东西可以让你开始。请注意,每个函数只做一件事。一个创建单词列表,另一个从单词列表返回一个单词。如果你能在函数中封装一件事/一个动作,我会帮你
def createWordList(filename)
words = []
# Make sure filename exists as a file
File.foreach(filename){|line|
words.push(line.chomp)
}
words
end
def getRandWord(words)
words.sample
end
print "Enter filename: "
filename = gets.chomp
puts getRandWord(createWordList(filename))
请下次识别您的代码,如果不是很难阅读,为什么在read_secret中,您有File.open和File.foreach?谢谢,我真的很感谢您抽出时间伸出援助之手