public void culebritaTest() { Console.Title = "Culebrita Cola con Lista"; DirectionKey direction = new DirectionKey(); var punteo = 0; var velocidad = 80; var posiciónComida = Point.Empty; var tamañoPantalla = new Size(60, 20); ColaConLista n = new ColaConLista(); var longitudCulebra = 3; var posiciónActual = new Point(0, 9); n.Insertar(posiciónActual); var dirección = DirectionKey.Direction.Derecha; direction.DibujaPantalla(tamañoPantalla); direction.MuestraPunteo(punteo); while (MoverLaCulebrita1(n, posiciónActual, longitudCulebra, tamañoPantalla)) { if (velocidad > 0) { Thread.Sleep(velocidad); } dirección = direction.ObtieneDireccion(dirección); posiciónActual = direction.ObtieneSiguienteDireccion(dirección, posiciónActual); if (posiciónActual.Equals(posiciónComida)) { posiciónComida = Point.Empty; longitudCulebra++;; punteo += 10; direction.MuestraPunteo(punteo); Console.Beep(); velocidad -= 3; } if (posiciónComida == Point.Empty) { posiciónComida = MostrarComida1(tamañoPantalla, n); } } Console.ResetColor(); Console.SetCursorPosition(tamañoPantalla.Width / 2 - 4, tamañoPantalla.Height / 2); Console.Write("Fin del Juego"); Thread.Sleep(2000); new Game().Start(); }
private static bool MoverLaCulebrita1(ColaConLista culebra, Point posiciónObjetivo, int longitudCulebra, Size screenSize) { Nodo lista; lista = culebra.primero; Point lastPoint = (Point)culebra.frenteCola(); if (lastPoint.Equals(posiciónObjetivo)) { return(true); } for (int i = 0; i <= longitudCulebra && lista != null; i++) { if (lista.elemento.Equals(posiciónObjetivo)) { return(false); } lista = lista.siguiente; } if (posiciónObjetivo.X < 0 || posiciónObjetivo.X >= screenSize.Width || posiciónObjetivo.Y < 0 || posiciónObjetivo.Y >= screenSize.Height) { return(false); } Console.BackgroundColor = ConsoleColor.Yellow; Console.SetCursorPosition(lastPoint.X + 1, lastPoint.Y + 1); Console.WriteLine(" "); culebra.Insertar(posiciónObjetivo); Console.BackgroundColor = ConsoleColor.Red; Console.SetCursorPosition(posiciónObjetivo.X + 1, posiciónObjetivo.Y + 1); Console.Write(" "); //quitar cola if (culebra.numElementosLista() > longitudCulebra) { Point removePoint = (Point)culebra.quitar(); Console.BackgroundColor = ConsoleColor.Black; Console.SetCursorPosition(removePoint.X + 1, removePoint.Y + 1); Console.Write(" "); } return(true); }