Há várias perguntas sobre este jogo , até mesmo uma king-of-the-hill concurso aqui . Mas acho que todos esses desafios e concursos precisam de uma maneira de determinar automaticamente o vencedor de um jogo. Tão:
Desafio
Dadas duas entradas no intervalo que ["rock", "paper", "scissors", "lizard", "spock"]
representam as seleções para o jogador 1 e o jogador 2, determine o vencedor da partida.
Regras
[Winner] [action] [loser]
-----------------------------
scissors cut paper
paper covers rock
rock crushes lizard
lizard poisons spock
spock smashes scissors
scissors decapitates lizard
lizard eats paper
paper disproves spock
spock vaporizes rock
rock crushes scissors
Restrições
- A entrada será um par de strings no intervalo especificado (nenhuma outra string pode ser usada). Você pode usar matrizes de caracteres, se desejar, desde que representem qualquer um dos valores mencionados.
- Você pode optar por usar minúsculas, maiúsculas (
"ROCK"
) ou caixa de camelo ("Rock"
) para as seqüências de entrada, desde que a caixa escolhida seja a mesma para todas as entradas. - A saída será um trio de valores que determinam o vencedor, que pode ser o que você quiser, desde que as respostas sejam consistentes. Exemplo:
1
se a primeira entrada vencer,2
se a segunda entrada vencer,0
se houver um empate. Ou talvezA
se a primeira entrada vencer,B
se a segunda entrada vencer,<empty string>
se houver um empate.
Objetivo
Este é o código-golfe , portanto, pode ganhar o programa / método / função / lambda mais curto para cada idioma!
Testes
[Input 1] [Input 2] [Output: 1/2/0]
-----------------------------------
rock paper 2
rock scissors 1
lizard spock 1
spock rock 1
spock paper 2
rock rock 0
cake
truque).