[Python] Телеграм математическая играя

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
Создать математическую игру в которую можно играть через телеграм.

Бот генерирует пример (пример на основные 4е действия +-*/) и пользователь вводит ответ, если ответ правильный то +1 к

количеству правильных ответов, если ответ не правильный то -1.

Останавливать игру по вводу системной команды /stop_game и возвращать в сообщении количество примеров за игру

и количество правильных и неправильных ответов.

Если количество ответов правильных больше то дополнительно вывести веселый стикер

Иначе грустный

_____________
Вот такая вот задача, кто с подобными сталкивался, не могли бы подсказать по коду)
 

VolodinAS

Новичок
Пользователь
Дек 3, 2020
35
0
6
31
Россия, Тольятти
Всё довольно просто, если вы знаете язык Python хотя бы на минимальном уровне. АПИ телеграма гуглится. Основная структура такая:
Python:
import telebot
from telebot import types

bot = telebot.TeleBot('здесь Ваш токен от вашего телеграм-бота, созданного через бота @BotFather')

# этот метод обрабатывает любые текстовые команды
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message):
    print(message)
    if message.text == 'команда1':
        print('команда 1')
    elif message.text == 'другая команда':
        print('делать что-то другое')
      
    bot.send_message(message.chat.id, 'сообщение отправителю')
      
# этот метод принимает непосредственные команды (в телеграмме отправляется через /команда)
@bot.message_handler(commands=['start', 'help'])
def start_message(message):
    print('этот метод вызван командами либо /start, либо /help')
  
    bot.send_message(message.chat.id, 'сообщение отправителю')

if __name__ == '__main__':
    bot.polling(none_stop=True)

обязательно почитайте про send_message, send_photo - там много полезного - форматирование, отправка клавиатуры, инлайн-клавиатуры и куча всего остального. В общем, обязательно гуглите - уже много всяких статей.
Вот статьи, которыми пользовался я:
 

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
Всё довольно просто, если вы знаете язык Python хотя бы на минимальном уровне. АПИ телеграма гуглится. Основная структура такая:
Python:
import telebot
from telebot import types

bot = telebot.TeleBot('здесь Ваш токен от вашего телеграм-бота, созданного через бота @BotFather')

# этот метод обрабатывает любые текстовые команды
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message):
    print(message)
    if message.text == 'команда1':
        print('команда 1')
    elif message.text == 'другая команда':
        print('делать что-то другое')
     
    bot.send_message(message.chat.id, 'сообщение отправителю')
     
# этот метод принимает непосредственные команды (в телеграмме отправляется через /команда)
@bot.message_handler(commands=['start', 'help'])
def start_message(message):
    print('этот метод вызван командами либо /start, либо /help')
 
    bot.send_message(message.chat.id, 'сообщение отправителю')

if __name__ == '__main__':
    bot.polling(none_stop=True)

обязательно почитайте про send_message, send_photo - там много полезного - форматирование, отправка клавиатуры, инлайн-клавиатуры и куча всего остального. В общем, обязательно гуглите - уже много всяких статей.
Вот статьи, которыми пользовался я:
Огромное спасибо)
 
  • Мне нравится
Реакции: VolodinAS

kkgod

Новичок
Пользователь
Окт 7, 2020
21
1
3
Всё довольно просто, если вы знаете язык Python хотя бы на минимальном уровне. АПИ телеграма гуглится. Основная структура такая:
Python:
import telebot
from telebot import types

bot = telebot.TeleBot('здесь Ваш токен от вашего телеграм-бота, созданного через бота @BotFather')

# этот метод обрабатывает любые текстовые команды
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message):
    print(message)
    if message.text == 'команда1':
        print('команда 1')
    elif message.text == 'другая команда':
        print('делать что-то другое')
     
    bot.send_message(message.chat.id, 'сообщение отправителю')
     
# этот метод принимает непосредственные команды (в телеграмме отправляется через /команда)
@bot.message_handler(commands=['start', 'help'])
def start_message(message):
    print('этот метод вызван командами либо /start, либо /help')
 
    bot.send_message(message.chat.id, 'сообщение отправителю')

if __name__ == '__main__':
    bot.polling(none_stop=True)

обязательно почитайте про send_message, send_photo - там много полезного - форматирование, отправка клавиатуры, инлайн-клавиатуры и куча всего остального. В общем, обязательно гуглите - уже много всяких статей.
Вот статьи, которыми пользовался я:
у меня есть такой вопрос, я всё кардинально переделал, и у меня вопрос, как можно сделать проверку чисел с 1.0001340314010412040124004 вот этим числом после точки?
Код ниже прикрепляю
Код:
import telebot
import os
from random import *
from decimal import Decimal

myBot = telebot.TeleBot('1418080647:AAGvspahgeKDFgSSA5nCEw9j73NCzmEsNyM')

@myBot.message_handler(commands=['start'])
def start(message):
    list_1 = [' + ', ' - ', ' / ', ' * ']
    list_2 = [randint(1, 30) for i in range(randint(1, 20))]
    a = (str(choice(list_2)))
    b = choice(list_1)
    c = (str(choice(list_2)))
    d = eval(a + b + c)
    print('d', d, type(d))
    msg = myBot.send_message(message.chat.id, '{}'.format(a + b + c + ' = ?'))
    myBot.register_next_step_handler(msg, start_2, d)


def start_2(message, d):
    if message.text.isdigit():
        if float(message.text) == float(d):
            myBot.send_message(message.chat.id, 'Верно')
            start(message)
        else:
            myBot.send_message(message.chat.id, 'А вот и нет')
            start(message)
    elif message.text == '/stopgame':
        all_answer, right, wrong = write_score(message.chat.id)
    else:
        myBot.send_message(message.chat.id, 'а?')

myBot.polling()
 

Форум IT Специалистов