Глава 23 · Ещё больше мини-проектов

Проект 23-3: Игра «Камень, ножницы, бумага»

Вся логика игры — один словарь: кто кого побеждает.

Проект 23-3: Игра «Камень, ножницы, бумага»

Классика! Вся логика игры умещается в одном словаре — кто кого побеждает:

logika_pobeditelya.py
POBEZHDAET = {
    "камень": "ножницы",
    "ножницы": "бумага",
    "бумага": "камень",
}

def opredelit_pobeditelya(hod_igroka, hod_kompyutera):
    if hod_igroka == hod_kompyutera:
        return "ничья"
    if POBEZHDAET[hod_igroka] == hod_kompyutera:
        return "игрок"
    return "компьютер"
Словарь вместо длинной цепочки if/elif
Можно было написать девять условий if hod_igroka == "камень" and hod_kompyutera == "ножницы": ... — но словарь POBEZHDAET делает то же самое в трёх строчках и легко читается: «камень побеждает ножницы».

Ход компьютера и полный раунд

raund.py
def hod_kompyutera():
    return random.choice(VARIANTY)

def sygrat_raund(hod_igroka):
    hod_pk = hod_kompyutera()
    pobeditel = opredelit_pobeditelya(hod_igroka, hod_pk)
    return hod_pk, pobeditel

Полный код (с меню и счётом): 📄 projects/console/rock-paper-scissors/rps.py

★★★ Задача повышенной сложности
Добавляем ящерицу и Спока

Реализуйте расширенную версию игры «Камень, ножницы, бумага, ящерица, Спок» — понадобится словарь POBEZHDAET с пятью ключами, каждый побеждает по два варианта.

Практика в Jupyter Notebook
23-03-kamen-nozhnicy-bumaga.ipynb · все 9 комбинаций и симуляция раундов
Открыть ноутбук →