Грамматическая ошибка,
if answer.include? word_array[iterations] == true
является избыточным, а также не цитируется правильно.
То, что вы пытались было:
if answer.include?(word_array[iterations]) == true
Но Руби читает это как:
if answer.include? (word_array[iterations] == true)
Но правильный путь:
if answer.include? word_array[iterations]
Не нужно проверять, верно ли это, поскольку include?
даст вам true
или false
и уже может применяться к if
.
Например:
"abcd".include? 'a'
#=> true
"abcd".include? 'f'
#=> false
"abcd".include?('a') == true
#=> true
Как вы можете видеть, когда вы сравниваете true == true
, вы все равно получаете true
, так зачем их сравнивать?
Об ошибке преобразования nil
, я думаю, это потому что:
while iterations <= word.length
должно измениться на
while iterations < word.length
Поскольку максимальный индекс строки - это длина строки минус один. (От 0 до длины-1).
Кроме того, gets
будет вводить дополнительный \n
с ним, замените его на gets.chomp
.