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); }
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); }
/// <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); }
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); }
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); }