示例#1
0
    // Use this for initialization
    void Awake()
    {
        tam = PuzzleManager.Instance.dameTam();
        GridLayoutGroup Grid = puzzleField.GetComponent <GridLayoutGroup>();

        if (Grid == null)
        {
            Debug.Log("Falta script layout");
        }
        else
        {
            Grid.constraintCount = tam;

            for (int i = 0; i < tam * tam; i++)
            {
                GameObject buttonn = Instantiate(button);
                buttonn.name = "" + i;
                buttonn.transform.SetParent(puzzleField, false);

                TilePR2 tile = buttonn.GetComponent <TilePR2>();
                tile.Posicion.Set(i % tam, i / tam);

                /*
                 * if(i < 3){
                 * tile.estado = (eCasilla) i + 3;
                 * tile.SetOcupada(true);
                 * }*/
            }
        }
        PuzzleManager.Instance.SetPiezas(puzzleField);
    }
示例#2
0
    // Use this for initialization
    void Start()
    {
        matriz = new eCasilla[tam, tam];
        for (int i = 0; i < 3; i++)
        {
            matriz[i, 0] = (eCasilla)(i + 3);
        }

        Transform pieza  = Piezas.GetChild(0);
        TilePR2   logica = pieza.GetComponent <TilePR2>();

        logica.avanza(0);
        matriz[0, 0] = eCasilla.obsR;

        pieza  = Piezas.GetChild(9);
        logica = pieza.GetComponent <TilePR2>();
        logica.avanza(1);
        matriz[9, 0] = eCasilla.obsG;


        pieza  = Piezas.GetChild(99);
        logica = pieza.GetComponent <TilePR2>();
        logica.avanza(2);
        matriz[9, 9] = eCasilla.obsB;

        Fondo.color = colores[0];
    }
示例#3
0
 private void actualizaTablero(List <dim> camino)
 {
     for (int i = 0; i < 100; i++)
     {
         int       x      = i % 10;
         int       y      = i / 10;
         Transform pieza  = Piezas.GetChild(i);
         TilePR2   logica = pieza.GetComponent <TilePR2>();
         matriz[x, y] = logica.estado;
     }
     for (int i = 0; i < camino.Count; i++)
     {
         Transform pieza     = Piezas.GetChild(camino[i].x + camino[i].y * 10);
         Image     tileColor = pieza.GetComponent <Image>();
         tileColor.color = new Color(255, 255, 255, 255);
     }
 }
示例#4
0
    IEnumerator resolver(List <dim> camino, dim origen, dim destino, int coche)
    {
        Transform pieza     = Piezas.GetChild(origen.x + origen.y * 10);
        TilePR2   logica    = pieza.GetComponent <TilePR2>();
        Image     tileColor = pieza.GetComponent <Image>();

        tileColor.color = colores[coche + 1];

        bool avanzar = true;
        int  i;

        for (i = 1; avanzar && i <= camino.Count; i++)
        {
            logica.vuelve();
            matriz[camino[i - 1].x, camino[i - 1].y] = logica.estado;
            float aux = (float)matriz[camino[i - 1].x, camino[i - 1].y] + 1;
            pieza           = Piezas.GetChild(camino[i - 1].x + camino[i - 1].y * 10);
            logica          = pieza.GetComponent <TilePR2>();
            tileColor       = pieza.GetComponent <Image>();
            tileColor.color = colores[coche + 1];
            avanzar         = logica.avanza(coche);

            if (!avanzar)
            {
                pieza  = Piezas.GetChild(camino[i - 2].x + camino[i - 2].y * 10);
                logica = pieza.GetComponent <TilePR2>();
                logica.avanza(coche);
                matriz[camino[i - 2].x, camino[i - 2].y] = logica.estado;
                aux = 0;
            }
            yield return(new WaitForSecondsRealtime(0.5f * aux));
        }
        actualizaTablero(camino);
        if (!avanzar)
        {
            recalcula(camino[i - 3], destino, coche);
        }
    }