- GitHub Actions workflow для автоматического деплоя - Base path /colorline98/ для GitHub Pages - Обновлён README с: - Ссылкой на игру - Инструкциями по разработке - Описанием правил и системы очков Refs: [GAM-10](/GAM/issues/GAM-10) Co-Authored-By: Paperclip <noreply@paperclip.ing>
ColorLine98
Классическая логическая игра-головоломка ColorLine98 — набирайте очки, выстраивая линии из одноцветных шаров на игровом поле 9×9.
Играть
Откройте игру в браузере: https://aevgarik.github.io/colorline98
Технологический стек
- Vue 3 (Composition API)
- Vite
- TypeScript
- Canvas 2D
- Vitest
Структура проекта
src/
├── components/
│ └── GameBoard.vue # Canvas-компонент игрового поля
├── game/
│ ├── Board.ts # Модель доски и базовые типы
│ ├── PathFinder.ts # BFS-поиск пути
│ ├── LineChecker.ts # Проверка линий
│ ├── Game.ts # Главный класс игры
│ └── Game.test.ts # Unit-тесты
├── App.vue
└── main.ts
Разработка
Установка
pnpm install
Запуск dev-сервера
pnpm dev
Сборка для продакшена
pnpm build
Линтинг
pnpm lint
Тесты
pnpm test
Правила игры
- Поле: 9×9 клеток (81 ячейка)
- Шары: 7 цветов
- Начало: 5 случайных шаров на поле
- Ход: Выберите шар и укажите целевую клетку
- Перемещение: Только по ортогональным направлениям (вверх, вниз, влево, вправо)
- После хода: Появляются 3 новых шара (показываются в превью)
- Линии: 5+ шаров одного цвета (горизонталь, вертикаль, диагональ)
- Очки: За удаление линий (5→10, 6→12, 7→18, 8→28, 9+→формула)
- Комбо: x1.5 множитель за каждую дополнительную линию в ходе
- Конец игры: Когда поле заполнено
Система очков
| Длина линии | Очки |
|---|---|
| 5 шаров | 10 |
| 6 шаров | 12 |
| 7 шаров | 18 |
| 8 шаров | 28 |
| 9+ шаров | (n - 8) × 14 + 42 |
Лицензия
MIT
Description
Languages
Vue
46.5%
TypeScript
39.7%
CSS
12.8%
HTML
1%
