//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"); } }
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); }
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); }