Utwórz funkcję, która pobierze dwa ciągi jako dane wejściowe i zwróci jedno wyjście dla wyniku. Najpopularniejsza odpowiedź wygrywa.
Zasady Rock-paper-nożyce-jaszczurki-Spock są następujące:
- Nożyce do cięcia papieru
- Papier obejmuje kamień
- Skała miażdży jaszczurki
- Jaszczurka zatruwa Spocka
- Spock rozbija nożyczki
- Nożyce dekapitują jaszczurki
- Jaszczurka je papier
- Papier obala Spocka
- Spock paruje skałę
- Skała łamie nożyce
Dane wyjściowe dla każdego możliwego przypadku wejściowego to:
winner('Scissors', 'Paper') -> 'Scissors cut Paper'
winner('Scissors', 'Rock') -> 'Rock breaks Scissors'
winner('Scissors', 'Spock') -> 'Spock smashes Scissors'
winner('Scissors', 'Lizard') -> 'Scissors decapitate Lizard'
winner('Scissors', 'Scissors') -> 'Scissors tie Scissors'
winner('Paper', 'Rock') -> 'Paper covers Rock'
winner('Paper', 'Spock') -> 'Paper disproves Spock'
winner('Paper', 'Lizard') -> 'Lizard eats Paper'
winner('Paper', 'Scissors') -> 'Scissors cut Paper'
winner('Paper', 'Paper') -> 'Paper ties Paper'
winner('Rock', 'Spock') -> 'Spock vaporizes Rock'
winner('Rock', 'Lizard') -> 'Rock crushes Lizard'
winner('Rock', 'Scissors') -> 'Rock breaks Scissors'
winner('Rock', 'Paper') -> 'Paper covers Rock'
winner('Rock', 'Rock') -> 'Rock ties Rock'
winner('Lizard', 'Rock') -> 'Rock crushes Lizard'
winner('Lizard', 'Spock') -> 'Lizard poisons Spock'
winner('Lizard', 'Scissors') -> 'Scissors decapitate Lizard'
winner('Lizard', 'Paper') -> 'Lizard eats Paper'
winner('Lizard', 'Lizard') -> 'Lizard ties Lizard'
winner('Spock', 'Rock') -> 'Spock vaporizes Rock'
winner('Spock', 'Lizard') -> 'Lizard poisons Spock'
winner('Spock', 'Scissors') -> 'Spock smashes Scissors'
winner('Spock', 'Paper') -> 'Paper disproves Spock'
winner('Spock', 'Spock') -> 'Spock ties Spock'
Dodatkowe wyzwanie sugerowane przez @Sean Cheshire: Zezwalaj na listy niestandardowe, takie jak te z tej witryny. Z listą n-pozycji, przedmiot traci do (n-1) / 2 poprzedniej i wygrywa z (n-1) / 2 następną