private void SolveFirstLayer() { var solver = new FirstLayerSolver(_cube); solver.Solve(); }
public void FirstLayerSolver_CorrectlySolvesCorners_GivenCornerBetweenWrongSidesOnFront() { var cube = new RubixCube(new[, , ] { { { new Block(Colour.Red, null, Colour.Green, null, Colour.White, null), new Block(null, null, Colour.Green, null, Colour.White, null), new Block(null, Colour.Blue, Colour.White, null, Colour.Red, null) }, { new Block(Colour.Red, null, null, null, Colour.White, null), new Block(null, null, null, null, Colour.White, null), new Block(null, Colour.Orange, null, null, Colour.White, null) }, { new Block(Colour.Orange, null, null, Colour.Green, Colour.White, null), new Block(null, null, null, Colour.Blue, Colour.White, null), new Block(null, Colour.Yellow, null, Colour.Orange, Colour.Green, null) } }, { { new Block(Colour.Yellow, null, Colour.Orange, null, null, null), new Block(null, null, Colour.Green, null, null, null), new Block(null, Colour.Yellow, Colour.Green, null, null, null) }, { new Block(Colour.Red, null, null, null, null, null), new Block(null, null, null, null, null, null), new Block(null, Colour.Orange, null, null, null, null) }, { new Block(Colour.Green, null, null, Colour.Orange, null, null), new Block(null, null, null, Colour.Blue, null, null), new Block(null, Colour.Yellow, null, Colour.Red, null, null) } }, { { new Block(Colour.Green, null, Colour.Yellow, null, null, Colour.Red), new Block(null, null, Colour.Yellow, null, null, Colour.Blue), new Block(null, Colour.Orange, Colour.Blue, null, null, Colour.White) }, { new Block(Colour.Blue, null, null, null, null, Colour.Red), new Block(null, null, null, null, null, Colour.Yellow), new Block(null, Colour.Orange, null, null, null, Colour.Blue) }, { new Block(Colour.Yellow, null, null, Colour.Blue, null, Colour.Orange), new Block(null, null, null, Colour.Red, null, Colour.Green), new Block(null, Colour.Yellow, null, Colour.Blue, null, Colour.Red) } } }); var solver = new FirstLayerSolver(cube); solver.Solve(); Assert.That(RubixCubeStatusEvaluator.FirstLayerIsSolved(cube), Is.True); }