gap> Read("/home/math6/wdj/gap/games/rubik/cube3.g"); The record 'descriptions' contains brief descriptions of the functions in this file. Functions of importance: MakeAbStabChain, FactorPermGroupElement, Shrink Operations on the 3x3x3 Rubik's Cube (c) Hernadvolgyi 1995 type gap>info(); to obtain information on the functions Size of Search space of 3x3x3 Cube: 43252003274489856000 gap> c1:=CubeList(cubelist,(2,5)(34,26),cube); +--------------+ | TO TO TO | | TO TO TO | | TO TO TO | +--------------+--------------+--------------+--------------+ | LE LE LE | FR FR FR | RI RE RI | RE RI RE | | LE LE LE | FR FR FR | RI RI RI | RE RE RE | | LE LE LE | FR FR FR | RI RI RI | RE RE RE | +--------------+--------------+--------------+--------------+ | BO BO BO | | BO BO BO | | BO BO BO | +--------------+ ^ | Operation: non primary operation: (2,5)(26,34) [ 1, 5, 3, 4, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 34, 27, 28, 29, 30, 31, 32, 33, 26, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 ] gap> info(); Operations on the 3x3x3 Rubik's Cube (c) Hernadvolgyi 1995 Functions Implemented: - CubeList(,) where: >the First argument is a permuted list on [1..48] >the Second argument is *one* or a *list* of the following predifined operations: left,top,right,bottom,rear,front example: >c1 := CubeList(cubelist,left); >c2 := CubeList(cubelist,[left,right,bottom^-1,top^-1]); >c2 := CubeList(c2,[left^-3,bottom^5]); note that cubelist is a predifined constant representing the 'solved' cube. - DrawCube(,); where: >the First argument is a permuted list on [1..48] >the Second argument is 'LabelPrint' or 'FormatPrint' LabelPrint draws the cube's sides by *color* while FormatPrint dispalys the label-numbers example: >c1 := CubeList(cubelist,left); >DrawCube(c1,LabelPrint); # cube^left by LabelPrint >DrawCube(c1,FormatPrint); # cube^left by FormatPrint >DrawCube(cubelist,LabelPrint); # the original cube gap> DrawCube(c1,LabelPrint); # cube^left by LabelPrint +--------------+ | TO TO TO | | TO TO TO | | TO TO TO | +--------------+--------------+--------------+--------------+ | LE LE LE | FR FR FR | RI RE RI | RE RI RE | | LE LE LE | FR FR FR | RI RI RI | RE RE RE | | LE LE LE | FR FR FR | RI RI RI | RE RE RE | +--------------+--------------+--------------+--------------+ | BO BO BO | | BO BO BO | | BO BO BO | +--------------+ gap> DrawCube(cubelist,LabelPrint); # the original cube +--------------+ | TO TO TO | | TO TO TO | | TO TO TO | +--------------+--------------+--------------+--------------+ | LE LE LE | FR FR FR | RI RI RI | RE RE RE | | LE LE LE | FR FR FR | RI RI RI | RE RE RE | | LE LE LE | FR FR FR | RI RI RI | RE RE RE | +--------------+--------------+--------------+--------------+ | BO BO BO | | BO BO BO | | BO BO BO | +--------------+ gap> DrawCube(c1,FormatPrint); # cube^left by FormatPrint +--------------+ | 1 5 3 | | 4 top 2 | | 6 7 8 | +--------------+--------------+--------------+--------------+ | 9 10 11 | 17 18 19 | 25 34 27 | 33 26 35 | | 12 left 13 | 20 front 21 | 28 right 29 | 36 rear 37 | | 14 15 16 | 22 23 24 | 30 31 32 | 38 39 40 | +--------------+--------------+--------------+--------------+ | 41 42 43 | | 44 bottom 45 | | 46 47 48 | +--------------+ gap> GiveSolutionPath(c1,Length((2,5)(26,34)),5); Error, Length: must be a list gap> GiveSolutionPath(c1,100,5); I am working ! Error, Record: left operand must be a record at word := FactorPermGroupElement( object, object.ReducedRandomOperationList[index] ) ... in GiveSolutionPath( c1, 100, 5 ) called from main loop brk> quit; gap> Length([2,5][26,34]); Syntax error: ) expected Length([2,5][26,34]); ^ gap> Length([2,5]); 2 gap> GiveSolutionPath(c1,48,5); I am working ! Error, Record: left operand must be a record at word := FactorPermGroupElement( object, object.ReducedRandomOperationList[index] ) ... in GiveSolutionPath( c1, 48, 5 ) called from main loop brk> quit; gap> GiveSolutionPath(cube,Length(c1),5); I am working ! Error, Record: element 'ReducedRandomOperationList' must have an assigned valu\ e at word := FactorPermGroupElement( object, object.ReducedRandomOperationList[index] ) ... in GiveSolutionPath( cube, Length( c1 ), 5 ) called from main loop brk> quit; gap> quit;