Архив рубрики ~Лента новостей~

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

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

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

Делиться

NOVOSTI

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

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

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

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

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

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

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

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

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

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

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

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

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

Следующий шаг — получить ввод от пользователя. Мы будем использовать переменную 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

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Архив рубрики ~Коротко из Telegram~ Нейронку БЕЗ ЦЕНЗУРЫ выпустили в открытый доступ — Gemma 4… Архив рубрики ~Коротко из Telegram~ Нашли комбайн для скачивания видео и музыки практически отовсюду —… Архив рубрики ~Коротко из Telegram~ Инструменты дня 🔍 Кьюи Перепроверяет ChatGPT, Claude и Gemini перед отправкой, потому… Архив рубрики ~Коротко из Telegram~ Kimi K3 нашла уязвимость в Redis за 27 минут Исследователь… Архив рубрики ~Коротко из Telegram~ Alibaba представила мощный движок синтеза речи Qwen-Audio-3.0-TTS Команда Qwen выпустила… Архив рубрики ~Коротко из Telegram~ Lightricks научила ИИ убирать лишних людей и машины с видео… Архив рубрики ~Коротко из Telegram~ Copilot теперь живет в «Проводнике» Windows 11 Microsoft продолжает встраивать… Архив рубрики ~Коротко из Telegram~ GitHub Copilot теперь поддерживает модель Gemini 3.6 Flash GitHub начал… Архив рубрики ~Коротко из Telegram~ Anthropic представила плагин Claude Security для поиска уязвимостей Anthropic выпустила… Архив рубрики ~Коротко из Telegram~ Cursor Router: снижение стоимости запросов к ИИ на 60% Команда… Архив рубрики ~Коротко из Telegram~ Российский разработчик СУБД Postgres Pro может сократить до 30% сотрудников…. Архив рубрики ~Коротко из Telegram~ Veon досрочно выкупил облигации на $886 млн, одновременно разместив новый… Архив рубрики ~Коротко из Telegram~ 💢 Иван Паломарес Каррaскоса (Machine Learning Mastery) разбирает пять стратегий… Архив рубрики ~Коротко из Telegram~ ✅ CEO Cloudflare Мэттью Принс на мероприятии Axios в Каннах… Архив рубрики ~Коротко из Telegram~ Нейронку БЕЗ ЦЕНЗУРЫ выпустили в открытый доступ — Gemma 4… Архив рубрики ~Коротко из Telegram~ Нашли комбайн для скачивания видео и музыки практически отовсюду —… Архив рубрики ~Коротко из Telegram~ Инструменты дня 🔍 Кьюи Перепроверяет ChatGPT, Claude и Gemini перед отправкой, потому… Архив рубрики ~Коротко из Telegram~ Kimi K3 нашла уязвимость в Redis за 27 минут Исследователь… Архив рубрики ~Коротко из Telegram~ Alibaba представила мощный движок синтеза речи Qwen-Audio-3.0-TTS Команда Qwen выпустила… Архив рубрики ~Коротко из Telegram~ Lightricks научила ИИ убирать лишних людей и машины с видео… Архив рубрики ~Коротко из Telegram~ Copilot теперь живет в «Проводнике» Windows 11 Microsoft продолжает встраивать… Архив рубрики ~Коротко из Telegram~ GitHub Copilot теперь поддерживает модель Gemini 3.6 Flash GitHub начал… Архив рубрики ~Коротко из Telegram~ Anthropic представила плагин Claude Security для поиска уязвимостей Anthropic выпустила… Архив рубрики ~Коротко из Telegram~ Cursor Router: снижение стоимости запросов к ИИ на 60% Команда… Архив рубрики ~Коротко из Telegram~ Российский разработчик СУБД Postgres Pro может сократить до 30% сотрудников…. Архив рубрики ~Коротко из Telegram~ Veon досрочно выкупил облигации на $886 млн, одновременно разместив новый… Архив рубрики ~Коротко из Telegram~ 💢 Иван Паломарес Каррaскоса (Machine Learning Mastery) разбирает пять стратегий… Архив рубрики ~Коротко из Telegram~ ✅ CEO Cloudflare Мэттью Принс на мероприятии Axios в Каннах…