The current version of Logic Lights can be found here.
- Got rudimentary wire segments working. a wire is now drawn as three segments, kept internally. Any "middle" segment moves (although this is usually three, for now).
- Creating and storing the segments in the wire both work.
- Selecting a segment works.
- Moving the segment works.
- Both the LogicWire() and Segment() classes required work to get to this point.
Problems with Wires:
- Moving the input or output does not change the input or output segment.
- Dropping a new LogicElement directly on a terminal does not properly create the wire segments.
- Clasps don't respond to changes in the wire, and so can be made to float in space.
Other Desiderata with Wires:
- Want to use is_horizontal() method to draw wires connected to their clasps perpendicularly to the wire they're probing.
- Want to be able to create additional segments but pulling on the wire ends.
- Want to automatically make wires go around logic elements when placed.
Despite the problems in the display faced by segments, they have no functional value in the program -- the puzzles are unaffected.