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?谢谢,我真的很感谢您抽出时间伸出援助之手