Implementation of Rubik's Cube Formula in PyCuber

Preview:

Citation preview

RUBIK'S CUBEFORMULA IN PYCUBER

Adrian Liaw

http://bit.ly/1QdarwT

ABOUT MEJunior high school studentHome-schooling"Learning Reinforcer" at Agilearning

OTHER INTERESTSClassical Piano

AGENDAWhy / What's PyCuberSeveral Parts in PyCuberRubik's Cube (And Notations)ImplementationsThings About Rubik's Cube

JUST FOR FUN

IMPLEMENT PARTS INPYCUBER

cube.pyformula.pysolver/

RUBIK'S CUBE

ERNŐ RUBIK

RUBIK'S CUBE

RUBIK'S REVENGE

PROFESSOR'S CUBE

OVER THE TOP

POCKET CUBE

...

NOTATIONS

SINGMASTER NOTATION

BASIC NOTATIONSR (right)L (left)U (up)B (bottom)F (front)B (back)

R

L

U

D

F

B

F'

U2

WIDE TURNS

r

l'

d2

WHOLE CUBEROTATIONS

x

y'

z2

IT'S TIME FOR SOME PYTHONIC STUFF

CLASSESStepFormula

STEPface (F, L, d, y)extra symbol (counter-clockwise, 180 degrees)

SEVERAL UTILITIES__add____mul____hash__

FORMULAIt's just a sequence of Steps

class Formula(list):

INITIALISING A FORMULAFormula([Step("R"), Step("U")])Formula("R U R' U'")

SEVERAL UTILITIES__mul____eq____lt__...etc

REWRITING METHODSappendinsertcountremove__contains__

REWRITING METHODS__add__extend

SPECIAL CASE!Formula.reverse

L2 U' R -> R' U L2

USEFUL METHODS

MIRROR!Formula.mirror()

L2 U' R -> R2 U L'

RANDOMFormula.random()

OPTIMISEFormula.optimise()

OPTIMISENo wide actionsNo whole cube rotationsNo repeated steps

INTERESTING FACTS

RUBIK'S CUBE IS 41 YEARS OLD!

FASTEST SOLVE

5.25 SECONDS BY COLLIN BURNS

FASTEST ONE-HANDED SOLVE

6.88 SECONDS BY FELIKS ZEMDEGS

FASTEST BLINDFOLDED SOLVE(Including memorisation)

21.17 SECONDS BY MARCIN KOWALCZYK

FASTEST NON-HUMAN SOLVING

3.253 SECONDS BY CUBESTORMER III

EVERY LEGAL PERMUTATION CAN BESOLVED IN 20 MOVES OR LESS

THERE ARE 43,252,003,274,489,856,000POSSIBLE PERMUTATIONS

HTTP://GITHUB.COM/ADRIANLIAWHTTP://GITHUB.COM/ADRIANLIAW/PYCUBER

pip install pycuber

“If you are curious, you’ll find the puzzles around you. If youare determined, you will solve them.”

– Ernő Rubik.

Recommended