-1
有没有办法将方法的输出存储在Ruby中的变量?例如,如果我想将display_results的返回值存储在一个由win_counter评估的变量中,那可能吗?我希望win_counter在每次display_results都有赢家时增加。输出方法返回值到变量?红宝石
win_combos = [
['rock', 'scissors'],
['paper', 'rock'],
['scissors', 'paper'],
['rock', 'lizard'],
['lizard', 'spock'],
['spock', 'scissors'],
['scissors', 'lizard'],
['lizard', 'paper'],
['paper', 'spock'],
['spock', 'rock']
]
scores = { player: 0, computer: 0 }
def display_results(first, second, combos = [])
combos.each do |combo|
if combo == [first, second]
puts "Player won!"
break
elsif combo == [second, first]
puts "Computer won!"
break
end
end
if first == second
puts "It's a tie!"
end
end
def win_counter(player, computer, scores)
if display_results(player, computer)
scores[:player] = scores[:player] + 1
elsif display_results(computer, player)
scores[:computer] = scores[:computer] + 1
end
puts "players wins: #{scores[:player]}; computer wins: #{scores[:computer]}"
end
display_results('spock', 'rock', win_combos)
win_counter('spock', 'rock', scores)