Beispiel #1
0
        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;
        }
Beispiel #2
0
        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);
        }