A digital adaptation of the physical board game by ThinkFun. Players arrange mirrors, beam splitters, and other optical elements on a grid to direct a laser beam to activate target(s).
- Interactive grid-based gameplay
- Multiple optical elements (mirrors, beam splitters, checkpoints)
- Progressive difficulty levels
- Real-time laser path visualization
- Hint system for challenging puzzles
- React 18
- TypeScript
- Tailwind CSS
- Jest for testing
-
Install dependencies:
npm install
-
Start the development server:
npm start
-
Open http://localhost:3000 to view it in your browser.
npm test- Run the test suitenpm run build- Build for productionnpm run lint- Check for code style issues
src/
├── components/ # React components
├── hooks/ # Custom React hooks
├── contexts/ # React context providers
├── utils/ # Utility functions
└── data/ # Game data and configurations
- Laser Source: Emits a laser beam in a specified direction
- Target/Mirror: Can be hit by laser or reflect it
- Mirror: Reflects laser at 90° angles
- Beam Splitter: Creates two perpendicular laser beams
- Checkpoint: Must be hit by laser to complete level
- Cell Blocker: Blocks laser path
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE file for details.