Сегодня в The Iron Yard нам дали задание написать код для игры «камень-ножницы-бумага». Простым и, вероятно, желаемым результатом было использование вложенных операторов if и if/else для записи результатов всех 9 возможных комбинаций.

Это было похоже на то, как идти по снегу, чтобы добраться до школы. Он доставит вас туда, и ваши ноги будут холодными. И будешь мокрым.

Я хотел решение, которое было бы больше похоже на прыжок в теплом уютном автобусе. Ты добираешься до школы, но всю дорогу ты поджаренный.

В итоге мы пришли к следующему.

Что делает код:

1–4 Берет на выбор пользователя камня/ножниц-бумаги. Мы не добавили ничего, чтобы сделать его нечувствительным к регистру. Но это можно было бы добавить, заставив строчные буквы.

6–11 Присваивает выбору 1 значение 1–3 в зависимости от того, что было выбрано для игрока 1.

15–19 Присваивает выбору 2 значение от 1 до 3 в зависимости от того, что было выбрано для игрока 2.

Строка 22 берет результат вычитания и сохраняет его в results.

Затем мы создали матрицу возможных числовых результатов задачи и обнаружили, что для победы Игрока 1 существует набор чисел, которые не перекрываются с числами, в которых игрок 2 вышел на первое место.

24–29 Тест, чтобы увидеть, что сохранено в результате, и распечатать победителя на основе этого.