Я попытался сделать игру по угадыванию чисел с использованием Ruby, но, похоже, она снова зацикливается после того, как пользователь получает правильный ответ, вот мой код и заранее спасибо!
require './input_functions'
def check (rno,input)
x = 1
while (x == 1)
y = 0
if (rno > input)
puts("Try a bigger number")
input = gets.chomp.to_i
y = y + 1
x = 1
else
if (rno < input)
puts("Try a smaller number")
input = gets.chomp.to_i
y = y + 1
x = 1
else
if (rno == input)
puts("Bingo!")
x = 0
end
end
end
end
return
end
def main
rno = rand(100)
input = read_integer("Enter an integer between 0 and 100: ")
check(rno,input,y)
times = check(rno,input,y)
puts ("You have tried " + times.to_s + " times.")
end
main
Кроме того, ваше описание ошибки неясно: что означает, что "кажется" повторяется снова и снова? Итак, вы имеете в виду, что это цикл не, но это только цикл выглядит как? idownvotedbecau.se/toomuchcodeidownvotedbecau.se/nomcve
привет, извините, я все еще новичок в stackoverflow. и нет, он зацикливается, но он не перестанет зацикливаться даже после того, как число равно сгенерированному случайному числу

Основные проблемы:
Вы вызываете метод check два раза в методе main, вам нужно удалить первый.
Вам нужно переместить y = 0 из цикла while, чтобы иметь возможность return.
Пытался немного упростить ваш код, а вы могли бы попытаться улучшить его еще больше.
def check(rno, input)
x = 1
y = 0
while x == 1
if rno == input
puts "Bingo!"
x = 0
else
if rno > input
puts "Try a bigger number"
else
puts "Try a smaller number"
end
input = gets.chomp.to_i
y = y + 1
end
end
return y
end
def main
rno = rand(100)
input = read_integer("Enter an integer between 0 and 100: ")
times = check(rno, input)
puts ("You have tried " + times.to_s + " times.")
end
Убедитесь, что вы создали минимальный воспроизводимый пример. Обратите внимание, что все три из этих слов важны: это должен быть только пример, вы не должны публиковать весь реальный код, а должны создать упрощенный пример, демонстрирующий вашу проблему. Кроме того, он должен быть минимальный, т.е. он не должен содержать ничего, что не является абсолютно необходимым для демонстрации проблемы. (Большинство проблем для начинающих можно продемонстрировать менее чем в 5 коротких простых строках кода.) И это должно быть воспроизводимый, что означает, что если я скопирую и вставлю и запущу код, я увижу ту же проблему, что и вы.