0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 16

Создать математическую игру в которую можно играть через телеграм

30.05.2022, 22:47. Показов 775. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем, народ, помогите, чем сможете плиз, я пишу код для этого задания и у меня есть пару вопросов:
1.У меня бот не принимает отрицательный ответ например(-6, -15), и не принимает десятичный ответ например (0,05, 1,7)
2. Почему-то не фичит кнопка /stopgame
вот сам код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import telebot
import os
from random import *
from decimal import Decimal
 
myBot = telebot.TeleBot('5363901132:AAEFtJAJsvkKPry393M7i_LBO95lPUFk6No')
 
@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((int(a)) + (int(b)) + (int(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()
и да, не делайте замечания за слитый токен, можете пользоваться
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2022, 22:47
Ответы с готовыми решениями:

Создать математическую игру, в которую можно играть через телеграммы
Создать математическую игру, в которую можно играть через телеграммы. Бот генерирует пример (пример на основные 4х действий +-*/) и...

Как создать игру чтобы играть можно было только КУРСОРОМ
Как это воссоздать ? Что-бы игрок мог играть только курсором которым можно передвигаться по лабиринту, и при задевании стенки его...

Написать игру, в которую могут играть два игрока
Помогите с задачкой Написать игру, в которою могут играть два игрока. // При старте, игрокам предлагается ввести свои...

3
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
31.05.2022, 13:07
cutieprettyQBS, есена он не будет работать, говнокод тот еще, в котором даже логики нет, может более подробно задачу опишешь?
0
0 / 0 / 0
Регистрация: 13.05.2022
Сообщений: 16
31.05.2022, 13:22  [ТС]
на:
Создать математическую игру в которую можно играть через телеграм.

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

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

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

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



Так же возвращать Веселый стикер если кол-во правильных ответов больше чем неправильных иначе возвращать грустный стикер(
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
31.05.2022, 13:26
На коленке:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import random
import telebot
 
 
USERS = {}
 
OPERATORS = ["+", "-", "*", "/"]
 
 
bot = telebot.TeleBot("")
 
 
@bot.message_handler(commands=["start"])
def on_start(message: telebot.types.Message) -> None:
    equation = ""
    for _ in range(random.randint(2, 10)):
        equation += str(random.randint(0, 100))
        equation += random.choice(OPERATORS)
    equation = equation[:-1]
    answer = eval(equation)
    USERS[message.from_user.id] = str(answer)
    bot.send_message(message.chat.id, f"{equation}=")
 
 
@bot.message_handler(content_types=["text"])
def on_message(message: telebot.types.Message) -> None:
    print(message.text, USERS[message.from_user.id])
    if message.text == USERS[message.from_user.id]:
        bot.send_message(message.chat.id, "Верно")
    else:
        bot.send_message(message.chat.id, "Неверно")
 
 
bot.polling()
Добавлено через 2 минуты
Расскажу про eval, если юзер напишет твоему боту __import__("os").remove("C:"), будет очень весело.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2022, 13:26
Помогаю со студенческими работами здесь

Необходимо организовать базу данных, которую можно будет обновлять через интернет и через программу
Доброе всем время суток... Вот, собственно, вопрос.. Необходимо организовать базу данных, которую можно будет обновлять через...

Можно ли создать цифровую клавиатуру в телеграм боте?
Нужна цифровая клавиатура тип такой Но проблема в том, что в такой клавиатуре при нажатии на цифру она сразу отправляется как...

Создать кнопку которую можно двигать
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Не во что играть: посоветуйте игру
Посоветуйте хоршую игру, плиз, с сюжетом, но желательно НЕ ФАНТАСТИКУ) Assasins Creed, GTA, Call of Duty, Mafia, Splinter Cell - уже...

Как создать библиотеку которую можно использования для C#?
Приветствую. У меня есть функция на С++ которую я хочу поместить в библиотеку и использовать из приложения на C#. Функция принимает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru