Не работает код не понимаю в чем проблема
Вот сам код:
if player not in ['к', 'н', 'б', 'выход']:
print('Не правильный ввод!')
if player == 'выход':
break;
# Теперь пропишем выбор для бота и тут нам поможет рандом:
gen = {1:'к', 2:'н', 3:'б'}
comp_choice = gen[random.randint(1, 3)]
print(f'Бот выбрал: {comp_choice}')
# Что ж мы сделали почти все шаги в игре, но осталось сделать победные комбинации:
win_combination = [('к','н'),('н','б'),('б','к')]
# Последний и самый простой шаг обозначаем победу или ничью:
if player == comp_choice:
print('Ничья')
elif (player,comp_choice) in win_combination:
print('Игрок победил')
else:
print('Победа бота')
Вот полный код:
import random
while True:
print('Вы играете в камень ножницы бумага. к - камень, н - ножницы, б - бумага. Чтобы выйти напишите: выход.')
player = input('Вы выбрали:')
if player not in ['к', 'н', 'б', 'выход']:
print('Не правильный ввод!')
if player == 'выход':
break;
gen = {1:'к', 2:'н', 3:'б'}
comp_choice = gen[random.randint(1, 3)]
print(f'Бот выбрал: {comp_choice}')
win_combination = [('к','н'),('н','б'),('б','к')]
if player == comp_choice:
print('Ничья')
elif (player,comp_choice) in win_combination:
print('Игрок победил')
else:
print('Победа бота')
Ответы (2 шт):
Автор решения: Tehnorobot
→ Ссылка
Попробуйте такой вариант:
import random
gen = {1:'к', 2:'н', 3:'б'}
win_combination = [('к','н'),('н','б'),('б','к')]
print('Вы играете в камень ножницы бумага. к - камень, н - ножницы, б - бумага. Чтобы выйти напишите: выход.')
while True:
player = input('Выберите знак: ')
if player not in ['к', 'н', 'б', 'выход']:
print('Не правильный ввод!')
elif player == 'выход':
break
comp_choice = gen[random.randint(1, 3)]
print(f'Бот выбрал: {comp_choice}')
if player == comp_choice:
print('Ничья')
elif (player,comp_choice) in win_combination:
print('Игрок победил')
else:
print('Победа бота')
Автор решения: CrazyElf
→ Ссылка
Если правильно расставить отступы и добавить continue на ошибке ввода, то всё работает как нужно:
import random
while True:
print('Вы играете в камень ножницы бумага. к - камень, н - ножницы, б - бумага. Чтобы выйти напишите: выход.')
player = input('Вы выбрали:')
if player not in ['к', 'н', 'б', 'выход']:
print('Не правильный ввод!')
continue # добавлено
if player == 'выход':
break;
gen = {1:'к', 2:'н', 3:'б'}
comp_choice = gen[random.randint(1, 3)]
print(f'Бот выбрал: {comp_choice}')
win_combination = [('к','н'),('н','б'),('б','к')]
if player == comp_choice:
print('Ничья')
elif (player,comp_choice) in win_combination:
print('Игрок победил')
else:
print('Победа бота')
Пример вывода:
Вы играете в камень ножницы бумага. к - камень, н - ножницы, б - бумага. Чтобы выйти напишите: выход.
Вы выбрали:ь
Не правильный ввод!
Вы играете в камень ножницы бумага. к - камень, н - ножницы, б - бумага. Чтобы выйти напишите: выход.
Вы выбрали:б
Бот выбрал: к
Игрок победил
Вы играете в камень ножницы бумага. к - камень, н - ножницы, б - бумага. Чтобы выйти напишите: выход.
Вы выбрали:к
Бот выбрал: к
Ничья
Вы играете в камень ножницы бумага. к - камень, н - ножницы, б - бумага. Чтобы выйти напишите: выход.
Вы выбрали:н
Бот выбрал: б
Игрок победил
Вы играете в камень ножницы бумага. к - камень, н - ножницы, б - бумага. Чтобы выйти напишите: выход.
Вы выбрали:выход