0

enter code here我正在制作一个简单的单词猜谜游戏,但每次我提交我的玩家猜测随机单词变化。我尝试了很多解决方案,但我的猜测提交表单总是刷新秘密单词。有什么建议么?谢谢!

PS对不起我恶心的代码格式

这是我的代码:

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


4

1 回答 1

0

这里有一些东西可以帮助您入门。请注意,每个函数只做一件事。一个创建单词列表,另一个从单词列表中返回一个单词。如果您可以将一件事/动作封装在一个函数中,我会有所帮助。

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))
于 2019-11-17T14:23:47.297 回答