Kakuro Dojo
I've been working for about ten days on a browser-based puzzle game, Kakuro. I discovered it a few months ago, and have been solving puzzles in an app I got for my iPhone. I had a new idea for the game, so I decided to write my own. I made some progress in plain JavaScript, but got stumped at creating new puzzle layouts.
I recently happened across a new computer programming language, Elm. It's a pure functional language that compiles into JavaScript, and has libraries that make web programming very easy. I decided to convert my Kakuro game to Elm and continue development.
I haven't had so much fun in years! I still didn't figure out how to generate puzzle layouts, but I wrote a Haskell program to scrape layouts from another game site, so that I could continue on game play development, and worry about layouts later. Haskell is a much older programming language, on which Elm is based.
Anyway, the game is now playable, though it doesn't help you any. It's sort of like filling out a Sudoku puzzle in a newspaper. But I'm working on feedback, and noticing when you've successfully completed a puzzle.
The game is most easily played with the keyboard, but the keypad below the game board makes it playable on touch screens. I have yet done window auto-sizing, so you may have to zoom a bit to get the right size.
Aim your JavaScript-enabled browser at Kakuro-Dojo.com, and watch that space for new features as I write them.
I originally called it "Kakuro Master", but I discovered a couple of days ago that somebody has already used that name for a PC product.
The source code is at github.com/billstclair/kakuro-master.
I plan to eventually wrap the game for sale on the iPhone and Android app stores.
Possibilities Work
I got the possibilties done before I crashed. They're the little numbers between the board and the keypad, labelled as "row" and "col". Now I'm up again, working on hints.
Hints Work
And hints work. They're the little numbers. Input for them is toggled with the "*" key. They're used to record the possible values for a cell. This can help to determine what goes there.
In the image, since the "row" includes only "4678" (besides the already input "9"), and since I've already determined that the selected cell can only contain one of "453", I can conclude that it must contain the intersection of "4678" and "453", which is "4"
I made some more progress
I made some more progress today.
1. Duplicate numbers or the wrong sum turn the offending cells red.
2. All correct turns everything green.
Next: Possibilities for filling in the selected row and column.
Then: Hints that you type for each cell.
Then: Saved state. Remember where you were in each board.
Edit comment