我正在尝试用Ruby创建一个刽子手游戏。一切都很顺利,但现在我被卡住了。
我有这段代码:
def feedback
feedback = Array.new(@word.length, "-")
correct_letters = []
wrong_letters = []
word_array = @word.split("")
word_array.each_with_index do |letter, index|
if letter == @input
feedback[index] = letter
correct_letters << letter
end
end
end
它处于循环中:
until @@count == 0 || win?
guess_whole_word
user_input
user_input_valid?
feedback
show_count
end
每次执行until
循环时,都会重新创建数组,以便添加到数组中的值消失。我想在数组中添加正确和错误的字母,并在反馈中添加正确的字母,以反映用户猜测创建单词的字母。
答案 0 :(得分:2)
每次执行时,feedback
函数都会实例化新的本地数组变量。
如果您希望在执行方法后访问这些变量,您可以:
作为该方法的结果返回它们,并在until
循环部分中使用它们:
def feedback
feedback = Array.new(@word.length, "-")
correct_letters = []
wrong_letters = []
word_array = @word.split("")
word_array.each_with_index do |letter, index|
if letter == @input
feedback[index] = letter
correct_letters << letter
end
end
return [feedback, correct_letters, wrong_letters]
end
将变量声明为类的实例变量,以便您可以在feedback
方法之外访问它们,但您可能需要更改feedback
实现。