示例#1
0
        // Inicializa o reinicia el gestor
        private void Initialize(uint rows, uint columns)
        {
            if (board == null)
            {
                throw new InvalidOperationException("The board reference is null");
            }
            if (infoPanel == null)
            {
                throw new InvalidOperationException("The infoPanel reference is null");
            }
            if (timeNumber == null)
            {
                throw new InvalidOperationException("The timeNumber reference is null");
            }
            if (stepsNumber == null)
            {
                throw new InvalidOperationException("The stepsNumber reference is null");
            }
            if (rowsInput == null)
            {
                throw new InvalidOperationException("The rowsInputText reference is null");
            }
            if (columnsInput == null)
            {
                throw new InvalidOperationException("The columnsInputText reference is null");
            }

            this.rows         = rows;
            this.columns      = columns;
            rowsInput.text    = rows.ToString();
            columnsInput.text = columns.ToString();



            // Se crea el puzle internamente
            puzzle = new SlidingPuzzle(rows, columns);
            // Se crea el resolutor (que puede admitir varias estrategias)

            // Inicializar todo el tablero de bloques
            board.Initialize(this, puzzle);

            //Inicializar tanque
            tank.Initialize(board);

            CleanInfo();

            // Podríamos asumir que tras cada inicialización o reinicio, el puzle está ordenado y se puede mostrar todo el panel de información
            UpdateInfo();

            flag.transform.position = new Vector3(-8000, flag.transform.position.y, -8000);
        }
示例#2
0
        // Inicializa o reinicia el gestor de la escena del puzle de bloques deslizantes
        private void Initialize(uint rows, uint columns)
        {
            // Lanza excepciones si el objeto no ha sido inicializado con gameobjects en todos sus campos clave
            if (board == null)
            {
                throw new InvalidOperationException("The board reference is null");
            }
            if (infoPanel == null)
            {
                throw new InvalidOperationException("The infoPanel reference is null");
            }
            if (metricsPanel == null)
            {
                throw new InvalidOperationException("The metricsPanel reference is null");
            }
            if (timeNumber == null)
            {
                throw new InvalidOperationException("The timeNumber reference is null");
            }
            if (stepsNumber == null)
            {
                throw new InvalidOperationException("The stepsNumber reference is null");
            }
            if (rowsInput == null)
            {
                throw new InvalidOperationException("The rowsInputText reference is null");
            }
            if (columnsInput == null)
            {
                throw new InvalidOperationException("The columnsInputText reference is null");
            }

            this.rows         = rows;
            this.columns      = columns;
            rowsInput.text    = rows.ToString();
            columnsInput.text = columns.ToString();

            // Se crea el puzle internamente
            puzzle = new SlidingPuzzle(rows, columns);

            // Inicializar todo el tablero de bloques
            board.Initialize(this, puzzle);

            CleanInfoAndMetrics();

            // Podríamos asumir que tras cada inicialización o reinicio, el puzle está ordenado y se puede mostrar todo el panel de información
            UpdateHUD();
        }