【发布时间】:2023-03-29 06:45:02
【问题描述】:
大家好,我是 Ruby 新手,如果这看起来是一个愚蠢的问题,我很抱歉,只是似乎无法弄清楚我做错了什么。
我一直在努力寻找在线帮助,如果没有写一本关于这个问题的小说,我也不确定要搜索什么。
代码的目的是不断询问用户输入,直到他们输入一个字母,我通过检查用户输入是否在数组“字母表”中来做到这一点,当他们这样做时,它应该检查它是否与“ word”来检查字母是否在我在其他地方随机选择的单词中(我正在尝试编写刽子手,只是为了上下文)
代码如下:
def Check_Alph(word)
until $alphabet.include? 'guess' == true
puts "Please guess a letter from the alphabet"
guess = gets.chomp
puts "#{guess}"
end
if $alphabet.include? 'guess' == true
puts "valid letter entered, checking.."
$guessed_Letters << guess
if word.include? 'guess' == true
puts "good guess! That letter was in the word!"
puts "Letters confirmed to be in word: #{correct_Letters}"
end
end
end
在控制台中,它只是出现“请从字母表中猜出一个字母”,然后当我输入一个字母时,它只是重新提出问题。我什至尝试输出“猜测”以检查它是否正确获取了值,但并不确定发生了什么。
任何帮助将不胜感激!
编辑:
def Check_Alph()
guess == nil
until $alphabet.include?(guess)
puts "Please guess a letter from the alphabet"
guess = gets.chomp
puts "#{guess}"
end
end
【问题讨论】:
-
== true不仅是多余的。在这个例子中(没有括号)它实际上导致了一个错误,因为==具有比方法调用更强的绑定。 Ruby 像这样读取该行:$alphabet.include?('guess' == true),显然与$alphabet.include?(false)相同。而且由于$alphabet包含字符,这将始终返回false。
标签: ruby