← Все вопросы

камень ножницы бумага против компа на питоне — помогите собрать

Задан 4 месяца назад298 просмотров2 ответа
5

Делаю проект по информатике — камень-ножницы-бумага против компьютера. Комп должен выбирать случайно. Вот что есть:

import random
player = input("камень/ножницы/бумага: ")
comp = random.choice(["камень", "ножницы", "бумага"])
print("Комп выбрал:", comp)

А вот кто победил — не соображу как проверить, там же куча комбинаций. Туплю с if-ами.

2 ответа

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

Комбинаций на самом деле немного. Сначала проверяем ничью, потом три случая когда выигрывает игрок, а всё остальное — победа компа. Вот целиком:

import random

variants = ["камень", "ножницы", "бумага"]
player = input("камень / ножницы / бумага: ")
comp = random.choice(variants)
print("Комп выбрал:", comp)

if player == comp:
    print("Ничья!")
elif (player == "камень" and comp == "ножницы") or \
     (player == "ножницы" and comp == "бумага") or \
     (player == "бумага" and comp == "камень"):
    print("Ты победил!")
else:
    print("Комп победил :(")

Как работает: если выборы совпали — ничья. Дальше перечисляем все три ситуации, где игрок бьёт компа (камень бьёт ножницы и т.д.). Если ни одна не сработала — значит выиграл комп. Обратный слеш \ просто переносит длинное условие на новую строку.

Как улучшить: заведи счётчики побед игрока и компа и играй до 3 побед — получится настоящий матч.

4

У меня так же было, помогло сделать ввод цифрами (1-камень, 2-ножницы, 3-бумага), а то все опечатываются в словах. И ещё player.lower().strip() спасает, если кто-то введёт «Камень » с пробелом или с большой буквы.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект