@Puffer_fish

Почему бот пишет про неудачу даже если дротик попал в цель?

При попадании дротика в цель должно отправляться сообщение с победой(оно отправляется), но так же вместе с ним отправляется сообщение о неудаче. Как это исправить?

@bot.message_handler(commands=['start'])
def send_message(message):
	keyboard1 = telebot.types.ReplyKeyboardMarkup(True)
	keyboard1.row('Давай поиграем!')
	mess = f' Привет, <b>{message.from_user.username}<u></u></b>! Хочешь поиграть?'
	bot.send_message(message.chat.id ,mess, parse_mode='HTML', reply_markup=keyboard1)
	@bot.message_handler(content_types=['text'])
	def func(message):
		if(message.text =='Давай поиграем!'):
		  	bot.send_message(message.chat.id, ' Ну тогда поехали!', reply_markup=types.ReplyKeyboardRemove())
		  	sent = bot.send_dice (message.chat.id, '')
		  	if sent.dice.value == 6:
		  		time.sleep(5)
		  		mess = f'Ого, тебе повезло!'
		  		bot.send_message(message.chat.id, mess, parse_mode='html')
		  	if sent.dice.value == 1 or 2 or 3 or 4 or 5:
		  		time.sleep(5)
		  		mess3 = f'Не повезло! Хочешь попробовать снова?'
		  		bot.send_message(message.chat.id, mess3, parse_mode='html', reply_markup = keyboard1)
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
if sent.dice.value == 1 or 2:
означает если (значение равно 1) или истина:
то-есть всегда истинно.
Внимательнее изучите, как правильно такие вещи делать.
Можно
if 1 <= value < 6:
Можно
if value in range(1, 6):
Можно
if value in [1, 2, 3, 4, 5]:
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы