Ruby: Как выйти из программы и спросить, хочет ли пользователь снова играть - PullRequest
0 голосов
/ 02 апреля 2019

Это для назначения класса.Мы создаем игру «Ящерица каменной ножницы» (RPSSL).Пользователь против компьютера.Первым, кто выиграет 5x, станет grand_winner

У меня проблемы с реализацией кода, чтобы спросить пользователя, хочет ли он играть снова, а если нет, выйти из программы.Это было легко реализовать, когда это была всего лишь одна игра.

Подсказки или советы приветствуются выше окончательного ответа.

Я попытался определить метод, поместить код в условие, чтобы проверить, есть ли grand_winner, но у меня действительно проблемы.Я знаю, что мне, возможно, придется вернуться назад или просто замедлиться, потому что ответ прямо здесь.

Вот ссылка на github:

https://github.com/emilianolowe/RB101_lesson_two/blob/master/rpssl.rb

Я ожидаюпрограмма спросить пользователя, хочет ли он сыграть еще один раунд.Если пользователь не хочет играть в другой раунд, выйдите из программы.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Вы можете создать оператор if на основе того, что возвращает функция grand_winner. Я немного его изменил, чтобы он просто возвращал true или false.

def grand_winner
  if WINS[:user] == 5
    prompt(MESSAGES['user_grand_winner'])
    return true #returns true if user is grand winner
  elsif WINS[:computer] == 5
    prompt(MESSAGES['computer_grand_winner'])
    return false #returns false if COM is grand winner
  end
end

Так что теперь вы можете сделать это:

if grand_winner == true #so if the grand winner was the player 
  prompt("Would you like to play again? (Y/N)")
  play_again = gets().chomp
  break unless play_again.downcase.start_with?('y')
else 
    #whatever happens if they were not the grand winner
end
0 голосов
/ 02 апреля 2019
loop do
  loop do
    # do stuff here
    break if grand_winner
  end
  print "continue? "
  break if gets.strip.downcase == 'no'
end

(Обратите внимание, что я просто приковываю puts к своему состоянию, поскольку оно всегда возвращает ноль, поэтому будет оцениваться правая часть or)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...