示例#1
0
        // Se llama antes de dibujar el primero frame y es donde pasamos información entre los distintos objetos que se han despertado
        void Awake()
        {
            //Podría lanzar excepciones si no ha sido inicializado con gameobjects en todos sus campos clave (salvo que toque cargar la info de fichero o algo así...)

            random = new System.Random();

            // Mientras que no requiera de las dimensiones del puzle ni nada especial, se puede crear en el Start
            solver = new SlidingPuzzleSolver();

            Initialize(rows, columns);
        }
示例#2
0
        // Se crea el resolutor con la estrategia DFS y se resuelve el problema
        public void SolvePuzzleByDFS()
        {
            // Si está ordenado, podría optar por no hacer nada... aunque llamaré igualmente y espero que devuelva la solución vacía
            solver = new SlidingPuzzleSolver(rows, columns);
            // El resolutor ya está construido porque no requiere nada

            time   = Time.realtimeSinceStartup;
            memory = SystemInfo.systemMemorySize; // Se podría sumar a la parte gráfica para tener la ocupación real en memoria (SystemInfo.graphicsMemorySize)
            List <Operator> operators = solver.Solve(puzzle, SlidingPuzzleSolver.Strategy.DFS);

            time    = Time.realtimeSinceStartup - time;
            memory  = SystemInfo.systemMemorySize - memory; // No tiene mucho sentido hacerlo aquí, porque ya se habrá liberado la mmemoria, habría que escoger el punto álgido (máximo de memoria utilizada)
            metrics = solver.GetMetrics().ToString();
            ShowSolution(operators);
        }