Skip to content

🎲 Многофункциональный Telegram бот на Rust для азартных игр с кубиками. Включает четыре увлекательных режима игры с интерактивными кнопками, статистикой и анимированными бросками через официальный Telegram API. Построен на teloxide с поддержкой веб-хуков и HTTP сервером на axum.

License

Notifications You must be signed in to change notification settings

PrometheusAI-Labs/DICE

Repository files navigation

Telegram Dice Bot 🎲

Интерактивный Telegram бот на Rust для игры в кубики с использованием официального API Telegram. Пять режимов игры с анимированными бросками и интерактивными кнопками.

Особенности

  • 🎲 Анимированные броски кубиков через Telegram API
  • 🎮 5 режимов игры для разнообразного геймплея
  • 📱 Интерактивные кнопки для удобного взаимодействия
  • 🤖 Дуэль с ботом - бросайте кубики и соревновайтесь!
  • Покрытие тестами (12 тестов с proptest)
  • 🚀 Асинхронная обработка запросов через tokio
  • 📊 HTTP сервер для health checks на порту 5000

Описание

Этот бот предлагает пять увлекательных игр с кубиками:

  1. Чёт/Нечет - угадайте, будет ли результат броска четным или нечетным
  2. Больше/Меньше - угадайте, будет ли результат больше 3.5 (4-6) или меньше (1-3)
  3. Точное число - угадайте точное число от 1 до 6
  4. Угадать единицу - угадайте, выпадет ли ровно единица
  5. Дуэль кубиков - нажмите кнопку кубика 🎲 и посмотрите, у кого больше результат!

Технологии

  • Язык: 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

Настройка

  1. Клонируйте репозиторий:
git clone https://github.com/PrometheusAI-Labs/DICE.git
cd DICE
  1. Создайте бота у @BotFather в Telegram и получите токен

  2. Создайте файл .env на основе .env.example:

cp .env.example .env
# Отредактируйте .env и укажите ваш токен:
BOT_TOKEN=ваш_токен_бота
PORT=5000
  1. Запустите бота:
cargo run

Использование

  1. Найдите вашего бота в Telegram
  2. Отправьте команду /start для начала
  3. Выберите режим игры через кнопки
  4. Для дуэли с ботом просто нажмите кнопку кубика 🎲!
  5. Делайте ставки и наслаждайтесь игрой!

Команды бота

  • /start - начать работу с ботом
  • /help - помощь и список игр
  • /play - начать новую игру (через меню)
  • 🎲 кнопка кубика - начать дуэль кубиков!

Архитектура

Проект использует модульную архитектуру:

  • src/main.rs - точка входа и настройка сервера
  • src/bot.rs - обработка команд и сообщений
  • src/game.rs - логика игр с кубиками
  • src/state.rs - управление состоянием диалога

Разработка и тестирование

Запуск тестов

cargo test

Проверка кода

cargo clippy
cargo fmt --check

Структура проекта

src/
├── 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

About

🎲 Многофункциональный Telegram бот на Rust для азартных игр с кубиками. Включает четыре увлекательных режима игры с интерактивными кнопками, статистикой и анимированными бросками через официальный Telegram API. Построен на teloxide с поддержкой веб-хуков и HTTP сервером на axum.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •