2015-03-10 14 views
2

У меня есть метод с циклом while, который продолжает вызывать другой метод до тех пор, пока третий метод не вернет true. Это в основном проверка, чтобы решить, разрешена ли головоломка.Приостановить цикл «до» и дождаться продолжения нажатия клавиши (Ruby)

def call_loop 
    until solved? #returns true if puzzle is solved 
    flip   #changes one piece on the board  
    end 
end 

Есть ли способ, чтобы иметь эту паузу цикла перед каждым вызовом метода флип и ждать, пока пользователь не нажмет пробел?

+0

http://stackoverflow.com/questions/174933/how-to-get-a-single-character-without-pressing-enter? – mikej

ответ

3

Простым решением было бы добавить gets до flip. Тогда он будет ждать, пока вы нажмете enter.

Если вы действительно хотите дождаться пробела, вы можете использовать проклятия. Он может выполнять надежную обработку ввода в терминале, но он может стать довольно сложным. Если вы используете Ruby 2.1.0 или ранее, проклятия являются частью stdlib. В противном случае вам понадобится один из gems.

Смежные вопросы