Image

Реализация игры «Камень, ножницы, бумага» на Python

Учебник Python для начинающих с использованием условных операторов и модуля random

Делиться

852083049fd7a1a03adc0ab18321d355

Введение в игру

Игра «Камень, ножницы, бумага» была интересной и мобильной игрой с самого детства, в которую мы могли играть где угодно, когда было скучно. Игра проста. В ней участвуют два игрока, и каждый должен выбрать один из трёх вариантов: «Камень», «Ножницы, бумага» или «Ножницы». Камень изображается кулаком, «Ножницы» — двумя растопыренными пальцами, а «Бумага» — раскрытой ладонью.

Ниже приведены различные сценарии, которые могут произойти, и что они могут означать:

  • Камень против Бумаги: Бумага побеждает Камень. Бумага побеждает.
  • Камень против Ножниц: Камень ломает Ножницы. Камень побеждает.
  • Бумага против ножниц: Ножницы режут бумагу. Ножницы побеждают.
  • Те же знаки: ничья!

В этой статье мы воспользуемся нашим пониманием игры и начальными знаниями Python, чтобы написать компьютерную программу. Это будет сделано с помощью условных операторов Python: «if», «elif» и «else», а также модуля random, встроенного в Python. Мы научимся импортировать его и использовать его функции для добавления элемента случайности в нашу игру.

Реализация игры на Python

Теперь мы реализуем игру на Python. Для достижения нашей цели мы воспользуемся концепциями списков и рандомизации Python, используя модуль Python random.

Программа будет проходить следующим образом:

Программа предложит вам выбрать «Камень», «Ножницы» или «Бумага». Компьютер случайным образом выберет один из трёх вариантов. На основе различных сценариев, описанных выше, программа определит победителя и предложит повторить игру.

Определение списка и генерация ASCII-изображения

Сначала мы сгенерируем ASCII-изображение для игры «Камень, ножницы, бумага». Мы сохраним его в переменных с соответствующими именами, которые, в свою очередь, будут храниться в списке Python rps_list.

камень = «»» _______ —' ____) (_____) (____) (____) —.__(___) «»» бумага = «»» _______ —' ____)____ ______) _______) _______) —.__________) «»» ножницы = «»» _______ —' ____)____ ______) __________) (____) —.__(___) «»» rps_list = [камень, ножницы, бумага ]

57c89e643107ee8adde33158922d97a9

Запрос данных от пользователя

Следующий шаг — получить ввод от пользователя. Мы будем использовать переменную user_choice для хранения выбранного пользователем варианта игры, а также выведем его на экран. Обратите внимание, что переменная user_choice будет хранить ввод в виде строки. Этот ключевой момент будет полезно помнить при использовании условных операторов для сравнения выбора пользователя и компьютера в следующей статье.

user_choice = input(«Что вы выбираете? Введите «камень» для «Камня», «ножницы» для «Ножниц» и «бумага» для «Бумаги») print(f»Пользователь выбирает {user_choice}»)

Случайный выбор компьютера

После того, как пользователь сделал свой выбор, мы заставим компьютер сделать случайный выбор. Для этого мы используем модуль случайного выбора. Подробнее об этом можно узнать по следующей ссылке:

случайный — генерация псевдослучайных чисел

Функция choice() модуля random позволяет нам случайным образом выбирать из списка Python, переданного ей в качестве параметра. Мы сохраним этот случайный выбор в переменной computer_choice и выведем его на экран.

import random computer_choice = random.choice(rps_list) print(f»Компьютер выбирает {computer_choice}»)

Кроме того, вы можете ознакомиться с этой статьей, в которой рассказывается, как включить рандомизацию в наш код с помощью модуля Python random. В ней подробно объясняется работа различных функций с простыми и понятными примерами:

Как реализовать рандомизацию с помощью модуля Python Random

Сценарии с использованием условных операторов

Теперь мы определим все различные сценарии, упомянутые в начале, в виде кода. Для этого мы будем использовать if, elif и else — условные операторы Python.

if computer_choice == камень и user_choice == 'ножницы': print(«Вы проиграли») elif computer_choice == камень и user_choice == 'бумага': print(«Вы выиграли») elif computer_choice == камень и user_choice == «камень»: print(«Рисовать») elif computer_choice == бумага и user_choice == 'бумага': print(«Рисовать») elif computer_choice == бумага и user_choice == 'ножницы': print(«Вы выиграли») elif computer_choice == бумага и user_choice == «камень»: print(«Вы проиграли») elif computer_choice == ножницы и user_choice == «ножницы': print(«Рисовать») elif computer_choice == ножницы и user_choice == «камень»: print(«Вы выиграли») elif computer_choice == ножницы и user_choice == 'paper': print(«Вы проиграли») else: print(«Ошибка»)

Как видно из вышеприведенного кода, мы использовали каждый сценарий, сравнивая выбор компьютера с выбором пользователя, который был сохранен в виде строки, что можно понять из кавычек, а затем распечатали результаты: выиграл ли пользователь, выиграл ли компьютер или же между ними была ничья.

Заключение

Приведенная выше программа представляет собой простой код Python, который легко понять и который дает введение в условные операторы Python и использование модуля random, в частности его функции выбора.

Хотя существует множество способов закодировать сценарии, приведённый выше код был явным и понятным для новичков, включающим условные операторы if, elif и else. Можете ли вы представить себе другой способ закодировать эту игру?

Источник: towardsdatascience.com

✅ Найденные теги: новости, Реализация

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых