Я ruby студент с 1 месяца, и я застрял с одной частью моего кода. Проект основан на игре (камень, ножницы, бумага), но я столкнулся с проблемой, которую не могу решить на данный момент. Я хотел бы добавить один параметр в эту игру, особенно когда пользователь вводит неправильный ввод, отображая сообщение, но с условием, которое я добавил, он не работает.
elsif player_choice != 'r' || player_choice != 'p' || player_choice != 's' || player_choice != 'q' || player_choice != 'x'
puts "wrong input"
Итак, если у вас есть совет или какой-нибудь намек, чтобы поделиться со мной, будет здорово! (см. ниже весь код).
Большое спасибо.
#intro
puts "***** WELCOME TO PAPER SCISSORS ROCKS GAME *****"
puts "Input p = Paper, r = Rocks, s = Scissors, x = Display your score , q = Quit the game. "
25.times { print "-" }
puts
#scores
playerScore = 0
cpuScore = 0
CHOICES = {'p' => 'Paper', 'r' => 'Rock', 's' => 'Scissors', 'x' => 'score','q' => 'quit' }
CHOICE_CPU = {'p' => 'Paper', 'r' => 'Rock', 's' => 'Scissors'}
loop do
# player picks
begin
puts "Select your pick: (p/r/s/x/q)"
player_choice = gets.chomp.downcase
end until CHOICES.keys.include?(player_choice)
# computer picks
cpu_choice = CHOICE_CPU.keys.sample
def throw_message(winning_choice)
case winning_choice
when 'p'
puts "Paper wraps Rock!"
when 'r'
puts "Rock smashes Scissors!"
when 's'
puts "Scissors cuts Paper!"
when 'x'
puts "Live score"
when 'q'
puts "you decide to quit the game"
end
end
#display scores
if player_choice == 'x'
throw_message(player_choice)
puts "PLAYER : #{playerScore} CPU : #{cpuScore}"
#quit the game
elsif player_choice == 'q'
throw_message(player_choice)
break
# tie result
elsif player_choice == cpu_choice
puts "It's a Tie ! "
#player win
elsif (player_choice == 'p' && cpu_choice == 'r') || (player_choice == 'r' && cpu_choice == 's') || (player_choice == 's' && cpu_choice == 'p')
throw_message(playe·r_choice)
puts "You Win"
playerScore +=1
#display invalid input
elsif player_choice != 'r' || player_choice != 'p' || player_choice != 's' || player_choice != 'q' ||
player_choice != 'x'
puts "wrong input"
#cpu win
else throw_message(cpu_choice)
puts "Computer Win"
cpuScore +=1
end
end