Пример #1
0
        public void circularCulebrita()
        {
            try
            {
                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 ColaCircular();
                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
                var punteo2   = 20;
                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)
                    {
                        velocidad = 75;
                    }

                    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();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error= " + e.Message);
            }
        }
Пример #2
0
        private static bool MoverLaCulebrita(ColaCircular culebra, Point posiciónObjetivo,
                                             int longitudCulebra, Size screenSize)
        {
            try
            {
                var lastPoint = (Point)culebra.finalCola();

                if (lastPoint.Equals(posiciónObjetivo))
                {
                    return(true);
                }


                if (culebra.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.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.ele() > (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);
            }
        }