Вопрос Вопрос по python, а точнее фреймворк pytelegrambotapi

Регистрация
14 Фев 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Решил создать простенького телеграм бота с игрой "камень, ножницы бумага".

Сам бот работает корректно, только вот после того как ты отвечаешь боту "да" на "Хотите ли вы сыграть еще" он не реагирует, для того чтобы он начал игру нужно написать что-то еще раз. Код выложил ниже



import random

import telebot

from telebot import types



bot = telebot.TeleBot('6454160901:AAFF0gNfEC2NveH5JTS4kLuGzZ6IEXh9I8I')

choice = ["Камень?", "Ножницы✌️", "Бумага✋"]

computer = random.choice(choice)





@bot.message_handler(commands=['start'])

def start(message):

bot.send_message(message.chat.id, 'Привет, готов начать игру?')



bot.register_next_step_handler(message, new_game)





@bot.message_handler()

def new_game(message):

markup = types.ReplyKeyboardMarkup()

rock = types.KeyboardButton('Камень?')

scissors = types.KeyboardButton('Ножницы✌️')

paper = types.KeyboardButton('Бумага✋')



markup.row(rock)

markup.row(scissors, paper)



bot.send_message(message.chat.id, 'Камень?, ножницы✌️ или бумага✋?', reply_markup=markup)

bot.register_next_step_handler(message, statements)





def statements(message):

if message.text not in choice:

bot.send_message(message.chat.id, 'Ошибка! Необходимо нажимать только на кнопки!')



elif message.text == computer:

bot.send_message(message.chat.id, text=computer)

bot.send_message(message.chat.id, 'Ничья!')



elif message.text == 'Камень?':

if computer == 'Бумага✋':

bot.send_message(message.chat.id, text=computer)

bot.send_message(message.chat.id, 'Вы проиграли!')

elif computer == 'Ножницы✌️':

bot.send_message(message.chat.id, text=computer)

bot.send_message(message.chat.id, 'Вы выиграли!')



elif message.text == 'Ножницы✌️':

if computer == 'Бумага✋':

bot.send_message(message.chat.id, text=computer)

bot.send_message(message.chat.id, 'Вы выиграли!')

elif computer == 'Камень?':

bot.send_message(message.chat.id, text=computer)

bot.send_message(message.chat.id, 'Вы проиграли!')



elif message.text == 'Бумага✋':

if computer == 'Ножницы✌️':

bot.send_message(message.chat.id, text=computer)

bot.send_message(message.chat.id, 'Вы проиграли!')

elif computer == 'Камень?':

bot.send_message(message.chat.id, text=computer)

bot.send_message(message.chat.id, 'Вы выиграли!')



bot.send_message(message.chat.id, 'Хотите сыграть еще раз?')



bot.register_next_step_handler(message, retry)





def retry(message):

if message.text.lower() != 'да':

bot.send_message(message.chat.id, 'Прощай.. (ты всегда можешь сыграть еще с помощью команды /start)')



else:

bot.register_next_step_handler(message, new_game)





bot.infinity_polling()
 
import random
import telebot
from telebot import types

bot = telebot.TeleBot('6454160901:AAFF0gNfEC2NveH5JTS4kLuGzZ6IEXh9I8I')
choice = ["Камень?", "Ножницы✌️", "Бумага✋"]
computer = random.choice(choice)


@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Привет, готов начать игру?')
bot.register_next_step_handler(message, new_game)


@bot.message_handler()
def new_game(message):
if message.text.lower() != 'да':
bot.send_message(message.chat.id, 'Прощай.. (ты всегда можешь сыграть, написав Да)')
else:
markup = types.ReplyKeyboardMarkup()
rock = types.KeyboardButton('Камень?')
scissors = types.KeyboardButton('Ножницы✌️')
paper = types.KeyboardButton('Бумага✋')

markup.row(rock)
markup.row(scissors, paper)

bot.send_message(message.chat.id, 'Камень?, ножницы✌️ или бумага✋?', reply_markup=markup)
bot.register_next_step_handler(message, statements)


def statements(message):
if message.text not in choice:
bot.send_message(message.chat.id, 'Ошибка! Необходимо нажимать только на кнопки!')

elif message.text == computer:
bot.send_message(message.chat.id, text=computer)
bot.send_message(message.chat.id, 'Ничья!')

elif message.text == 'Камень?':
if computer == 'Бумага✋':
bot.send_message(message.chat.id, text=computer)
bot.send_message(message.chat.id, 'Вы проиграли!')
elif computer == 'Ножницы✌️':
bot.send_message(message.chat.id, text=computer)
bot.send_message(message.chat.id, 'Вы выиграли!')

elif message.text == 'Ножницы✌️':
if computer == 'Бумага✋':
bot.send_message(message.chat.id, text=computer)
bot.send_message(message.chat.id, 'Вы выиграли!')
elif computer == 'Камень?':
bot.send_message(message.chat.id, text=computer)
bot.send_message(message.chat.id, 'Вы проиграли!')

elif message.text == 'Бумага✋':
if computer == 'Ножницы✌️':
bot.send_message(message.chat.id, text=computer)
bot.send_message(message.chat.id, 'Вы проиграли!')
elif computer == 'Камень?':
bot.send_message(message.chat.id, text=computer)
bot.send_message(message.chat.id, 'Вы выиграли!')

bot.send_message(message.chat.id, 'Хотите сыграть еще раз?')

bot.register_next_step_handler(message, retry)


def retry(message):
if message.text.lower() != 'да':
bot.send_message(message.chat.id, 'Прощай.. (ты всегда можешь сыграть еще с помощью команды /start)')
bot.delete_state(message.from_user.id, message.chat.id)
else:
#bot.register_next_step_handler(message, new_game)
bot.delete_state(message.from_user.id, message.chat.id)
new_game(message)


bot.infinity_polling()
 
import random
import telebot
from telebot import types

bot = telebot.TeleBot('6454160901:AAFF0gNfEC2NveH5JTS4kLuGzZ6IEXh9I8I')
choice = ["Камень?", "Ножницы✌️", "Бумага✋"]

@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Привет, готов начать игру?')
bot.register_next_step_handler(message, new_game)

@bot.message_handler()
def new_game(message):
markup = types.ReplyKeyboardMarkup()
rock = types.KeyboardButton('Камень?')
scissors = types.KeyboardButton('Ножницы✌️')
paper = types.KeyboardButton('Бумага✋')

markup.row(rock)
markup.row(scissors, paper)

bot.send_message(message.chat.id, 'Камень?, ножницы✌️ или бумага✋?', reply_markup=markup)
bot.register_next_step_handler(message, statements)

def statements(message):
computer = random.choice(choice) # Выбор компьютера происходит здесь
if message.text not in choice:
bot.send_message(message.chat.id, 'Ошибка! Необходимо нажимать только на кнопки!')

# остальной код...
 
Назад
Сверху