Разработан Telegram-бот для проведения интерактивных игровых сессий в «Мафию» с полной автоматизацией процессов: от создания комнаты до финального подсчета голосов. Бот обеспечивает удобное взаимодействие между ведущим и игроками, управление ролями, ночными действиями и голосованиями прямо в чате.
Регистрация и управление пользователями
Профиль с именем и ником.
Проверка прав доступа (игроки, ведущие, администраторы).
Создание и настройка комнат
Генерация уникального кода комнаты.
Настройка лимита игроков (5–14 человек).
Привязка к группе для уведомлений.
Присоединение к игре
Оплата участия через YooKassa.
Альтернативный вход по промокодам.
Проверка подписки на группу (при наличии).
Игровой процесс
Автоматическое распределение ролей:
Мирные жители
Мафия
Дон
Шериф
Доктор
Путана
Фазы игры:
Ночь: действия мафии, доктора, шерифа, дона, путаны.
День: обсуждение и голосование.
Уведомления о действиях игроков.
Управление игрой
Кнопки для ведущего:
Старт ночи/дня
Начало голосования
Просмотр статуса игры
Автоматический подсчет голосов и выявление победителей.
Монетизация и промо-акции
Платежи за участие (100 ₽).
Система промокодов для администраторов.
Техническая поддержка
Автоматическое завершение игр по истечении времени.
Уведомления о выходе игроков.
Решение
Архитектура и технологии:
Backend: Python + Aiogram 3.x (асинхронность, FSM).
База данных: PostgreSQL (SQLAlchemy ORM).
Платежи: YooKassa API.
Хостинг: Локальный сервер с планированием масштабирования.
Ключевые модули:
handlers.py — регистрация, меню, навигация.
create_room.py — создание комнат, настройка параметров.
join_room.py — присоединение, оплата, промокоды.
game_manager.py — логика игры, фазы, голосования.
database.py — модели данных, сессии, роли.
Бот стал универсальным инструментом для проведения игр в «Мафию» с друзьями или в клубном формате.
Преимущества:
Полная автоматизация процессов.
Интуитивный интерфейс с кнопками и уведомлениями.
Гибкость настроек (лимит игроков, привязка к группе).
Поддержка платежей и промо-акций.
Пример сценария использования:
Пользователь регистрируется через /start.
Создает комнату, настраивает лимит игроков.
Игроки присоединяются по коду, оплачивают участие.
Ведущий запускает игру — роли распределяются автоматически.
Бот управляет ночными действиями и голосованиями.
Игра завершается победой мафии или мирных жителей.