A modern web remake of the classic Lines 98 puzzle game, built with React, TypeScript, and Material UI.
- Classic Gameplay: 9x9 grid, match 5 balls of the same color to clear lines.
- Smart Hints: "Best Move" button with advanced AI that suggests strategic moves.
- Path Preview: Visualizes the path a ball will take before you move it.
- Ghost Balls: Shows where the next balls will appear.
- Animations: Smooth ball movement and line clearing effects.
- Accessibility: High contrast "Pattern Mode" for colorblind users.
- Responsive Design: Works on desktop and mobile.
- Objective: Score as many points as possible by arranging 5 or more balls of the same color in a line (horizontal, vertical, or diagonal).
- Move: Click on a ball to select it, then click on an empty cell to move it there. A clear path must exist between the two points.
- Turns: After each move that doesn't clear a line, 3 new balls are added to the board.
- Game Over: The game ends when the board is completely full.
- Frontend: React 18, TypeScript, Vite
- UI: Material UI (MUI), Emotion
- Animations: CSS Keyframes, JS-based path interpolation
- Testing: Vitest
- Node.js (v16+)
- npm
# Clone the repository
git clone <repository-url>
# Install dependencies
npm install
# or
make install# Start local dev server
npm run dev# Build for production
npm run build
# or
make buildThe production files will be in the dist directory.
# Run unit tests
npm test
# or
make test
This project is released into the public domain under the Unlicense.