What I accomplished in working on Logic Lights in May, and current plans:
Created clasps that connect inputs directly to wires. This means that a signal from a particular output can be accessed anywhere along an outgoing wire instead of just at its output terminal.
Made the wires more variable in nature by creating a differing number of segment. Things that the wire segments can do that weren’t possible before include:
The segments can be moved around to make it easier to determine where the wire is.
The player can make new segments by pulling on the first and last wire segment, allowing for more complicated shapes.
Add an in-game help screen describing the rules of the game (April)
Add a tip jar or donation button (April)
Allow arbitrarily large puzzles with unlocks for larger puzzles based on earlier puzzles. (April)
Randomization of level labels for each user so that truth table isn't predictable from level number. (April)
Save game state when players close the game in the middle of play. (April)
Draw a convincing trash can. (April)
Remove the "1 switch" string on the level switch, replace with graphical representation (April)
Make the ground switch direction when connected to an input. (April)
Changing the winning condition:
Quality factors for wins: (April)
Status: I only have the two states, tried and won. Having each of the three stars mean something different is a possibility. One star for winning, one star for winning with the fewest possible number of elements, and one star for not making any extraneous materials (not throwing things away) is probably the best strategy. This would, however, require me to figure out how to algorithmically solve the puzzle and reduce its size to a minimum.
Different Logic Elements:
Status: I only have the three logic elements. It would be fun to do the whole game with just Nor-gates.
Puzzles complete only if all terminals wired. (April)
Status: I have created the ground, but have not integrated it into the game or the win-check system. I am still waffling on whether this is a good idea.
Allow moving the pieces around after a win.
I am not satisfied with having only a Windows version of this software. I would like to expand to other operating systems or delivery methods. In order, the priorities are:
Android Version (includes: learn Java, etc.)
Mac Version (need a Mac to use Py2App)
The last is probably the simplest, though. Someone may even be willing to do it for me.
The following systems need to be reworked completely in order for the game to progress.
I would like the game screens to be handled through a Game Screen class. This will allow me to reuse more code.
Graphics and Graphics Options:
I would like to refactor the vector graphics from functions to objects (I may only need one shell class from which to refer to the functions). This way I can more easily:
1. Change color the color scheme
2. Add symbols to the logic elements
3. Scale the size when I expand the number of puzzles.