- GitHub Actions workflow для автоматического деплоя - Base path /colorline98/ для GitHub Pages - Обновлён README с: - Ссылкой на игру - Инструкциями по разработке - Описанием правил и системы очков Refs: [GAM-10](/GAM/issues/GAM-10) Co-Authored-By: Paperclip <noreply@paperclip.ing>
98 lines
2.6 KiB
Markdown
98 lines
2.6 KiB
Markdown
# ColorLine98
|
||
|
||
<!--
|
||
@author aevgarik@gmail.com
|
||
@date 2026-03-22
|
||
-->
|
||
|
||
Классическая логическая игра-головоломка ColorLine98 — набирайте очки, выстраивая линии из одноцветных шаров на игровом поле 9×9.
|
||
|
||

|
||
|
||
## Играть
|
||
|
||
Откройте игру в браузере: [https://aevgarik.github.io/colorline98](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
|
||
```
|
||
|
||
## Разработка
|
||
|
||
### Установка
|
||
|
||
```bash
|
||
pnpm install
|
||
```
|
||
|
||
### Запуск dev-сервера
|
||
|
||
```bash
|
||
pnpm dev
|
||
```
|
||
|
||
### Сборка для продакшена
|
||
|
||
```bash
|
||
pnpm build
|
||
```
|
||
|
||
### Линтинг
|
||
|
||
```bash
|
||
pnpm lint
|
||
```
|
||
|
||
### Тесты
|
||
|
||
```bash
|
||
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
|