예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
            }
        }