To help HumanED's Robotic arm to solve a rubik's cube, while learning more about an important python module Pygame.

What it does

It displays a 3X3 rubik's cube , including any given state of it from an input string containing the state of a cube; this can be used in conjunction with the rubik's cube solver algorithm/ program to display each step that the solver algorithm implements and make it visually available for the user to see how the computation is performed.

How we built it

We made use of Pygame module in Python, to print out rectangles of various colours onto the screen and then utilised various logical statements to place those rectangle's of various colours in a meaningful way so that the output data resembles that of a rubik's cube mapped into 2 dimensional space.

Challenges we ran into

We first of started the competition pretty late, so we were at an unfair disadvantage , however we completed the project in more or less 2 hours. Furthermore we had no idea about the syntax used in the Pygame module and had to look up the documentation to understand what each function in this module did and had to then develop the logic on top of that to make our code a success.

Accomplishments that we're proud of

We were more or less able to achieve what we set out for, though we spent some time looking at algorithms to make a rubik's cube solver ( before we set out on the program to display a rubik's cube's state) as well and came up with a solid strategy but given the fact that we started the competition late, we did not have adequate time to implement the idea and convert it into code, however being able to recover from that condition to having 2 working projects as a team is something that we are very proud of.

What we learned

We learned the syntax of a new important module in Python 'Pygame', which we can make use of in our future programming endeavours. We also applied and learnt that always modularising complex tasks by dividing it into simple functions makes the impossible seem possible, in the sense that it makes every coding task doable by dividing it into various functional blocks and implementing those blocks ( methods) separately and then putting them together at the end. At the end of the day good computer programming comes down to finding a way to abstract data well.

What's next for Rubik's Cube Displayer

We will definitely try to develop a program to solve a rubik's cube and use this program to display every step of that computation for the user, so that the solution of the algorithm that solves a rubik's can be displayed in a nice way that can be read and understood by the user.

Built With

Share this project: