public void TestEquals() { var puzzle = new SlidingPuzzle(new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }); System.Console.WriteLine("Testing Equals method"); Assert.True(puzzle.Equals("{0,1,2,3,4,5,6,7,8}")); Assert.False(puzzle.Equals("{1,2,3,4,0,5,6,7,8}")); // Private }
// Devuelve cierto o falso según la configuración que nos pasan sea o no objetivo public bool IsGoal(object setup) { if (setup == null || !(setup is SlidingPuzzle)) { return(false); } SlidingPuzzle puzzle = (SlidingPuzzle)setup; // Si no tienen las mismas dimensiones, el equals va a fallar return(puzzle.Equals(goal)); }
SlidingPuzzle goal = new SlidingPuzzle(); // El sliding puzle por defecto es el inicial // Yo haría que preguntase por el SlidingPuzle... no por el SlidingPuzleSolver public bool IsGoalSetup(object setup) { SlidingPuzzle puzzle = (SlidingPuzzle)setup; return(puzzle.Equals(goal)); }