Пример #1
0
        public void Iniciar()
        {
            Console.CursorVisible = false;
            ///Acceso clases
            Serpiente snake = new Serpiente();
            Punto     punto = new Punto();

            ///Creacion primer arroba
            Punto p2 = new Punto(20, 15, '@');

            List <Punto> p = snake.CrearPuntos();

            ///Movimiento
            new Movimiento().HacerMovimiento(p, p2);
        }
Пример #2
0
        public void HacerMovimiento(List <Punto> p, Punto p2)
        {
            ///Constante movimiento
            const int INC = 1;

            ///Acceso clases
            Serpiente snake = new Serpiente();
            Punto     punto = new Punto();

            ConsoleKeyInfo car;

            do
            {
                ///Si come que agregue, sino que siga borrando el ultimo valor
                if (p[0].X == p2.X && p[0].Y == p2.Y)
                {
                    ///Agregar punto a la serpiente
                    p.Add(p2);
                    ///Generar punto random para el nuevo arroba
                    Random rnd = new Random();
                    int    rX  = rnd.Next(2, 20);
                    int    rY  = rnd.Next(2, 20);
                    foreach (var f in p)
                    {
                        if (rX == f.X || rY == f.Y)
                        {
                            rX = rnd.Next(2, 20);
                            rY = rnd.Next(2, 20);
                        }
                    }
                    p2 = new Punto(rX, rY, '@');
                }
                else
                {
                    p[p.Count - 1].Visualizar(" ");
                }
                ///Cambio de valores
                Serpiente.Mapear(p);


                ///Movimiento
                car = Console.ReadKey(true);
                switch (car.Key)
                {
                case ConsoleKey.DownArrow:
                    if (p[0].Y == 20)
                    {
                        p[0].Y = 1;
                        p[0].Mover(0, -19);
                    }
                    else
                    {
                        p[0].Mover(0, INC);
                    }
                    break;

                case ConsoleKey.UpArrow:
                    if (p[0].Y == 1)
                    {
                        p[0].Mover(0, 19);
                    }
                    else
                    {
                        p[0].Mover(0, -INC);
                    }
                    break;

                case ConsoleKey.LeftArrow:
                    if (p[0].X == 1)
                    {
                        p[0].Mover(49, 0);
                    }
                    else
                    {
                        p[0].Mover(-INC, 0);
                    }
                    break;

                case ConsoleKey.RightArrow:
                    if (p[0].X == 49)
                    {
                        p[0].X = 1;
                        p[0].Mover(-48, 0);
                    }
                    else
                    {
                        p[0].Mover(INC, 0);
                    }
                    break;

                default:
                    break;
                }
            } while (car.Key != ConsoleKey.Escape);
        }