Zero refreshes required. This is Sudoku as you've never seen it. Away from the prying eyes of your co-workers and your boss. Powered by the dark arts of window.location.hash
. So powerful that just loading the page will cause your browser's history to rue the day.
Playable right here, Secret Suduko unlocked a series of unique experiences for me. It's not every day that you find yourself brute forcing a 19th-century newspaper puzzle. Or, better yet, getting Travis CI to do it for you.
test('app plays without error', () => { const game = main(this, sudoku); game.startGame(); for (let i = 0; i < 20000; i++) { // 0-81, 0-9 if (game.play(Math.floor(Math.random() * 82), Math.floor(Math.random() * 10)) === true) { /* This test will usually complete the game six times over, adjust the difficulty randomly on completion */ game.startGame(Math.floor(Math.random() * 6)); }; } });
It turns out that all you need are some emotes, a few eventlisteners, and a dream. Many thanks to Rob McGuire-Dale and his wonderful Sudoku generator/solver.
// Main render functions this.squaresFilled = () => this.board.join('').match(/[^.]/g).length this.completeness = () => `${this.squaresFilled()}/81`; this.start = () => `Secret_Sudoku_~_${this.completeness()}_~_row:`; this.render = (extra = '') => { window.location.hash = `${this.start()}${this.rowMap[this.row]}__${this.prettifyRow(this.currRow(), this.cursor)}${extra}`; }
Secret Sudoku is the perfect project to work on to help me relax in the evenings. It makes programming feel far more fun than logic abstraction should. Taking pull-requests today and every day hereafter.
healeycodes / secret-sudoku
π² Play Sudoku in your browser's URL bar!
Secret Sudoku
Hidden from prying eyes..
Play the classic game of Sudoku in your URL bar!
A Sunday project, powered by window.location.hash
and β
Avaliable @ https://healeycodes.github.io/secret-sudoku/
Install
npm install
Test
npm test
-
Uses Jest to test main functions and brute-force play the game to completion on different difficulties.
-
On GitHub, uses continious integration powered by Travis CI!
Deploy
Place the project files at the directory you wish you host the game (assuming HTTP/S).
For local-use, just open index.html
Join 150+ people signed up to my newsletter on programming and personal growth!
I tweet about tech @healeycodes.
Top comments (2)
Hey this is a very near project! How did you come up with this? I'm so fascinated by its simplicity, well done!
I just love the interactive web! My first idea was cloning an arcade game :)