Программа "Ножницы" где найти на компьютере

Обновлено: 21.11.2024

Вопрос

Проект 1. Игра «Камень, ножницы, бумага»
Напишите программу rps.py на языке Python, которая позволяет пользователю играть в игру «Камень, ножницы, бумага» против компьютера.
Программа должна работать следующим образом:
Вы можете установить эти постоянные переменные вверху вне определения вашей основной функции:
COMPUTER_WINS = 1
PLAYER_WINS = 2
TIE = 0
INVALID = 3
КАМЕНЬ = 1
БУМАГА = 2
НОЖНИЦЫ = 3
Для этой программы 1 представляет камень, 2 представляет бумагу и 3 представляет ножницы.
В вашей основной функции:
- Попросите пользователя выбрать камень, бумагу или ножницы, например: «Введите 1 для камня, 2 для бумаги, 3 для
ножниц: ' установите значение в переменную под названием «игрок».
- Создать случайное число от 1 до 3 для компьютера. Установите это значение в переменную с именем «компьютер». Если число равно 1, то компьютер выбрал камень. Если число равно 2, то компьютер выбрал бумагу. Если число равно 3, то компьютер выбрал ножницы. (Пока не отображайте выбор компьютера.)
- Вызовите функцию selectionString(choice) для вывода руки компьютера следующим образом: «Компьютер выбрал . '
- Вызовите функцию selectionString(choice) для вывода руки игрока следующим образом: 'Игрок выбрал . '
- Вызовите функцию, возвращающую значение, rockPaperScissors(computer, player), чтобы получить результат раунда между компьютером и игроком.
- Если ничья, выведите 'Вы сделали тот же выбор, что и компьютер. Начиная с начала» и повторяйте процесс до тех пор, пока не будет ничьей.
- Объявить, если компьютер является победителем с "Компьютер выигрывает игру" или игрок является победителем с "Вы выиграли игру" или если был неверный выбор, напечатайте "Вы сделали недопустимый выбор". Нет победителя». Если они сделали неверный выбор, вам не нужно повторять цикл снова.

Вне основной функции определите следующие функции:
rockPaperScissors(computer, player):
[функция, возвращающая значение]
Принимает целые числа, представляющие компьютер и «руку» игрока, поэтому говорить о камне, ножницах или бумаге в качестве аргументов.
Она возвращает одно из следующих значений:
TIE
PLAYER_WINS
COMPUTER_WINS
INVALID
Используя условные операторы на основе аргументов, переданных в функцию, определить, какие возвращаемое значение на основе следующих правил:
Если один игрок выбирает камень, а другой игрок выбирает ножницы, то камень побеждает. (Камень разбивает ножницы.)
Если один игрок выбирает ножницы, а другой игрок выбирает бумагу, то выигрывают ножницы. (Ножницы режут бумагу.)
Если один игрок выбирает бумагу, а другой игрок выбирает камень, то выигрывает бумага. (Бумага оборачивает камень.)
Если оба игрока делают одинаковый выбор, игра должна быть сыграна снова, чтобы определить победителя.

choiceString(choice)
Функция, возвращающая значение, которая принимает аргумент выбора (число, представляющее камень, ножницы или бумагу) и возвращает одну из следующих строк:
'rock'
'бумага'
'ножницы'
'Что-то пошло не так'
Другими словами, функция возвращает строковое значение целого числа, переданного в качестве аргумента.

Предварительный просмотр решения

Эти решения могут предлагать пошаговые объяснения решения проблем или хорошие примеры написания, которые включают современные стили форматирования и построения библиографий из текстовых цитат и ссылок. Учащиеся могут использовать эти решения для развития личных навыков и практики. Неэтичное использование строго запрещено.

Это только предварительная версия решения. Пожалуйста, используйте кнопку покупки, чтобы увидеть все решение

Я предполагаю, что вы изучаете Python, потому что хотите писать интерактивные программы, например видеоигры. Что ж, сегодня твой счастливый день. Вы собираетесь программировать свою первую игру на Python.

Ваша первая игра на Python: камень, ножницы, бумага

Откройте IDLE и создайте новый файл rps.py. Затем введите следующее:

Опытные программисты сразу же заметят, что есть лучшие способы написать игру на языке Python "Камень, ножницы, бумага". Но для новичка очень важно уметь понимать программу и следовать ей. Давайте разберемся…

Сначала мы импортируем randint из модуля random. Так будет играть наш компьютерный противник.

Затем мы создаем список вариантов воспроизведения:

Есть три возможных хода, которые вы и компьютер можете использовать на каждом ходу: «Камень», «Бумага» и «Ножницы».

Далее мы настроим наших игроков, компьютер и вас:

Мы назначаем компьютеру случайное воспроизведение, используя наш список t и функцию randint. Почему (0,2)? Помните, что компьютеры начинают считать с 0. Таким образом, «Камень» находится в позиции 0, «Бумага» — в позиции 1 и так далее. В отличие от игры в RPS с друзьями в мясном пространстве, компьютер сделал свою игру и ждет, когда вы сделаете свою очередь.Кроме того, в отличие от игры в RPS с друзьями в мясном пространстве, компьютер не будет обманывать и менять свою игру после того, как вы сделаете свою. Мы устанавливаем для вас, игрока, значение False. Почему? Я рад, что вы спросили. Давайте взглянем на тело нашей программы — цикл while:

После запуска цикла while компьютер будет терпеливо ждать, пока вы начнете играть. Как только вы начинаете свой ход, ваш статус меняется с False на True, потому что любое значение, присвоенное переменной player, делает player True. Мы используем функцию input() для передачи нового значения переменной player. Ваш ввод определит, какой оператор будет запущен ниже.

Используя вложенные операторы if/elif/else, мы проверяем все возможные исходы игры и возвращаем сообщение о победителе, ничьей или ошибке.

Мы используем else в конце, чтобы выделить все, что не является "камень", "бумага" или "ножницы". Наконец, мы сбрасываем значение player на False, чтобы перезапустить цикл while.

Давайте воспользуемся кодом Java, чтобы создать игру "камень, ножницы, бумага"! Эту классическую игру можно написать на Java, используя базовые концепции. Если вы хотите узнать больше о создании игр на Java, этот учебник может стать хорошим источником вдохновения для того, как создавать простые игры с помощью кода, прежде чем переходить к сложной графике или игровым пользовательским интерфейсам.

Все, что вам нужно, — это базовые знания Java и опыт использования основных понятий, таких как условные операторы и циклы. Посмотрите обучающее видео, чтобы узнать, как мы шаг за шагом программируем эту игру, и продолжайте читать этот пост, чтобы узнать больше.

Содержание

Для кого этот проект?

Эта информация о проекте и сводка результатов обучения помогут вам решить, подходит ли вам этот проект.

Этот проект относится к нашему классу программирования Juni Java уровня 1 для детей. Этот учебник по Java для начинающих предназначен для студентов, которым нужен простой проект-задача длиной около 50–75 строк. Вы должны заранее просмотреть переменные, ввод и вывод, а также условия, чтобы получить максимальную отдачу от этого проекта.

Некоторые другие проекты, которые вы можете попробовать в первую очередь, чтобы больше попрактиковаться в Java для начинающих, — это наша игра в крестики-нолики Java и учебные пособия по кодированию Maze Runner in Java.

В качестве результатов обучения вы получите много практики с условными выражениями, циклами и случайными числами.

Демонстрация проекта

Нажмите запустить, чтобы увидеть проект самостоятельно!

Если вы застряли, вы также можете просмотреть код решения моего проекта.

О чем следует помнить:

  • Пользователь вводит ход, набирая "камень", "бумага" или "ножницы".
  • Ход противника выбирается случайным образом, и программа распечатывает, выиграли ли вы, сыграли вничью или проиграли.
  • Программа продолжает просить пользователя ввести свой ход после каждого раунда, пока он не введет выход, после чего программа завершится.
  • Если вы введете что-то случайное, программа напечатает "Ваш ход недействителен!"

Этапы создания этого проекта:

  1. Попросите пользователя внести свой ход.
  2. Проверить, ввел ли пользователь правильный ход.
  3. Создать ход противника случайным образом.
  4. Используйте условные выражения, чтобы определить, выиграли ли вы, проиграли или сыграли вничью.
  5. Используйте цикл, чтобы продолжить запрашивать у пользователя ход.
  6. Проверьте, хочет ли пользователь выйти.

Как мы делаем каждый из этих шагов?

Шаг 1. Попросите пользователя внести свой ход.

  • Сначала мы импортируем класс Scanner, чтобы получить информацию от пользователя, добавив import java.util.Scanner в начало нашей программы.
  • Затем мы создаем переменную Scanner.
  • Затем мы распечатываем сообщение, в котором пользователю предлагается ввести камень, ножницы или бумагу с помощью System.out.print() .
  • Мы сохраняем их ввод в строке с именем myMove .

Шаг 2. Проверьте, ввел ли пользователь правильный ход.

Используйте условное выражение, чтобы проверить, равно ли значение myMove камню, ножницам или бумаге. Если это не равно камню, бумаге или ножницам, то мы можем распечатать сообщение для пользователя о том, что его ход недействителен!

Шаг 3. Случайным образом сгенерируйте ход противника.

Чтобы случайным образом сгенерировать ход противника, мы можем использовать Math.random() . Math.random() генерирует только десятичное число между 0 и 1, включая 0 и исключая 1. Но, поскольку в камне, бумаге, ножницах есть 3 возможных хода, нам нужно 3 возможных случайных числа! Как мы можем это сделать?

Подсказка: мы можем использовать Math.random() * 3 для генерации случайного числа в диапазоне от 0 до 3, включая 0 и исключая 3. Затем мы можем преобразовать это значение в целое число, чтобы наши случайные числа включать 0, 1 и 2 — без десятичных знаков между ними.

Теперь нам нужно преобразовать наше случайное число, которое может быть 0, 1 или 2, в String OptimizerMove, которое может быть либо камнем, либо ножницами, либо бумагой.

Подсказка: используйте условные операторы, чтобы выполнить следующую проверку: если случайное число равно 0, то ход противника будет каменным; если случайное число равно 1, то ход соперника будет бумажным; если случайное число равно 2, то ход противника будет ножницами.

Шаг 4. Используйте условные операторы, чтобы определить, выиграли ли вы, проиграли или сыграли вничью.

Давайте сначала проверим, была ли ничья. Если ход противника совпал с вашим ходом, то ничья.

Подсказка: мы можем использовать .equals() для проверки равенства между двумя строками. Если myMove равно оппонентуMove , то это ничья.

Теперь мы можем перейти к else if и проверить, выиграл ли пользователь. Давайте рассмотрим все возможные ситуации, в которых выигрывает пользователь: у пользователя камень, а у противника ножницы, у пользователя ножницы, а у противника бумага, у пользователя есть бумага, а у противника камень.

  • Можно использовать && и || сделать один гигантский оператор if!
  • Давайте переведем то, что мы только что сказали, в код: если ( myMove равно камню, а OpinionMove равно ножницам) или ( myMove равно ножницам, а OpinionMove равно бумаге) или ( myMove равно бумаге и OpinionMove равно камню), то выведите, что пользователь выиграл . В противном случае мы можем вывести, что пользователь проиграл.

Шаг 5. Используйте цикл, чтобы продолжить запрашивать у пользователя ход.

Мы хотим продолжать просить пользователя ввести свой ход. Как мы можем это сделать?

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

Но теперь наша игра будет работать вечно! Как остановить цикл while?

Для остановки цикла while(true) нам нужен оператор break в теле цикла. Мы можем спросить пользователя, хочет ли он выйти из игры.

Шаг 6. Проверьте, хочет ли пользователь выйти.

  • В нашем операторе печати, запрашивающем у пользователя ход, мы также можем попросить его набрать quit, если он хочет закончить игру.
  • Давайте воспользуемся оператором if внутри нашего цикла while, чтобы проверить, ввел ли пользователь команду quit.
  • Если пользователь набрал команду quit, мы можем выйти из цикла while с помощью оператора break.

Испытайте себя дополнительными функциями

Ознакомьтесь с дополнительными расширенными функциями проекта ниже или ознакомьтесь с кодом решения, если вы застряли.

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

  1. Вне цикла while создайте две переменные типа int: одну для выигрышей и одну для проигрышей.
  2. Увеличивать выигрыши и проигрыши, когда пользователь выигрывает и проигрывает соответственно.
  3. Мы можем использовать сокращенную запись ++ для увеличения выигрышей и проигрышей.
  4. После каждой игры распечатывайте выигрыши и проигрыши.
  5. После того, как пользователь уйдет, используйте условные операторы, чтобы распечатать, выиграл ли пользователь больше игр, проиграл больше игр или выиграл и проиграл одинаковое количество игр.

Творческие предложения:

  • Делайте собственные ходы! Например, «огонь побеждает всех МВАХАХА!» (отсылка к Друзьям).

Отличная работа! Ознакомьтесь с другими руководствами.

Спасибо за просмотр и надеюсь, что вам было весело работать со мной над проектом "Камень, ножницы, бумага"!

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

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

Нужна дополнительная помощь или хотите продолжить обучение?

Просмотр вопросов по кодированию – один из лучших способов обучения! Еще один отличный способ учиться у опытного программиста или инструктора.

Ирит Катияр — старшеклассница, последние 4 года учится в Juni и проходит летнюю стажировку в Juni. Он начал с курса компьютерных наук AP, едва зная, как программировать, затем взял курс USACO и веб-разработки с Джуни. Теперь он любит программировать и опубликовал приложения в AppStore! Ирит хочет изучать вычислительную биологию, чтобы использовать свои знания в области компьютерных наук для решения задач по биологии.Он любит играть в сквош, танцевать, играть в Mario Kart и знакомиться с новыми людьми.

Двигайтесь дальше с Джуни

Раскройте свой потенциал с помощью нашего эксклюзивного образовательного контента, руководств и ресурсов, доступных только подписчикам Juni.

В детстве я играл в игру "Камень, ножницы, бумага". Сегодня, вспоминая детские воспоминания, я подумал, почему бы не создать игру «камень-ножницы-бумага» на java.
Эта игра также известна как "ножницы-камень-бумага" и "ножницы-бумага-камень". Если вы не знакомы с этой довольно популярной игрой, не волнуйтесь, я также поделюсь правилами игры. Начнем с правил, а затем перейдем к коду программы "Камень, ножницы, бумага" на языке Java.

Правила игры «Камень, ножницы, бумага»

<р>1. Камень бьет ножницы (камень давит ножницы)
2. The Scissors beats the Paper (ножницы режут бумагу)
3. Бумага побеждает камень

Возможно, вам интересно узнать, почему бумага бьет камень. Ответ таков: бумага может покрыть камень и, следовательно, побить его.
4. Если оба игрока создают одинаковое построение, то игра считается ничьей или ничьей.
5. В этой игре должно быть как минимум 2 игрока.

Если вы хотите узнать больше об этой игре, перейдите по ссылке Википедии здесь.

Псевдокод для Java-программы Rock Paper Scissors

<р>1. Предложите игроку ввести любую из следующих записей: КАМЕНЬ, БУМАГА, НОЖНИЦЫ.

<р>2. Метод getPlayerMove() использует класс Scanner для получения перемещения игрока. Этот метод напечатает и вернет ход, введенный игроком.

<р>3. Метод getComputerMove() использует метод nextInt(num) класса Random. Метод nextInt(num) создает случайное число от 0 (включительно) до num (исключительно). Метод getComputerMove() напечатает и вернет перемещение компьютера.

<р>4. Если playerMove и computerMove совпадают, то в игре ничья или ничья.

<р>5. Иначе, если playerMove и computerMove разные, возможны 3 случая.

а. Если playerMove — это ROCK, а computerMove — это PAPER, то компьютер побеждает.
Если playerMove равно ROCK, а computerMove равно SCISSORS, то игрок побеждает.

б. Если playerMove — БУМАГА, а computerMove — НОЖНИЦЫ, тогда компьютер побеждает. Если playerMove имеет значение PAPER, а computerMove — ROCK, то игрок побеждает.

<р>в. Если playerMove — НОЖНИЦЫ, а computerMove — ROCK, тогда компьютер побеждает.
Если playerMove равно SCISSORS, а computerMove равно PAPER, то игрок побеждает.

Программный код Rock Paper Scissors Java

В приведенном ниже коде программы Java для игры "камень-ножницы-бумага" игра будет проходить между пользователем и компьютером.

Вывод:
Введите любой из следующих входных данных:
КАМЕНЬ
БУМАГА
НОЖНИЦЫ

КАМЕНЬ
Ход игрока: КАМЕНЬ
Ход компьютера: НОЖНИЦЫ

На сегодня это все. Пожалуйста, укажите в комментариях, если у вас есть какие-либо вопросы, связанные с игрой "камень, ножницы, бумага" в Java.

Об авторе

Субхам Миттал проработал в Oracle 3 года.
Понравился этот пост? Чтобы не пропустить будущие публикации, подпишитесь на JavaHungry

Читайте также: