Пример #1
0
        public void posiblesDirs(int fant, out ListaPares l, out int cont)
        {
            l    = new ListaPares();
            cont = 4;
            l.insertaFin(1, 0);
            l.insertaFin(0, 1);
            l.insertaFin(-1, 0);
            l.insertaFin(0, -1);

            l.iniciaRecorrido();

            int dx, dy;
            int nx, ny;

            while (l.dame_actual_y_avanza(out dx, out dy))
            {
                if (!siguiente(pers[fant].posX, pers[fant].posY, dx, dy, out nx, out ny))
                {
                    l.eliminaElto(dx, dy);
                    cont--;
                }
            }

            if (cont > 1)
            {
                if (l.eliminaElto(-pers[fant].dirX, -pers[fant].dirY))
                {
                    cont--;
                }
            }
        }
Пример #2
0
        public void muevePacman()
        {
            int nx, ny;

            if (siguiente(pers[0].posX, pers[0].posY, pers[0].dirX, pers[0].dirY, out nx, out ny))
            {
                pers[0].posX = nx;
                pers[0].posY = ny;
            }

            if (interactivo)
            {
                return;
            }

            if (cas[pers[0].posX, pers[0].posY] == Casilla.Comida ||
                cas[pers[0].posX, pers[0].posY] == Casilla.Vitamina)
            {
                numComida--;
                if (cas[pers[0].posX, pers[0].posY] == Casilla.Vitamina)
                {
                    for (int i = 1; i < pers.Length; i++)
                    {
                        pers[i].posX = pers[i].defX;
                        pers[i].posY = pers[i].defY;
                    }

                    int celdax, celday;
                    celdas.iniciaRecorrido();
                    while (celdas.dame_actual_y_avanza(out celdax, out celday))
                    {
                        cas[celdax, celday] = Casilla.MuroCelda;
                    }
                    lapFantasmas = 3000;
                }
                cas[pers[0].posX, pers[0].posY] = Casilla.Blanco;
            }
        }