"Evolving grid" simulation? I'm not quite sure what to call this problem, but basically, I am trying to solve a puzzle. It works as follows: There is a 9x9 grid Each square can either be "on" or "off" At the beginning of the puzzle, the 9 squares dead center of the grid are "on", the rest are "off" The object of the puzzle is to get the top right square "on", it doesn't matter what the other ones are at that point, as soon as it turns "on", puzzle solved You can only turn a square "off", you cannot turn one on. Prior to "starting" the puzzle, you can turn off as many of the original 9 squares you want. Every second (or so), another "evolution" happens in the puzzle, turning some squares on, others off. While this is happening, you can turn squares off, but due to time constraints, you really can only turn off *maybe* one square per evolution. It could be possible to turn off more, but it's not that likely. So basically, there are obviously rules that govern what happens with each "evolution". I'm about 95% sure that those rules are constant throughout the whole puzzle, so no worries there. I don't exactly know what those rules are, but I've got a pretty good idea. My big question is, do you guys know of a grid simulation program or something (almost like an othello grid that I can just customize somehow), that I can use to determine the rules behind the puzzle as I play it, and then to simulate the fastest possible solution to the puzzle?