private static Point MostrarComida(Size screenSize, ColaConLista culebra) { var lugarComida = Point.Empty; var cabezaCulebra = (Point)culebra.finalCola(); var rnd = new Random(); Point point = (Point)culebra.frente.elemento; do { var x = rnd.Next(0, screenSize.Width - 1); var y = rnd.Next(0, screenSize.Height - 1); if ((point.X != x || point.Y != y) && Math.Abs(x - cabezaCulebra.X) + Math.Abs(y - cabezaCulebra.Y) > 8 ) { lugarComida = new Point(x, y); } } while (lugarComida == Point.Empty); Console.BackgroundColor = ConsoleColor.Blue; Console.SetCursorPosition(lugarComida.X + 1, lugarComida.Y + 1); Console.Write(" "); return(lugarComida); }
private static bool MoverLaCulebrita(ColaConLista culebra, Point posiciónObjetivo, int longitudCulebra, Size screenSize) { var lastPoint = (Point)culebra.finalCola(); try { if (lastPoint.Equals(posiciónObjetivo)) { return(true); } if (culebra.frente.elemento.Equals(posiciónObjetivo)) { return(false); } if (posiciónObjetivo.X < 0 || posiciónObjetivo.X >= screenSize.Width || posiciónObjetivo.Y < 0 || posiciónObjetivo.Y >= screenSize.Height ) { return(false); } Console.BackgroundColor = ConsoleColor.DarkYellow; Console.SetCursorPosition(lastPoint.X + 1, lastPoint.Y + 1); Console.WriteLine(" "); culebra.insertar(posiciónObjetivo); Console.BackgroundColor = ConsoleColor.Cyan; Console.SetCursorPosition(posiciónObjetivo.X + 1, posiciónObjetivo.Y + 1); Console.Write(":"); // Quitar cola if (culebra.elem() > (longitudCulebra)) { var removePoint = (Point)culebra.quitar(); Console.BackgroundColor = ConsoleColor.Black; Console.SetCursorPosition(removePoint.X + 1, removePoint.Y + 1); Console.Write(" "); } return(true); } catch (Exception e) { Console.WriteLine("Error=" + e.Message); return(false); } }
public void colaListaCulebrita() { try { int opcion; do { Random rnd = new Random(); var punteo = 0; var punteo2 = 50; var velocidad = 150; //modificar estos valores y ver qué pasa var velocidad2 = 100; var posiciónComida = Point.Empty; var tamañoPantalla = new Size(60, 20); var culebrita = new ColaConLista(); var longitudCulebra = 4; //modificar estos valores y ver qué pasa int aparicioncule1 = rnd.Next(0, 50); int aparicioncule2 = rnd.Next(0, 20); var posiciónActual = new Point(aparicioncule1, aparicioncule2); //modificar estos valores y ver qué pasa culebrita.insertar(posiciónActual); var dirección = Direction.Izquierda; //modificar estos valores y ver qué pasa DibujaPantalla(tamañoPantalla); MuestraPunteo(punteo); while (MoverLaCulebrita(culebrita, posiciónActual, longitudCulebra, tamañoPantalla)) { Thread.Sleep(velocidad); dirección = ObtieneDireccion(dirección); posiciónActual = ObtieneSiguienteDireccion(dirección, posiciónActual); if (posiciónActual.Equals(posiciónComida)) { posiciónComida = Point.Empty; longitudCulebra++; //modificar estos valores y ver qué pasa punteo += 10; //modificar estos valores y ver qué pasa MuestraPunteo(punteo); Console.Beep(); } if (punteo >= punteo2) { velocidad2 -= 30; velocidad = velocidad2; punteo2 += 60; } if (posiciónComida == Point.Empty) //entender qué hace esta linea { posiciónComida = MostrarComida(tamañoPantalla, culebrita); } } Console.ResetColor(); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.SetCursorPosition(tamañoPantalla.Width / 2 - 4, tamañoPantalla.Height / 2); Console.WriteLine("Has Perdido :( "); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.SetCursorPosition(tamañoPantalla.Width / 2 - 4, (tamañoPantalla.Height + 2) / 2); Console.Write("1.Jugar De Nuevo :) "); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.SetCursorPosition(tamañoPantalla.Width / 2 - 4, (tamañoPantalla.Height + 4) / 2); Console.Write("2.Salir "); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.SetCursorPosition(tamañoPantalla.Width / 2 - 4, (tamañoPantalla.Height + 6) / 2); Console.Write("Opcion: "); opcion = Convert.ToInt32(Console.ReadLine()); Thread.Sleep(2000); } while (opcion != 2); } catch (Exception e) { Console.WriteLine("Error= " + e.Message); } }