3️⃣ Emoji Game

Эмодзи-головоломка для Telegram. Просто, но затягивает.

Играть в Telegram →

Суть игры

Собирай комбинации из эмодзи, зарабатывай очки, не дай линии вырасти до 11 символов. Каждый раунд — случайный набор эмодзи из разных тем. Игра обновляется прямо в чате, видно последний ход и счёт, даже не открывая сообщение.

Правила начисления очков

  • Каждый ход: +10 очков
  • Три одинаковых эмодзи подряд: +50 очков
  • Три разные пары: +40 очков
  • Пять уникальных: +30 очков

⚠️ Проигрываешь, если линия превысит 11 символов

Режимы игры

🎯 Одиночный

Играй в личке с ботом, ставь рекорды, попадай в глобальный топ. Твоя игра, твои правила.

🤝 Кооперативный

Добавь бота в группу, играйте вместе. Ходы по очереди, общий счёт, командная цель. Последний ход всегда виден в сообщении.

⚔️ Дуэль

1 на 1, 90 секунд. Онлайн-табло обновляется каждые 3 секунды прямо в группе. Зрители видят, кто выигрывает в реальном времени.

Фишки для групп

Визуал и атмосфера

Каждый раунд — случайный набор эмодзи из коллекции. Разные темы, разные стили. Анимированные стикеры при старте игры и победе, баннеры для дуэлей с аватарами игроков, визуальные эффекты при комбинациях.

В сообщении всегда видно, кто и когда сделал последний ход — это удобно и создаёт командное ощущение.

🛠️ Для разработчиков и любопытных

Если интересно, как это всё работает под капотом — держи технические детали.

Защита от одновременных нажатий

  • Система блокировок чатов (chat_locks) — каждый чат блокируется на время обработки хода
  • Rate limiting — проверка скорости нажатий (1.5 сек для групп, 0.5 сек для личных чатов)
  • Автоматическая разблокировка через 2 секунды — защита от зависаний
  • Проверка повторных ходов — в группах один игрок не может ходить дважды подряд (last_move_user_id)

Игровая логика

  • Простые правила — легко понять, сложно мастерски играть
  • Ненавязчивость — игра не спамит, сообщения обновляются на месте
  • Восстановление после ошибок — автоматическая разблокировка, обработка устаревших игр
  • Разные задержки для разных режимов — группы медленнее, личка быстрее

Особенности реализации

  • Сообщение обновляется через edit_message_text — видно в списке чатов без открытия
  • Состояние в Firebase — игра не теряется при перезапуске бота
  • Валидация входных данных — проверки на None, валидность символов и chat_id
  • Обработка ошибок — graceful degradation, логирование проблем

Интересные решения

  • Случайные наборы эмодзи из JSON — легко добавлять новые темы
  • Графика по темам — для каждого набора эмодзи своя папка со стикерами
  • Онлайн-табло для дуэлей — обновление каждые 3 секунды через Firebase
  • Автоудаление сообщений — если бот админ, сам убирает за собой
  • Команда /upgame — поднимает игровое сообщение вверх чата

Сделано с СДВГ энергией и любовью к групповым взаимодействиям 💜