private static bool MoverLaCulebrita1(ColaCircular culebra, Point posiciónObjetivo,
                                              int longitudCulebra, Size screenSize)
        {
            Point lastPoint = (Point)culebra.frenteCola();

            if (lastPoint.Equals(posiciónObjetivo))
            {
                return(true);
            }
            int i = culebra.listaCola.Length - 1;

            do
            {
                if (culebra.listaCola[i] != null)
                {
                    if (culebra.listaCola[i].Equals(posiciónObjetivo))
                    {
                        return(false);
                    }
                }
                i--;
            } while (i > 0);

            if (posiciónObjetivo.X < 0 || posiciónObjetivo.X >= screenSize.Width ||
                posiciónObjetivo.Y < 0 || posiciónObjetivo.Y >= screenSize.Height)
            {
                return(false);
            }

            Console.BackgroundColor = ConsoleColor.Gray;
            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.ultimo > longitudCulebra)
            {
                Point removePoint = (Point)culebra.quitar();
                Console.BackgroundColor = ConsoleColor.Black;
                Console.SetCursorPosition(removePoint.X + 1, removePoint.Y + 1);
                Console.Write(" ");
            }
            return(true);
        }
Ejemplo n.º 2
0
        private static bool MoverLaCulebrita(ColaCircular culebra, Point posiciónObjetivo,
                                             int longitudCulebra, Size screenSize)
        {
            var lastPoint = (Point)culebra.finalcolaCircular();//cambio

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

            if (culebra.ToString().Any(x => x.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.size() > longitudCulebra)          //cambio
            {
                var removePoint = (Point)culebra.quitar(); //cambio
                Console.BackgroundColor = ConsoleColor.Black;
                Console.SetCursorPosition(removePoint.X + 1, removePoint.Y + 1);
                Console.Write(" ");
            }
            return(true);
        }