← Все вопросы

Игра «камень-ножницы-бумага» против компьютера — как сделать первой?

Задан 16 месяцев назад1.5к просмотров2 ответа
6

Хочу сделать «камень-ножницы-бумага»: я выбираю, компьютер выбирает случайно, и программа говорит, кто победил. Застрял на главном — как определить победителя, не расписывая все варианты руками? Их же очень много получается.

2 ответа

10
✓ Принятый ответ — помог автору

Хитрость в том, чтобы для каждого выбора знать, что он бьёт. Тогда вся логика — пара строк:

import random

beats = {'камень': 'ножницы', 'ножницы': 'бумага', 'бумага': 'камень'}

player = input('камень / ножницы / бумага: ').strip().lower()
computer = random.choice(list(beats))
print('Компьютер:', computer)

if player == computer:
    print('Ничья')
elif beats[player] == computer:
    print('Ты выиграл!')
else:
    print('Компьютер выиграл')

Ключ — словарь beats: «камень бьёт ножницы» и т.д. Если выбор игрока бьёт выбор компьютера (beats[player] == computer) — победа. Никаких девяти if расписывать не нужно. Дальше можешь добавить счёт и игру до 3 побед.

3

Если хочешь подстраховаться от опечаток игрока, проверь ввод заранее:

if player not in beats:
    print('Не понял выбор')

Иначе при вводе «камено» программа упадёт с KeyError. Мелочь, но именно такие проверки отличают законченный проект от полусырого.

Ваш ответ

, чтобы ответить на вопрос.