Помогите пожалуйста на python обязательно как написано
написание компьютерной игры Камень-ножницы-бумага
Задание: Пользователю на выбор предлагается ввести камень, ножницы или бумагу. Противником пользователя является компьютер. Поэтому далее вам необходимо сгенерировать рандомный выбор компьютера - так же камень, ножницы или бумагу. После этого в соответствии с известными правилами игры определяется победитель, о чем выводится сообщение в консоль.
После первого раунда программа НЕ завершается, а спрашивает у пользователя, хочет ли он сыграть еще. Если он соглашается - то начинается новый раунд. Если нет - то программа завершается. Соответственно, игра может продолжаться до тех пор, пока пользователь не откажется ее продолжать.
Подсказки:
1. Бесконечную игру можно реализовать с помощью бесконечного цикла вида
while True:
Из него можно выйти с помощью простой команды
break
2. Для реализации рандомного выбора компьютера вам понадобятся функции из особого модуля. Чтобы их подключить, в начале программы необходимо написать
import random
Выбор рандомного камня-ножниц-бумаги можно реализовать с помощью двух функций из этого модуля - random.choice(list) и random.uniform(start,end). Они делают немного разные вещи, но обе подойдут для нашего случай - тут уже на ваш вкус. Кратко объясним их смысл:
✅random.choice(list) - возвращает случайное значение из списка list.
✅random.uniform(start,end) - возвращает случайное дробное число в диапазоне от start до end
Ответы
import random
while True:
try:
t = int(
input('Выберите ваш ход:\n1 - Камень\n2 - Ножницы\n3 - Бумага\n\n')
)
if t not in (1, 2, 3):
raise ValueError
except:
print('\033[1;31mНеверный ввод\033[0m')
continue
n = random.choice([
'Камень',
'Ножницы',
'Бумага'
])
if (t == 1 and n == 'Бумага') or \
(t == 2 and n == 'Камень') or \
(t == 3 and n == 'Ножницы'):
print(f'Ход компьютера: \033[1;33m{n}\n\033[1;31mВы проиграли :(\033[0m')
else:
print(f'Ход компьютера: \033[1;33m{n}\n\033[1;32mВы выиграли!\033[0m')
while True:
again = input('Хотите сыграть ещё? (Да/Нет)\n')
if again.lower() not in ('да', 'нет'):
print('\033[1;31mНеверный ввод\033[0m')
else:
break
if again.lower() == 'нет':
print('\033[1;31mИгра завершена.\033[0m')
break