Buat fungsi yang akan mengambil dua string sebagai input dan mengembalikan satu output untuk hasilnya. Jawaban yang paling populer menang.
Aturan-aturan Rock-paper-scissors-lizard-Spock adalah:
- Gunting memotong kertas
- Kertas menutupi batu
- Kadal menghancurkan batu
- Kadal meracuni Spock
- Spock menghancurkan gunting
- Gunting memenggal kadal
- Kadal makan kertas
- Kertas membuktikan Spock
- Spock menguapkan batu
- Pemecah batu gunting
Output untuk setiap kasus input yang mungkin adalah:
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'
Tantangan ekstra yang disarankan oleh @Sean Cheshire: Izinkan daftar khusus, seperti yang dari situs ini. Dengan daftar n-item, item kehilangan ke (n-1) / 2 sebelumnya, dan menang atas (n-1) / 2 berikut