Example #1
0
 public ComidaRica(Vector posicion)
     : base(posicion)
 {
     base.posicion = posicion;
     base.color = ConsoleColor.Red;
     base.forma = '°';
     base.puntos = 500;
 }
Example #2
0
        public Gusano(Vector posicion, int velocidad, Direccion direccion, int longitud, ConsoleColor color)
        {
            pos = posicion;
            vel = velocidad;
            lon = longitud;
            this.color = color;

            cola = new List<Vector>(longitud);
            cola.Add(new Vector(pos.X, pos.Y));
        }
Example #3
0
 public Comida(Vector posicion)
 {
     this.posicion = posicion;
 }
Example #4
0
        public void Mover()
        {
            Vector antiguaPos = new Vector(pos.X, pos.Y);

            switch (dir)
            {
                case Direccion.Arriba:
                    pos.Y -= vel;
                    break;
                case Direccion.Abajo:
                    pos.Y += vel;
                    break;
                case Direccion.Izquierda:
                    pos.X -= vel;
                    break;
                case Direccion.Derecha:
                    pos.X += vel;
                    break;
            }

            //Actualizar cola
            while (cola.Count < lon)
            {
                cola.Add(new Vector(cola[cola.Count - 1].X, cola[cola.Count - 1].Y + 1));
            }

            cola.Insert(0, antiguaPos);
            cola.RemoveAt(cola.Count - 1);

            //Comprobar si se ha comido
            for (int i = 0; i < cola.Count; i++)
            {
                if (cola.Contains(pos))
                    Program.FinDeJuego("¡No muerdas a ti mismo!");
            }
        }
Example #5
0
        static void Main(string[] args)
        {
            Console.CursorVisible = false;
            Console.SetWindowSize (tamañoEscenarioX, tamañoEscenarioY);
            if (System.Environment.OSVersion.Platform == PlatformID.Win32NT) {
                Console.SetBufferSize (tamañoEscenarioX, tamañoEscenarioY);
            }

            Random aleator = new Random ();
            Comida com = new ComidaRica (new Vector (aleator.Next (tamañoEscenarioX), aleator.Next (tamañoEscenarioY)));

            Gusano gus = new Gusano (new Vector (5, 5), 1, Direccion.Arriba, 2, ConsoleColor.Green);

            Console.Beep (294, 100); //Re
            Console.Beep (294, 100); //Re
            Console.Beep (294, 100); //Re
            Console.Beep (233, 100); //Sib bajo
            Console.Beep (294, 100); //Re
            Console.Beep (349, 100); //Fa
            Console.Beep (174, 100); //Fa bajo

            while (true) {
                //Comprobar teclas
                if (Console.KeyAvailable) {
                    ConsoleKeyInfo tecla = Console.ReadKey (true);
                    if (tecla.Key == ConsoleKey.UpArrow) {
                        gus.Direccion = Direccion.Arriba;
                    }

                    if (tecla.Key == ConsoleKey.DownArrow) {
                        gus.Direccion = Direccion.Abajo;
                    }

                    if (tecla.Key == ConsoleKey.LeftArrow) {
                        gus.Direccion = Direccion.Izquierda;
                    }

                    if (tecla.Key == ConsoleKey.RightArrow) {
                        gus.Direccion = Direccion.Derecha;
                    }
                }

                //Mover el gusano y comprobar que no se ha salido
                gus.Mover ();
                if (gus.Posicion.X < 0 || gus.Posicion.Y < 0 || gus.Posicion.X > Console.WindowWidth || gus.Posicion.Y > Console.WindowHeight) {
                    FinDeJuego ("¡¡¡Has muerto!!!");
                }

                //Comprobar si se come la comida
                if (gus.Posicion == com.Posicion) {
                    Console.Beep (988, 10); //Si4
                    Console.Beep (1175, 70); //Re4
                    puntos += com.Puntos; //Aumenta los puntos
                    gus.Longitud += 4; //Aumenta el tamaño si ha comido
                    if (intervaloJuego >= 10) {
                        intervaloJuego -= 10; //Aumenta la velocidad del juego
                    }

                    Random numeroAl = new Random ();

                    Vector nuevaPosicion = new Vector (numeroAl.Next (tamañoEscenarioX), numeroAl.Next (tamañoEscenarioY));
                    while (nuevaPosicion == gus.Posicion) {
                        nuevaPosicion = new Vector (numeroAl.Next (tamañoEscenarioX), numeroAl.Next (tamañoEscenarioY)); //Se genera aleatoriamente la nueva posicion de la comida
                    }

                    switch (numeroAl.Next (0, 2)) {
                    case 0:
                        com = new Comida (nuevaPosicion);
                        break;
                    case 1:
                        com = new ComidaRica (nuevaPosicion);
                        break;
                    default:
                        break;
                    }
                }
                Console.Clear ();

                //Dibujar comida
                com.Dibujar ();

                //Dibujar el gusano
                gus.Dibujar ();

                System.Threading.Thread.Sleep (intervaloJuego);
            }
        }