Inspiration
Over the last half a year I developed an interest in twisty puzzles and speedcubing. When I was starting out I struggled to learn the annotations that are used to display different algorithms for the cube. I really wanted to create a program that would step through each step of all the 57 OLL cases and 21 PLL cases but, I'm still fairly new in python so that was a bit more than I could handle in the time provided.
What it does
My program simulated all of the different moves on a 2-D Rubik's Cube display. The cube is laid out so that the blue face would face you with the yellow on top and white on the bottom. Below the image of the cube is a grid of buttons with the corresponding move on it. When a button is pressed the cube undergoes the corresponding transformation.
How I built it
My GUI was made with tkinter, and my code was written in python. The GUI class created 3 frames for the Title, display, and buttons. The display is made up of 6 different canvas objects in a grid bag layout and the buttons are created with an array that created a button and passes the notation on the button to the move function in the cubeLogic class. The move function finds the proper rotation for the cube.
Challenges I ran into
This was my first attempt at an object-oriented program in python so I had a few challenges with the setting up my functions. For the first couple of hours of the hackathon, I was just trying to wrap my head around self and figure out how to create a GUI with tkinter. I also had trouble with hooking up the buttons at the end and had to go to an older student for help. He was able to help me find a better method and finish my project.
Accomplishments that I'm proud of
I'm really happy with how the cubeLogic function turned out. It worked exactly how I wanted it to in the end and does a good job of using the functions in the class to build the different notations for the cube.
What I learned
How to use objects and make GUI in python
What's next for Last Layer: 2-D Rubik's Cube Simulator
I really want to expand on the project to incorporate algorithms to make it efficient as a learning tool for the last layer and make the cube display 3D.

Log in or sign up for Devpost to join the conversation.