An interactive web application for creating and solving Star Battle puzzles. This project provides both puzzle creation and solving modes, along with an intelligent hint system to help users learn solving strategies.
You can test the app here
- Draw Mode: Create custom Star Battle puzzles by drawing region boundaries
- Solve Mode: Solve puzzles with interactive star placement and validation
- Intelligent Hint System: Get targeted hints using various solving strategies including:
- Basic row/column deductions
- Sandwich patterns
- Region-based deductions
- Multi-unit constraints
- Special shape patterns (L-shapes, T-shapes, squares)
- Single line region analysis
- 6-cell rectangle patterns
- Open the project in Replit
- Run
npm install
to install dependencies - Use
npm run dev
to start the development server
-
Draw Mode:
- Click cell boundaries to create regions
- Save your puzzle when complete
- Load example puzzles to see how they work
-
Solve Mode:
- Click cells to place stars
- Use the hint system when stuck
- Validate your solution
- Stars cannot be adjacent (even diagonally)
- Each row and column must have exactly 2 stars
- Each region must have exactly 2 stars
We welcome contributions! Here's how you can help:
- Use the Issues tab to report bugs
- Include steps to reproduce the issue
- Share screenshots if possible
- Mention any console errors
If you discover a new solving pattern:
- Create an issue with tag "New Strategy"
- Describe the pattern with examples
- Explain why it's a valid deduction
- Include sample puzzle scenarios
- Fork the project on Replit
- Make your changes
- Test thoroughly
- Submit a pull request with:
- Clear description of changes
- Screenshots/examples if relevant
- Any new hint strategies documented
client/src/
├── components/game/ # Core game components
├── lib/ # Game logic and state management
│ ├── solver-logic.ts # Hint generation
│ ├── game-state.ts # Game state management
│ └── example-puzzles.ts # Puzzle definitions
└── pages/ # Application pages
MIT License - Feel free to use and modify the code while maintaining attribution.
Thanks to all contributors and puzzle enthusiasts who help make this project better!