package Ġcom . pu zz let imer . pu zz les Ċ Ċ import Ġcom . pu zz let imer . sol vers . Rub iks Clock Solver . State . rotate Wheel Ċ import Ġcom . pu zz let imer . pu zz les . P uzzle Ċ import Ġcom . pu zz let imer . models . P uzzle Info Ċ import Ġcom . pu zz let imer . graphics . Plane Ċ import Ġcom . pu zz let imer . models . Color Scheme Ċ import Ġcom . pu zz let imer . graphics . Mesh Ċ import Ġjava . awt . Color Ċ import Ġcom . pu zz let imer . graphics . Matrix 4 4 Ċ import Ġcom . pu zz let imer . graphics . Vector 3 Ċ import Ġjava . util . HashMap Ċ import Ġcom . pu zz let imer . graphics . Face Ċ import Ġcom . pu zz let imer . pu zz les . Rub iks P ocket Cube Ċ import Ġcom . pu zz let imer . pu zz les . Rub iks Cube Ċ import Ġcom . pu zz let imer . pu zz les . Rub iks Re ven ge Ċ import Ġcom . pu zz let imer . pu zz les . Prof ess ors Cube Ċ import Ġcom . pu zz let imer . pu zz les . VC ube 6 Ċ import Ġcom . pu zz let imer . pu zz les . VC ube 7 Ċ import Ġcom . pu zz let imer . pu zz les . SS 8 Ċ import Ġcom . pu zz let imer . pu zz les . SS 9 Ċ import Ġcom . pu zz let imer . pu zz les . Rub iks Clock Ċ import Ġcom . pu zz let imer . pu zz les . Me gam inx Ċ import Ġcom . pu zz let imer . pu zz les . Py ram inx Ċ import Ġcom . pu zz let imer . pu zz les . Square 1 Ċ import Ġcom . pu zz let imer . pu zz les . Sk ew b Ċ import Ġcom . pu zz let imer . pu zz les . Flo ppy Cube Ċ import Ġcom . pu zz let imer . pu zz les . Tower Cube Ċ import Ġcom . pu zz let imer . pu zz les . Rub iks Tower Ċ import Ġcom . pu zz let imer . pu zz les . Rub iks Dom ino Ċ import Ġcom . pu zz let imer . sol vers . Rub iks Clock Solver Ċ Ċ class ĠV Cube 7 Ġ: ĠP uzzle Ġ{ ĊĠĠĠ Ġoverride Ġval Ġpuzzle Info : ĠP uzzle Info ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠP uzzle Info (" 7 x 7 x 7 - CUBE ") ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpuzzle Info . description ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠTw ist ( var Ġplane : ĠPlane , Ġvar Ġangle : ĠDouble ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Scr amb led P uzzle Mesh ( color Scheme : ĠColor Scheme , Ġsequence : ĠArray < String >): ĠMesh ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolor Array Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Scheme . get Face Color (" FACE - L "). color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Scheme . get Face Color (" FACE - B "). color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Scheme . get Face Color (" FACE - D "). color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Scheme . get Face Color (" FACE - R "). color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Scheme . get Face Color (" FACE - F "). color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Scheme . get Face Color (" FACE - U "). color ) ĊĠĠĠĠĠĠĠ Ġvar Ġmesh Ġ= ĠMesh . cube ( color Array ) ĊĠĠĠĠĠĠĠ Ġval Ġplane L Ġ= ĠPlane ( Vector 3 (- 0 . 3 3 5 , Ġ 0 , Ġ 0 ), ĠVector 3 (- 1 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane L 2 Ġ= ĠPlane ( Vector 3 (- 0 . 2 0 0 , Ġ 0 , Ġ 0 ), ĠVector 3 (- 1 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane L 3 Ġ= ĠPlane ( Vector 3 (- 0 . 0 6 5 , Ġ 0 , Ġ 0 ), ĠVector 3 (- 1 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane R 3 Ġ= ĠPlane ( Vector 3 ( 0 . 0 6 5 , Ġ 0 , Ġ 0 ), ĠVector 3 ( 1 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane R 2 Ġ= ĠPlane ( Vector 3 ( 0 . 2 0 0 , Ġ 0 , Ġ 0 ), ĠVector 3 ( 1 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane R Ġ= ĠPlane ( Vector 3 ( 0 . 3 3 5 , Ġ 0 , Ġ 0 ), ĠVector 3 ( 1 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane D Ġ= ĠPlane ( Vector 3 ( 0 , Ġ- 0 . 3 3 5 , Ġ 0 ), ĠVector 3 ( 0 , Ġ- 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane D 2 Ġ= ĠPlane ( Vector 3 ( 0 , Ġ- 0 . 2 0 0 , Ġ 0 ), ĠVector 3 ( 0 , Ġ- 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane D 3 Ġ= ĠPlane ( Vector 3 ( 0 , Ġ- 0 . 0 6 5 , Ġ 0 ), ĠVector 3 ( 0 , Ġ- 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane U 3 Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 . 0 6 5 , Ġ 0 ), ĠVector 3 ( 0 , Ġ 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane U 2 Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 . 2 0 0 , Ġ 0 ), ĠVector 3 ( 0 , Ġ 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane U Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 . 3 3 5 , Ġ 0 ), ĠVector 3 ( 0 , Ġ 1 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane F Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 , Ġ- 0 . 3 3 5 ), ĠVector 3 ( 0 , Ġ 0 , Ġ- 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane F 2 Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 , Ġ- 0 . 2 0 0 ), ĠVector 3 ( 0 , Ġ 0 , Ġ- 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane F 3 Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 , Ġ- 0 . 0 6 5 ), ĠVector 3 ( 0 , Ġ 0 , Ġ- 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane B 3 Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 , Ġ 0 . 0 6 5 ), ĠVector 3 ( 0 , Ġ 0 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane B 2 Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 , Ġ 0 . 2 0 0 ), ĠVector 3 ( 0 , Ġ 0 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġplane B Ġ= ĠPlane ( Vector 3 ( 0 , Ġ 0 , Ġ 0 . 3 3 5 ), ĠVector 3 ( 0 , Ġ 0 , Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġmesh Ġ= Ġmesh ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane L , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane L 2 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane L 3 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane R 3 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane R 2 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane R , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane D , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane D 2 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane D 3 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane U 3 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane U 2 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane U , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane F , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane F 2 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane F 3 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane B 3 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane B 2 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cut ( plane B , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. short en Faces ( 0 . 0 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. soft en Faces ( 0 . 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. soft en Faces ( 0 . 0 0 5 ) ĊĠĠĠĠĠĠĠ Ġval Ġtw ists Ġ= ĠHashMap < String , ĠTw ist >() ĊĠĠĠĠĠĠĠ Ġtw ists [" L "] Ġ= ĠTw ist ( plane L , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 L "] Ġ= ĠTw ist ( plane L 2 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 L "] Ġ= ĠTw ist ( plane L 3 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" L 2 "] Ġ= ĠTw ist ( plane L , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 L 2 "] Ġ= ĠTw ist ( plane L 2 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 L 2 "] Ġ= ĠTw ist ( plane L 3 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" L ' "] Ġ= ĠTw ist ( plane L , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 L ' "] Ġ= ĠTw ist ( plane L 2 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 L ' "] Ġ= ĠTw ist ( plane L 3 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" R "] Ġ= ĠTw ist ( plane R , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 R "] Ġ= ĠTw ist ( plane R 2 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 R "] Ġ= ĠTw ist ( plane R 3 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" R 2 "] Ġ= ĠTw ist ( plane R , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 R 2 "] Ġ= ĠTw ist ( plane R 2 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 R 2 "] Ġ= ĠTw ist ( plane R 3 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" R ' "] Ġ= ĠTw ist ( plane R , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 R ' "] Ġ= ĠTw ist ( plane R 2 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 R ' "] Ġ= ĠTw ist ( plane R 3 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" D "] Ġ= ĠTw ist ( plane D , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 D "] Ġ= ĠTw ist ( plane D 2 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 D "] Ġ= ĠTw ist ( plane D 3 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" D 2 "] Ġ= ĠTw ist ( plane D , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 D 2 "] Ġ= ĠTw ist ( plane D 2 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 D 2 "] Ġ= ĠTw ist ( plane D 3 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" D ' "] Ġ= ĠTw ist ( plane D , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 D ' "] Ġ= ĠTw ist ( plane D 2 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 D ' "] Ġ= ĠTw ist ( plane D 3 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" U "] Ġ= ĠTw ist ( plane U , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 U "] Ġ= ĠTw ist ( plane U 2 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 U "] Ġ= ĠTw ist ( plane U 3 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" U 2 "] Ġ= ĠTw ist ( plane U , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 U 2 "] Ġ= ĠTw ist ( plane U 2 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 U 2 "] Ġ= ĠTw ist ( plane U 3 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" U ' "] Ġ= ĠTw ist ( plane U , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 U ' "] Ġ= ĠTw ist ( plane U 2 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 U ' "] Ġ= ĠTw ist ( plane U 3 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" F "] Ġ= ĠTw ist ( plane F , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 F "] Ġ= ĠTw ist ( plane F 2 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 F "] Ġ= ĠTw ist ( plane F 3 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" F 2 "] Ġ= ĠTw ist ( plane F , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 F 2 "] Ġ= ĠTw ist ( plane F 2 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 F 2 "] Ġ= ĠTw ist ( plane F 3 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" F ' "] Ġ= ĠTw ist ( plane F , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 F ' "] Ġ= ĠTw ist ( plane F 2 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 F ' "] Ġ= ĠTw ist ( plane F 3 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" B "] Ġ= ĠTw ist ( plane B , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 B "] Ġ= ĠTw ist ( plane B 2 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 B "] Ġ= ĠTw ist ( plane B 3 , ĠMath . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" B 2 "] Ġ= ĠTw ist ( plane B , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 B 2 "] Ġ= ĠTw ist ( plane B 2 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 B 2 "] Ġ= ĠTw ist ( plane B 3 , ĠMath . PI ) ĊĠĠĠĠĠĠĠ Ġtw ists [" B ' "] Ġ= ĠTw ist ( plane B , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 2 B ' "] Ġ= ĠTw ist ( plane B 2 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġtw ists [" 3 B ' "] Ġ= ĠTw ist ( plane B 3 , Ġ- Math . PI Ġ/ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( move Ġin Ġsequence ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġtw ists [ move ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmesh Ġ= Ġmesh . rotate Half space ( t !!. plane , Ġt . angle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmesh ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Matrix 4 4 . rotation Y (- Math . PI Ġ/ Ġ 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Matrix 4 4 . rotation X ( Math . PI Ġ/ Ġ 7 )) ĊĠĠĠ Ġ} Ċ }