Lights Out Challenge is a browser-based implementation of the classic Lights Out puzzle game built with JavaScript.
The project expands the traditional game by allowing players to generate randomized puzzles on configurable board sizes ranging from 1×1 to 10×10 while tracking personal performance statistics across multiple games. It was developed to explore algorithm design, dynamic interface generation, and interactive browser-based gameplay.
- Configurable board sizes from 1×1 to 10×10
- Randomized puzzle generation
- Interactive browser-based gameplay
- Automatic win detection
- Built-in timer
- Tracks best completion time
- Tracks average completion time
- Tracks total games completed
- Dynamic board generation using JavaScript
- JavaScript
- HTML5
- CSS3
Development progressed through frequent iterative improvements over approximately one month, with regular commits focused on expanding gameplay, improving usability, optimizing mobile compatibility, and refining the overall player experience.
Commit history reflects work including:
- Created the initial project structure and core game framework.
- Implemented the first playable version of the game.
- Added fullscreen support and restart functionality.
- Began documenting the project and refining the user interface.
- Refined gameplay logic and resolved input validation issues.
- Separated application logic into dedicated HTML, CSS, and JavaScript files.
- Improved visual styling with color themes and interface enhancements.
- Optimized the game for mobile devices and responsive layouts.
- Continued code refinement and usability improvements.
- Enhanced accessibility and mobile usability.
- Refined interface colors, gradients, and button styling.
- Consolidated application logic using reusable functions and arrays.
- Improved code organization and maintainability through refactoring.
- Performed final testing on mobile devices.
- Completed final gameplay refinements and project polish.
- JavaScript programming
- Algorithm design
- Dynamic DOM manipulation
- Event-driven programming
- State management
- Interactive UI development
- Problem solving
- Browser-based application development