Istnieje kilka pytań dotyczących tej grze , nawet king-of-the-Hill konkurs tutaj . Myślę jednak, że wszystkie te wyzwania i konkursy potrzebują sposobu na automatyczne określenie zwycięzcy gry. Więc:
Wyzwanie
Biorąc pod uwagę dwa dane wejściowe w zakresie ["rock", "paper", "scissors", "lizard", "spock"]
reprezentującym wybory dla gracza 1 i gracza 2, określ zwycięzcę meczu.
Zasady
[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
Ograniczenia
- Dane wejściowe będą parą ciągów w danym zakresie (nie można użyć innych ciągów). Możesz użyć tablic znaków, jeśli chcesz, o ile reprezentują one dowolną z wymienionych wartości.
- Możesz wybrać, czy chcesz używać małych liter, wielkich liter (
"ROCK"
) czy wielbłąda ("Rock"
) dla ciągów wejściowych, o ile wybrana wielkość jest taka sama dla wszystkich danych wejściowych. - Rezultatem będzie trio wartości, które określają zwycięzcę, którym może być cokolwiek chcesz, o ile odpowiedzi są spójne. Przykład:
1
jeśli pierwsze wejście wygrywa,2
jeśli drugie wejście wygrywa,0
jeśli jest remis. A możeA
jeśli pierwsze wejście wygrywa,B
jeśli drugie wejście wygrywa,<empty string>
jeśli jest remis.
Cel
To jest golf golfowy , więc może wygrać najkrótszy program / metoda / funkcja / lambda dla każdego języka!
Testy
[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
lewą).