private void Solve_btn(object sender, RoutedEventArgs e) { int[,] matrix = WriteReadFile.ReadMatrix(); Puzzle15State state = new Puzzle15State(matrix); BestFirstSolver solver = new BestFirstSolver(); moves = solver.Solve(state); WriteReadFile.WriteMovesToFile(moves); Replay.IsEnabled = true; }
public int[,] Shuffler(int n) { int[] indexOfZero; for (int i = 0; i < n; i++) { indexOfZero = SearchZero(defaultMatrix); List <int> DirectionList = new List <int>() { 1, 2, 3, 4 }; if (indexOfZero[0] == 3) { DirectionList.Remove(2); } if (indexOfZero[0] == 0) { DirectionList.Remove(1); } if (indexOfZero[1] == 3) { DirectionList.Remove(3); } if (indexOfZero[1] == 0) { DirectionList.Remove(4); } Random random = new Random(); int move = random.Next(0, DirectionList.Count); int[] indexesOfElNearZero = elNearZero(DirectionList[move], indexOfZero); defaultMatrix = Swap(defaultMatrix, indexesOfElNearZero, indexOfZero); } WriteReadFile.WriteMatrixToFile(defaultMatrix); return(defaultMatrix); }