The following is a breakdown of the first step of my python based Rubix Cube Solver, wherein it solves the upper most layer of the cube.
Python
CustomTKinter
Pyinstaller
This is v1.0.0 of OLLSolver. I plan to make multiple GUI updates as I implement the other layers in the future.
The purpose of creating the Rubik's Cube solver was to develop a deeper understanding of Python. I started the project with no prior knowledge of Python and planned to use multiple libraries to expand my experience with the language.
I approached the idea from multiple angles but ultimately decided to use two matrices to define the squares and edges of the cube. I used CustomTkinter to create a grid of buttons, and then updated the value of each square when a button was pressed. This approach gave me thorough experience with Tkinter widgets and Python GUI development as a whole. Initially, I manually typed out each algorithm from memory, drawing on my prior knowledge of Rubik's Cubes. However, this method required an absurd amount of direct mapping of the cubes and edges, even for minor changes.
Overall, my experience with this project helped me develop a deeper understanding of both Python and Python's GUI libraries, specifically Tkinter and CustomTkinter. I explored every widget CustomTkinter had to offer and learned the ins and outs of how pack() and grid() work, as well as how to style my project to my liking. Additionally, after hours of troubleshooting with the Windows terminal, I can now efficiently navigate file paths using cd and have gained a deeper understanding of how to manage virtual environments.