Предмет: Информатика, автор: wolerdm

Помогите пожалуйста
написание компьютерной игры Камень-ножницы-бумага

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

После первого раунда программа НЕ завершается, а спрашивает у пользователя, хочет ли он сыграть еще. Если он соглашается - то начинается новый раунд. Если нет - то программа завершается. Соответственно, игра может продолжаться до тех пор, пока пользователь не откажется ее продолжать.

Подсказки:
1. Бесконечную игру можно реализовать с помощью бесконечного цикла вида
while True:
Из него можно выйти с помощью простой команды
break

2. Для реализации рандомного выбора компьютера вам понадобятся функции из особого модуля. Чтобы их подключить, в начале программы необходимо написать
import random

Выбор рандомного камня-ножниц-бумаги можно реализовать с помощью двух функций из этого модуля - random.choice(list) и random.uniform(start,end). Они делают немного разные вещи, но обе подойдут для нашего случай - тут уже на ваш вкус. Кратко объясним их смысл:

✅random.choice(list) - возвращает случайное значение из списка list.
✅random.uniform(start,end) - возвращает случайное дробное число в диапазоне от start до end

Ответы

Автор ответа: mathgenius
1

import sys

from random import choice

def rock_paper_scissors():

   dict_wins ={

   'камень': 'ножницы',

   'ножницы': 'бумага',

   'бумага': 'камень'

   }

   human_choice = input('Ваш ход: ')

   if human_choice not in dict_wins.values():

       print('Неверный ход, попробуйте снова!')

       rock_paper_scissors()

   ii_choice = choice(list(dict_wins.values()))

   print('Ход компьютера:',ii_choice)

   if ii_choice == human_choice:

       print('Ничья!')

   elif ii_choice == dict_wins[human_choice]:

       print('Вы выйграли!')

   else:

       print('Вы проиграли, может в следующий раз повезет больше.')

   question()

def question():

   answer = input('Не хотите сыграть еще раз? (да/нет)\n')

   if answer not in ['да','нет']:

       print('Я вас не понимаю, попробуйте ответить снова!')

       question()

   elif answer == 'да':

       rock_paper_scissors()

   else:

       print('Cпасибо за игру!')

       sys.exit()

rock_paper_scissors()

question()

Приложения:

mathgenius: Cпециально показал как можно обойтись без вечного цикла while
Похожие вопросы