Интерактивный Telegram бот на Rust для игры в кубики с использованием официального API Telegram. Пять режимов игры с анимированными бросками и интерактивными кнопками.
- 🎲 Анимированные броски кубиков через Telegram API
- 🎮 5 режимов игры для разнообразного геймплея
- 📱 Интерактивные кнопки для удобного взаимодействия
- 🤖 Дуэль с ботом - бросайте кубики и соревновайтесь!
- ✅ Покрытие тестами (12 тестов с proptest)
- 🚀 Асинхронная обработка запросов через tokio
- 📊 HTTP сервер для health checks на порту 5000
Этот бот предлагает пять увлекательных игр с кубиками:
- Чёт/Нечет - угадайте, будет ли результат броска четным или нечетным
- Больше/Меньше - угадайте, будет ли результат больше 3.5 (4-6) или меньше (1-3)
- Точное число - угадайте точное число от 1 до 6
- Угадать единицу - угадайте, выпадет ли ровно единица
- Дуэль кубиков - нажмите кнопку кубика 🎲 и посмотрите, у кого больше результат!
- Язык: Rust 2021
- Фреймворк бота: teloxide 0.12
- HTTP сервер: axum 0.7
- Асинхронность: tokio 1.0
- API: Telegram Bot API с sendDice
- Тестирование: proptest, pretty_assertions
- Логирование: log, env_logger
- Конфигурация: dotenvy
- Rust (последняя стабильная версия)
- OpenSSL и pkg-config
- Клонируйте репозиторий:
git clone https://github.com/PrometheusAI-Labs/DICE.git
cd DICE-
Создайте бота у @BotFather в Telegram и получите токен
-
Создайте файл
.envна основе.env.example:
cp .env.example .env
# Отредактируйте .env и укажите ваш токен:
BOT_TOKEN=ваш_токен_бота
PORT=5000- Запустите бота:
cargo run- Найдите вашего бота в Telegram
- Отправьте команду
/startдля начала - Выберите режим игры через кнопки
- Для дуэли с ботом просто нажмите кнопку кубика 🎲!
- Делайте ставки и наслаждайтесь игрой!
/start- начать работу с ботом/help- помощь и список игр/play- начать новую игру (через меню)- 🎲 кнопка кубика - начать дуэль кубиков!
Проект использует модульную архитектуру:
src/main.rs- точка входа и настройка сервераsrc/bot.rs- обработка команд и сообщенийsrc/game.rs- логика игр с кубикамиsrc/state.rs- управление состоянием диалога
cargo testcargo clippy
cargo fmt --checksrc/
├── main.rs # Точка входа, HTTP сервер, запуск бота
├── bot.rs # Обработка команд, сообщений и callback
├── game.rs # Игровая логика и проверки
└── state.rs # Перечисления для типов игр и выборов
Этот проект был создан с помощью Replit AI и улучшен с помощью OpenCode GLM-4.7.
- 🤖 Replit AI - начальная генерация проекта и базовая архитектура
- 🧠 OpenCode GLM-4.7 - добавление новых функций, исправление ошибок, оптимизация кода
Основные улучшения от OpenCode GLM-4.7:
- ✅ Добавлена функция "Дуэль кубиков"
- ✅ Исправлена совместимость с teloxide 0.12
- ✅ Добавлено подробное логирование для отладки
- ✅ Обновлена документация и команды
/help - ✅ Добавлены тесты и улучшена архитектура
MIT License
Создано с помощью Replit AI
Улучшено с помощью OpenCode GLM-4.7
Разработано Alxy Dev @ 2026