Exemplo n.º 1
0
        protected override bool CheckCube(Cube cube)
        {
            // check white face is solved
            for (int t = 0; t < 9; t++)
            {
                if (cube.At(CubeFace.UP, t) != CubeColor.WHITE)
                {
                    return(false);
                }
            }

            // check FTL is solved
            for (int f = 0; f < 4; f++)
            {
                CubeColor faceColor = Cube.GetFaceColor(MiddleLayerFaces[f]);
                for (int t = 3; t < 9; t++)
                {
                    if (cube.At(MiddleLayerFaces[f], t) != faceColor)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Exemplo n.º 2
0
        public bool IsMatch(Cube cube)
        {
            for (int f = 0; f < 4; f++)
            {
                CubeFace face = CubeSolver.MiddleLayerFaces[f];

                CubeColor[] tiles =
                {
                    cube.At(face, 6),
                    cube.At(face, 7),
                    cube.At(face, 8)
                };

                int delta0 = SolvingUtility.NormalizeCount(middleLayerColors[tiles[0]] - middleLayerColors[tiles[1]]);
                int delta1 = SolvingUtility.NormalizeCount(middleLayerColors[tiles[0]] - middleLayerColors[tiles[2]]);
                int delta2 = SolvingUtility.NormalizeCount(middleLayerColors[tiles[1]] - middleLayerColors[tiles[2]]);

                if (delta0 != patternData[f][0] || delta1 != patternData[f][1] || delta2 != patternData[f][2])
                {
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gibt zurück, ob der Würfel sich im gelösten Zustand befindet
        /// </summary>
        /// <returns>Den Wert, der angibt, ob der Würfel gelöst ist</returns>
        public bool GetCubeSolved()
        {
            for (int face = 0; face < 6; face++)
            {
                CubeColor faceColor = cube.At(face, 4);
                for (int tile = 0; tile < 9; tile++)
                {
                    if (faceColor != cube.At(face, tile))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Exemplo n.º 4
0
        protected override bool CheckCube(Cube cube)
        {
            for (int t = 1; t < 9; t += 2)
            {
                if (!(cube.At(UP, t) == WHITE))
                {
                    return(false);
                }
            }

            foreach (var face in MiddleLayerFaces)
            {
                if (!(cube.At(face, 1) == Cube.GetFaceColor(face)))
                {
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 5
0
        public bool IsMatch(Cube cube)
        {
            for (int t = 0; t < 6; t++)
            {
                if ((cube.At(DOWN, t) == YELLOW) != face[t])
                {
                    return(false);
                }
            }

            for (int f = 0; f < 4; f++)
            {
                var face = CubeSolver.MiddleLayerFaces[f];
                for (int i = 0; i < 3; i++)
                {
                    if ((cube.At(face, i + 6) == YELLOW) != sides[f][i])
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }