Example of 5 by 5
Example of 10 by 10
My inspiration for this was a mix of my love to the picross puzzles as well as AI. I like the idea of using boolean logic to make a computer do something pretty complex.
What it does
Given the dimensions and the numbers in the rows and columns of a picross puzzle, this program will display the picture it should form.
How I built it
I built it by compiling the possible configurations of the puzzle given the column numbers into a 3-D matrix. From there, in the 5 by 5, I also compiled the possible configurations given the row number then compared each page until each value was the same. For the 10 by 10, I checked the numbers on each row and compared it to the given row numbers. This was faster since it didn't require the generation of a large matrix.
Challenges I ran into
I ran into a big challenge trying to figure out an algorithm that would work given any row or column number that has 2 elements. The algorithm was not very self-explanatory and was a function of multiple variables and required nested for loops. I also couldn't find a correlation between the number of possible solutions in a given number set because it varied based on length and sum.
Accomplishments that I'm proud of
I am very proud of the project as a whole, but specifically for the algorithm that will generate the possible configurations of a number set of 2. I am proud of this because I didn't realize it until after, but it works for any number of dimension, not just 5 by 5. So I could use it for 10 by 10 or even 15 by 15.
What I learned
I learned that even a puzzle that may seem very self-explanatory to a human, can be a very complicated algorithm to a computer.
What's next for Nonogram/Picross Solver
Next I want to hopefully rewrite the program in Java once I learn Java better, and develop a more efficient algorithm so that I may be able to solve more complicated 10 by 10 puzzles or even a 15 by 15.