示例#1
0
文件: Program.cs 项目: victoref/Snake
    //Metodo para hacer avanzar a la serpiente
    public void avanza()
    {
        int x; //declaramos un x y un y
        int y;

        serp.ultimo(out x, out y); //los valores de x e y seran modificados el ultimo elmento de serp

        x += dirx;                 //le añadimos la dirreccion
        y += diry;

        //añadimos siempre un nuevo nodo y dependiendo del tablero se realiza una opcion u otra
        if (!colision(x, y))
        {
            serp.insertaFin(x, y); //avanzamos en uno a la serp

            if (frutas.esta(x, y)) //si no hay colision pero si hay fruta, eliminamos fruta
            {
                frutas.eliminaElto(x, y);
            }
            else//sino eliminamos el primer elemento de la lista que realmeente en el juego es la cola, es decir el que hemos añadido al principio
            {
                serp.eliminaIni();
            }
        }
        else
        {
            throw new Exception("Colisión");
        }
    }
示例#2
0
文件: Program.cs 项目: victoref/Snake
    public void ponFruta()
    {
        int x;
        int y;

        do
        {
            x = rnd.Next(1, cols); //generamos dos numeros randoms que se encuentren dentro del tablero
            y = rnd.Next(1, fils); //y sera en esa posicion donde coloquemos una fruta si el hueco esta libre
        }while (serp.esta(x, y));
        frutas.insertaFin(x, y);
    }
示例#3
0
文件: Program.cs 项目: victoref/Snake
    public Estado(int ancho, int alto)
    {
        cols = ancho;
        fils = alto;

        dirx = 1;//le damos a la serpiente una direccion de partida
        diry = 0;

        serp   = new ListaEnlazada();//inicializamos las listas, una para serpiente y otra para fruta
        frutas = new ListaEnlazada();

        serp.insertaFin(cols / 2, fils / 2);
    }