コード例 #1
0
ファイル: SolverTest.cs プロジェクト: yakik/rubiksolvercsharp
        public void simpleRotations()
        {
            Rubik myRubik = new Rubik();

            for (int i = 0; i < 20; i++)
            {
                myRubik.rotateFace(new Rotation(Face.U, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.R, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.L, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.D, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.R, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.U, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.R, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.B, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.L, Direction.CW));
                myRubik.rotateFace(new Rotation(Face.F, Direction.CW));
            }
            for (int i = 0; i < 20; i++)
            {
                myRubik.rotateFace(new Rotation(Face.F, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.L, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.B, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.R, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.U, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.R, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.D, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.L, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.R, Direction.CCW));
                myRubik.rotateFace(new Rotation(Face.U, Direction.CCW));
            }
            myRubik.rotateFace(new Rotation(Face.F, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.F, Direction.CCW));
            AssistAssertRubik.checkEntireCube(myRubik);
        }
コード例 #2
0
ファイル: SolverTest.cs プロジェクト: yakik/rubiksolvercsharp
        public void simpleSolver()
        {
            Rubik myRubik = new Rubik();

            myRubik.rotateFace(new Rotation(Face.U, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.R, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.L, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.D, Direction.CW));
            RotationTree       myTree = new RotationTree();
            RotationLinkedList myRotationLinkedList = new RotationLinkedList();

            myRotationLinkedList.addRotation(new Rotation(Face.U, Direction.CCW));
            myTree.addRotationLinkedList(myRotationLinkedList);

            myRotationLinkedList = new RotationLinkedList();
            myRotationLinkedList.addRotation(new Rotation(Face.R, Direction.CCW));
            myTree.addRotationLinkedList(myRotationLinkedList);

            myRotationLinkedList = new RotationLinkedList();
            myRotationLinkedList.addRotation(new Rotation(Face.L, Direction.CCW));
            myTree.addRotationLinkedList(myRotationLinkedList);

            myRotationLinkedList = new RotationLinkedList();
            myRotationLinkedList.addRotation(new Rotation(Face.D, Direction.CCW));
            myTree.addRotationLinkedList(myRotationLinkedList);

            Solver   mySolver   = new Solver();
            Solution mySolution = mySolver.solve(myRubik, myTree, myTree, myTree);

            mySolution.applyToRubik(myRubik);
            mySolution.print();
            myRubik.getPermutation().print();
            AssistAssertRubik.checkEntireCube(myRubik);
        }
コード例 #3
0
ファイル: RubikTest.cs プロジェクト: yakik/rubiksolvercsharp
        public void setPermutationTest()
        {
            Permutation myPermutation = new Permutation();

            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.F, Face.U), new Location(Face.F, Face.U), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.F, Face.R), new Location(Face.F, Face.R), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.F, Face.L), new Location(Face.F, Face.L), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.F, Face.D), new Location(Face.F, Face.D), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.B, Face.U), new Location(Face.B, Face.U), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.B, Face.R), new Location(Face.B, Face.R), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.B, Face.L), new Location(Face.B, Face.L), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.B, Face.D), new Location(Face.B, Face.D), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.U, Face.R), new Location(Face.U, Face.R), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.U, Face.L), new Location(Face.U, Face.L), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.D, Face.R), new Location(Face.D, Face.R), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.D, Face.L), new Location(Face.D, Face.L), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.F, Face.U, Face.R), new Location(Face.F, Face.U, Face.R), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.F, Face.U, Face.L), new Location(Face.F, Face.U, Face.L), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.F, Face.D, Face.R), new Location(Face.F, Face.D, Face.R), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.F, Face.D, Face.L), new Location(Face.F, Face.D, Face.L), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.B, Face.U, Face.R), new Location(Face.B, Face.U, Face.R), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.B, Face.U, Face.L), new Location(Face.B, Face.U, Face.L), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.B, Face.D, Face.R), new Location(Face.B, Face.D, Face.R), new Position(Face.U, Face.F)));
            myPermutation.addCubicleData(new CubeCubicle(new Location(Face.B, Face.D, Face.L), new Location(Face.B, Face.D, Face.L), new Position(Face.U, Face.F)));

            Rubik myRubik = new Rubik();



            myRubik.rotateFace(new Rotation(Face.R, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.B, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.R, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.B, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.L, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.F, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.R, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.B, Direction.CW));
            myRubik.rotateFace(new Rotation(Face.R, Direction.CW));

            myRubik.setPermutation(myPermutation);
            AssistAssertRubik.checkEntireCube(myRubik);
        }