private static bool MoverLaCulebrita(BiCola culebra, Point posiciónObjetivo, int longitudCulebra, Size screenSize) { //Casteamos el metodo finalBicola con Point para Establecer las coordenadas //En lugar de .Last usamos el metodo finalBicola var lastPoint = (Point)culebra.finalBicola(); if (lastPoint.Equals(posiciónObjetivo)) { return(true); //Comparamos los valores } if (culebra.Any(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.Green; //Color del cuerpo de la culebra Console.SetCursorPosition(lastPoint.X + 1, lastPoint.Y + 1); //Movemos el cursor a estas coordenadas de la pantalla Console.WriteLine(" "); //Usamos el metodo de insertar en lugar de Enqueue culebra.insertar(posiciónObjetivo); Console.BackgroundColor = ConsoleColor.Red; //Color de la cabecita Console.SetCursorPosition(posiciónObjetivo.X + 1, posiciónObjetivo.Y + 1); //Movemos el cursor a estas coordenadas de la pantalla Console.Write(" "); // Quitar cola //Usamos el metodo de numElementosBicola de la clase Bicola en lugar de Count if (culebra.numElementosBicola() > longitudCulebra) { //Usamos el metodo de quitar de la clase Bicola en Lugar de Dequeue var removePoint = (Point)culebra.quitar(); Console.BackgroundColor = ConsoleColor.Black; //Color del recorrido de la culebra Console.SetCursorPosition(removePoint.X + 1, removePoint.Y + 1); //Movemos el cursor a estas coordenadas de la pantalla Console.Write(" "); } return(true); }
private static bool MoverLaCulebrita(BiCola culebra, Point posiciónObjetivo, int longitudCulebra, Size screenSize) { var lastPoint = (Point)culebra.finalBicola(); if (lastPoint.Equals(posiciónObjetivo)) { return(true); } if (culebra.Any(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.Green; 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.numElementosBicola() > longitudCulebra) { var removePoint = (Point)culebra.quitar(); Console.BackgroundColor = ConsoleColor.Black; Console.SetCursorPosition(removePoint.X + 1, removePoint.Y + 1); Console.Write(" "); } return(true); }
public void CulebraConBicola() { var punteo = 0; var velocidad = 100; //modificar estos valores y ver qué pasa var posiciónComida = Point.Empty; var tamañoPantalla = new Size(60, 20); var culebrita = new BiCola(); var longitudCulebra = 3; //modificar estos valores y ver qué pasa var posiciónActual = new Point(0, 9); //modificar estos valores y ver qué pasa culebrita.insertar(posiciónActual); var dirección = Direction.Derecha; //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); } if (posiciónComida == Point.Empty) //entender qué hace esta linea { posiciónComida = MostrarComida(tamañoPantalla, culebrita); } } Console.ResetColor(); Console.SetCursorPosition(tamañoPantalla.Width / 2 - 4, tamañoPantalla.Height / 2); Console.Write("Fin del Juego"); Thread.Sleep(2000); Console.ReadKey(); }
public void jugarConIntentos() { var velocidad = 100; var posiciónComida = Point.Empty; var tamañoPantalla = new Size(60, 20); var culebrita = new BiCola(); var longitudCulebra = 3; var posiciónActual = new Point(0, 9); culebrita.insertar(posiciónActual); var dirección = Direction.Derecha; DibujaPantalla(tamañoPantalla); MuestraPunteoK(punteo, vidas); while (vidas != 0) { bool juegarsi = MoverLaCulebrita(culebrita, posiciónActual, longitudCulebra, tamañoPantalla); if (juegarsi) { 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++; punteo += 10; MuestraPunteoK(punteo, vidas); velocidad -= 10; } if (posiciónComida == Point.Empty) { posiciónComida = MostrarComida(tamañoPantalla, culebrita); } } else { vidas--; Console.ResetColor(); Console.SetCursorPosition(tamañoPantalla.Width / 2 - 15, tamañoPantalla.Height / 2); if (vidas == 0) { Console.SetCursorPosition(tamañoPantalla.Width / 2 - 4, tamañoPantalla.Height / 2); Console.Write($"¡GAME OVER!"); } else { Console.Write($"Haz perdido una vida, te quedan {vidas}"); } Thread.Sleep(2000); Console.ReadKey(); jugarConIntentos(); //Volvemos a jugar } } }
public void jugarConIntentos() { var velocidad = 100; //MIENTRAS MAS ALTO SEA EL NUMERO MAS LENTO SE PONE Y MIENTRAS MAS BAJO ES EL NUMERO SE PONE MAS RAPIDO var posiciónComida = Point.Empty; //Indicar un punto que tiene los valores X e Y establecidos en cero var tamañoPantalla = new Size(60, 20); //Alto y ancho de la consola var culebrita = new BiCola(); var longitudCulebra = 3; //ESTABBLECEMOS EL TAMAÑO DEL CUERPO DE LA CULEBRA CON EL QUE VA A COMENZAR var posiciónActual = new Point(0, 9); //ESTABLECEMOS EN QUE POSICION COMENZARA A SALIR LA CULEBRA culebrita.insertar(posiciónActual); //ENCOLANDO var dirección = Direction.Derecha; //LA CULEBRA COMIENZA A SALIR DEL LADO DERECHO PORQUE LE TENEMOS.DERECHA DibujaPantalla(tamañoPantalla); //Dibujamos pantalla con lo que establecimos de la variable tamañoPantalla MuestraPunteoK(punteo, vidas); //Mostramos el punteo delo que establecimos de la variable punteo //Para que el juego se repita mientras tenga vidas while (vidas != 0) { bool juegarsi = MoverLaCulebrita(culebrita, posiciónActual, longitudCulebra, tamañoPantalla); if (juegarsi) { Thread.Sleep(velocidad);//Suspende el subproceso actual durante el período de tiempo especificado en velocidad. dirección = ObtieneDireccion(dirección); posiciónActual = ObtieneSiguienteDireccion(dirección, posiciónActual); if (posiciónActual.Equals(posiciónComida)) //Comparamos los objetos { posiciónComida = Point.Empty; //Indica un punto que tiene los valores X e Y establecidos en cero longitudCulebra++; //Incrementamos el cuerpo de la culebra cada ves que come punteo += 10; //VA SUBIENDO EL PUNTEO DE 10 EN 10 CADA VES QUE COME MuestraPunteoK(punteo, vidas); //Mostramos el punteo y las vidas velocidad -= 10; //Sube de velocidad cada ves que come } //MUESTRA LA COMIDA if (posiciónComida == Point.Empty) //Indica un punto que tiene los valores X e Y establecidos en cero { posiciónComida = MostrarComida(tamañoPantalla, culebrita); } } else//Cada ves que pierda { vidas--;//Me restara una vida Console.ResetColor();//Establece los colores de la consola en sus valores predeterminados. Console.SetCursorPosition(tamañoPantalla.Width / 2 - 15, tamañoPantalla.Height / 2); if (vidas == 0) { Console.SetCursorPosition(tamañoPantalla.Width / 2 - 4, tamañoPantalla.Height / 2); Console.Write($"¡GAME OVER!"); } else { Console.Write($"Haz perdido una vida, te quedan {vidas}"); } Thread.Sleep(2000);//Suspende el subproceso actual durante el período de tiempo especificado en velocidad. Console.ReadKey(); jugarConIntentos(); //Mientras tenga vidas volvemos a jugar } } }