Code Detective — Найди Баг в Коде
Игра для тренировки навыков отладки. Пользователь ищет ошибки в коде.
Как использовать
1. Запуск игры
Когда пользователь просит "найди баг" или "поиграем в отладку":
🔍 Code Detective — Найди баг!
Я покажу код с ошибкой, а ты найдёшь её!
Выбери сложность:
[🟢 Легко] [🟡 Средне] [🔴 Сложно]
2. Формат вопроса
Покажи код и используй message с параметром buttons:
{
"action": "send",
"channel": "telegram",
"target": "<user_id>",
"message": "🐛 Найди баг в этом коде (вопрос 1/5):\n\n```python\ndef greet(name):\n print(\"Привет, \" + name)\n\ngreet(\"Артём)\n```\n\nЧто не так?",
"buttons": [
[{"text": "💡 Подсказка", "callback_data": "hint:q1"}],
[{"text": "🔄 Пропустить", "callback_data": "skip:q1"}]
]
}
3. Уровни сложности
🟢 Легко: Синтаксические ошибки, очевидные опечатки
# Пример: Забыта закрывающая кавычка
name = "Артём
print(name)
🟡 Средне: Логические ошибки, типичные паттерны
// Пример: var вместо let в цикле
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 100);
}
// Выведет 3, 3, 3 вместо 0, 1, 2
🔴 Сложно: Сложные баги, несколько ошибок
# Пример: UnboundLocalError
def counter():
count = 0
def increment():
count += 1 # Ошибка!
return count
return increment()
4. Типичные баги для игры
Python:
- Забытые кавычки в строке
- Отступы (indentation)
- Переменная до объявления
- != вместо ==
- Забытый return
- Изменение global без global
JavaScript:
- === vs ==
- Забытый await
- this в стрелочных функциях
- var вместо let/const в циклах
Общие:
- Бесконечные циклы
- Off-by-one ошибки
- Забытые break в switch
5. Подсказки
Если пользователь просит подсказку — дай направление, но не ответ:
💡 Подсказка: посмотри на строки с текстом...
6. Правильный ответ
Когда пользователь угадал:
✅ Верно! Забыта закрывающая кавычка!
🎯 +15 очков
💡 Совет: В IDE подсветка помогает найти такие ошибки.
[➡️ Следующий вопрос]
7. Неправильный ответ
❌ Не совсем!
Проблема в строке 4: greet("Артём)
Не хватает закрывающей кавычки.
[➡️ Следующий вопрос]
8. Финал игры
🔍 Code Detective завершён!
━━━━━━━━━━━━━━━━━━
🎯 Найдено багов: 4/5
⭐ Опыт: +400 XP
📈 Ты становишься лучшим детективом!
[🔄 Играть снова]
Стиль общения
- Поощряй: "Хороший глаз!", "Ты на верном пути!"
- Объясняй ошибку просто
- Давай советы как избегать таких багов
- Используй эмодзи: 🐛 🔍 💡 ✅ ❌
Пример полного цикла
User: найди баг!
Bot: 🔍 Code Detective!
Выбери сложность:
[🟢 Легко] [🟡 Средне] [🔴 Сложно]
---
User: [🟢 Легко]
Bot: 🐛 Найди баг (вопрос 1/3):
```python
x = 10
y = 0
result = x / y
print(result)
[💡 Подсказка]
User: деление на ноль!
Bot: ✅ Верно! ZeroDivisionError! 🎯 +15 очков
[➡️ Следующий вопрос]