Python 3.8.5 НЕ ПРАВИЛЬНО РАБОТАЕТ игра
#камень, ножницы , бумага
#импортируем модуль и заставляем его выбрать одно случайное число (0-2)
import random
winner = ' '
computer_choice = random.randint (0, 2) #0,1,2
#выбраному числу присваиваем значение
if computer_choice == 0 :
computer_choice = 'камень'
elif computer_choice == 1 :
computer_choice = 'бумага'
else:
computer_choice = 'ножницы'
#спрашиваем, что выбрал юзер
user_choice = input('Камень, ножницы или бумага? ')
#прописываем возможные исходы( победа пк ) , в остальных случаях будет победа юзера
if computer_choice == user_choice :
winner = 'Ничья'
elif computer_choice == 'бумага' and user_choice == ' Камень':
winner = 'Компьютер'
elif computer_choice == 'Камень' and user_choice == ' ножницы':
winner = 'Компьютер'
elif computer_choice == 'бумага' and user_choice == ' бумага':
winner = 'Компьютер'
else: winner == 'Пользователь!'
#объявление победителя
if winner == 'Ничья':
print('Мы оба выбрали ' + computer_choice + ', играем снова!')
else:
print('Я выиграл, я выбрал ' + computer_choice)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
if computer_choice == 0 :
computer_choice = 'камень'
^^^^^^^^
...
elif computer_choice == 'бумага' and user_choice == ' Камень':
^^^^^^^^^
winner = 'Компьютер'
elif computer_choice == 'Камень' and user_choice == ' ножницы':
^^^
У вас в сравниваемых строках:
- разный регистр, приведите все слова к одному регистру
- лишние пробелы в начале строки, уберите их
И чтобы десять раз не писать одни и те же слова, заведите лучше переменные под эти слова и пишите эти переменные везде. При написании строк легко ошибиться и никто вас не поправит. А если напишете не ту переменную, вылезет ошибка, которую можно будет заметить и понять.
rock = 'камень'
paper = 'бумага'
if computer_choice == 0 :
computer_choice = rock
...
elif computer_choice == paper and user_choice == rock:
...
Если сомневаетесь во вводе пользователя - какой там регистр и нет ли пробелов в начале и конце, то приведите его в нужный вид перед тем, как сравнивать:
user_choice = user_choice.strip().lower()