aevgarik 2f0d36352c feat(ui): реализация Canvas-рендеринга и UI для ColorLine98
- Canvas 2D компонент GameBoard.vue:
  - Отрисовка поля 9×9 с сеткой
  - Отрисовка шаров (7 цветов с градиентами)
  - Клик-выделение шара (оранжевая обводка)
  - Клик-перемещение в целевую клетку
  - Панель очков (текущий счёт)
  - Превью следующих 3 шаров (цветные круги)
  - Кнопка "Новая игра"
  - Экран Game Over с финальным счётом

- Обновлён App.vue:
  - Заголовок ColorLine98
  - Градиентный фон
  - Центрированный layout

Refs: [GAM-9](/GAM/issues/GAM-9)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-22 21:50:46 +03:00

ColorLine98

Классическая логическая игра-головоломка ColorLine98.

Описание

Цель игры — набрать максимальное количество очков, выстраивая линии из одноцветных шаров на игровом поле 9×9.

Технологический стек

  • Vue 3 (Composition API)
  • Vite
  • TypeScript
  • Canvas 2D

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

src/
├── assets/          # Статические ресурсы (изображения, звуки)
├── components/      # Vue компоненты
├── game/            # Игровая логика
│   ├── Board.ts
│   ├── Ball.ts
│   ├── PathFinder.ts
│   └── LineChecker.ts
├── App.vue
├── main.ts
└── style.css

Установка

pnpm install

Запуск

pnpm dev

Сборка

pnpm build

Линтинг

pnpm lint

Правила игры

  • Поле: 9×9 клеток
  • 7 цветов шаров
  • За ход появляются 3 новых шара
  • Линия из 5+ шаров одного цвета исчезает
  • Перемещение шаров только по ортогональным направлениям

Лицензия

MIT

Description
Классическая игра ColorLine98 - Vue 3 + Vite + TypeScript
Readme 152 KiB
Languages
Vue 46.5%
TypeScript 39.7%
CSS 12.8%
HTML 1%