Using openCV, python to help solve Tezze puzzles. The photos of the tezze are taken via a gopro. A demo could be seen here-don't mind skipping about half a minute of this demo.
After a photo is taken, we find the circles and the individual segments within that circle. Then those individual segments could be rotated about their respective circle's center. After every rotation, a reassignment of the segments to the circles happens.
The area where the two circles overlap is the lob. In my code structure, this area is also considered to be a circle. The segments with in this circle could be rotated by either of the outer circles.
A rotation is only of 60 degrees. If you rotate a circle, you need a complete inner lobe for the other circle to be able to rotate. A rotation from one complete inner lobe to another complete inner lobe is only physically possible when you rotates between lobes by an angle of 60 degrees.
- Connect your PC to a gopro's wifi.
- Go to the terminal and type "python3 Game.py"
- Take a photo of the tezze.
- Once the tezze is processed, you can use the keys "a","s","d","w".
I haven't been able to resolve these 2 issues:
-
Noise: After a couple of rotaions, the segments lose their shape. This is because of approximations in shape processing around rotation which leads to some noise which adds up over time.
-
Uneven rotation: All the segments within a circle do not rotate by the same amount. I know that there is some underlying data structure bug, but haven't been able to resolve it yet.