Бот с игрой орел решка
random_orel_reshka = random.choices(['Орел', 'Решка'])
user_point=1000
if message.text =='Орел-решка':
bot.send_message(message.chat.id,'Цель игры угадать какой стороной упадет монетка :\n'
'Выбирай Орел или Решка\n'
'Твои очки: '+str(user_point), reply_markup=markup_games_oreol_resgka)
bot.send_message(message.chat.id, '<tg-spoiler>%s</tg-spoiler>'% random_orel_reshka ,parse_mode="HTML")
if message.text == random_orel_reshka:
user_poin+=100
bot.send_message(message.chat.id,'Ты угадал \n',random_orel_reshka)
if message.text == 'Орел' and random_orel_reshka == 'Решка':
user_point-+100
bot.send_message(message.chat.id,'Не угадал \n',random_orel_reshka)
if message.text == 'Решка' and random_orel_reshka == 'Орел':
user_point-=100
bot.send_message(message.chat.id,'Не угадал \n',random_orel_reshka)
if message.text =='Мои очки':
bot.send_message(message.chat.id,'Твои очки: '+str(user_point))
Идея была в том, чтобы бот заранее загадывал, что выпадет Орел или Решка. Проблема в том, что после того, как выполняется bot.send_message(message.chat.id,'Цель игры угадать какой стороной упадет монетка :\n' 'Выбирай Орел или Решка\n' 'Твои очки: '+str(user_point), reply_markup=markup_games_oreol_resgka) Дальше код не работает, бот не сравнивает свой ответ с ответом пользователя. И по возможности подскажите, как оптимизировать код И в идеале подсказать, как брать спойлер ответа %s'% random_orel_reshka ,parse_mode="HTML" чтобы пользователь не мог увидеть заранее ответ(догадался только замазать его)
Ответы (1 шт):
Использование спойлера не совсем понятно. Какой в нем смысл? Даже для отладки он не будет корректно работать. Само по себе это сообщение смысла не имеет.
Логика игры тоже реализована не очень корректно и не очень понятно. Насколько я понимаю логика в том что пользователь пишет в чат либо "Орел", либо "Решка" и в этом случае надо сравнить с тем, что выбрал бот. Если то что написал пользователь совпало с тем что выбрал бот, то пользователь выиграл. Иначе проиграл. Вот так и надо реализовывать логику программы.
Должно получиться, что-то вроде
random_orel_reshka = random.choices(['Орел', 'Решка'])
user_point=1000
#Пользователь ввел "Орел-решка" - выводим приветственный экран
if message.text =='Орел-решка':
bot.send_message(message.chat.id,'Цель игры угадать какой стороной упадет монетка :\n'
'Выбирай Орел или Решка\n'
'Твои очки: '+str(user_point))
#Пользователь ввел "Орел" или "Решка" - значит это игра
if message.text == "Орел" or message.text == "Решка":
#Пользователь угадал
if message.text == random_orel_reshka:
user_point+=100
bot.send_message(message.chat.id,'Ты угадал\n')
else:
user_point-=100
bot.send_message(message.chat.id,'Не угадал\n')
#Пользователь запрашивает статус своего счета - выводим
if message.text =='Мои очки':
bot.send_message(message.chat.id,'Твои очки: '+str(user_point))
Как-то так. Логика думаю понятна. Но код я не проверял - могут быть как опечатки, так и синтаксические ошибки.