Задать вопрос
Eujene
@Eujene
Айти или не айти?

Как упростить даннный код на python?

Привет.

Было грустно и одиноко, поэтому я написал игру камень-ножницы-бумага. В ходе решения возникла такая конструкция:
def whowin (first, second):
    if first == 'ножницы'   and second == 'камень':
        print("second win")
    elif first == 'камень'  and second == 'бумага':
        print('second win')
    elif first == 'бумага'  and second == 'ножницы':
        print('second win')

    elif first == 'ножницы' and second == 'бумага':
        print('first win')
    elif first == 'камень'  and second == 'ножницы':
        print('first win')
    elif first == 'бумага'  and second == 'камень':
        print("first win")

Меня не отпускает ощущение, что данное решение является костылем. Посоветуйте, пожалуйста, как это можно переписать корректнее.
  • Вопрос задан
  • 394 просмотра
Подписаться 1 Простой Комментировать
Ответ пользователя pcdesign К ответам на вопрос (3)
@pcdesign
def whowin(first, second):
    game = {('ножницы', 'камень'): "second win",
        ('камень', 'бумага'): 'second win',
        ('бумага', 'ножницы'): 'second win',
        ('ножницы', 'бумага'):  'first win',
        ('камень',  'ножницы'): 'first win',
        ('бумага'  'камень'): 'first win'}
    print(game[(first, second)])


Наверное, можно еще упростить.
Ответ написан