Nonogram Puzzles and Adventures in Programming

To be honest, I felt I was in a rut. For a solid couple of months, I wasn’t branching out and feeding off of doing or learning something new and interesting. So one slow Saturday, when I reached the proverbial end of the Internet, I forced myself to start learning JavaScript.

Programming isn’t entirely new to me. I went to a technology magnet school and got tastes of Visual Basic and Actionscript, but I never really pushed beyond the assignments and never fully grasped the fundamental concepts. This has always bothered me, but there was always something else to take on that took priority, whether it needed to or not.

I started this endeavor after watching a training video on fundamentals of programming, and it focused primarily on JavaScript. Concepts started clicking, especially those I had seen before but didn’t get, and I started brainstorming ways to apply them.

The result? Nonogram… Free!, a picture puzzle game similar to Pic-a-Pix that seems to be gaining some popularity.

nono_thumbSome project highlights:

                    • Everything is generated by JavaScript / jQuery from raw puzzle data fed from a MySQL database.
                    • The Nonogram… Free! “app” is really two: a puzzle player and a puzzle maker. Both presented their own challenges.
                    • Anyone can create an account then make and save puzzles that can be played by anyone.
                    • Timers are included to track user puzzle progress

As with many personal projects, every time I added something, an idea came up to add something else. That cascaded day after day until I just about had enough of it. The current incarnation is, as far as I can tell, stable and works (the exception being the puzzle maker in Chrome…). I’m putting aside code quality and consistency issues for now.

I invite you to try it out, play some puzzles, and provide feedback. Maybe even contribute some puzzles of your own! What motivated me to bring the project to this point and sink so many hours into it was not just the fact that it was a challenging learning tool for myself but is now usable and accessible to anyone and everyone. It’s more than a proof of concept or chunk of code that demonstrates I understand a concept. It’s a culmination of what I’ve learned so far and an indicator of what I’ve yet to grasp.

About The Author

Kyle Anderson
I'm a media and IT professional and JavaScript developer who worked most recently as an Associate Broadcast IT Engineer (Tier II) for CNN in Atlanta. One of my life-long goals is to help bridge data divides - missing connections between software systems and data stores - promoting inter-system communication and automation. Many of the projects described here reflect this goal in some way or another.