Esempio n. 1
0
        private void RemoveShape()
        {
            if (ListFigures.Count == 0)
            {
                Console.WriteLine("You have no figures!\n");
                return;
            }
            int index;

            while (true)
            {
                Console.Write("Enter shape index: ");
                if (!int.TryParse(Console.ReadLine(), out index))
                {
                    Console.WriteLine("The only numbers can be entered. Try again\n\n");
                }
                else if (index < 0 || index > ListFigures.Count - 1)
                {
                    Console.WriteLine("The number is not in the specified range. Try again\n\n");
                }
                else
                {
                    ListFigures.RemoveAt(index);
                    Field = FigurePainter.DrawAll(ListFigures);
                    break;
                }
            }
            Console.WriteLine("Done!\n");
        }
Esempio n. 2
0
 public ActionWithShapes(WorkingWithField field, List <Figure> listFigures)
 {
     Field         = field;
     ListFigures   = listFigures;
     FigurePainter = new FigurePainter(field);
     Start();
 }
 public AddShapeAction(WorkingWithField field, List <Figure> listFigures)
 {
     Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-en");
     Field         = field;
     ListFigures   = listFigures;
     FigurePainter = new FigurePainter(field);
     Start();
 }
 internal FigurePainter(WorkingWithField field) => Field = field;
Esempio n. 5
0
        private void MoveShape()
        {
            if (ListFigures.Count == 0)
            {
                Console.WriteLine("You have no figures!\n");
                return;
            }
            int index;

            while (true)
            {
                Console.Write("Enter shape index: ");
                if (!int.TryParse(Console.ReadLine(), out index))
                {
                    Console.WriteLine("The only numbers can be entered. Try again\n\n");
                }
                else if (index < 0 || index > ListFigures.Count - 1)
                {
                    Console.WriteLine("The number is not in the specified range. Try again\n\n");
                }
                else
                {
                    break;
                }
            }

            Console.WriteLine("How do you want to move the shape?\nW(w)\t—\tNorth;\nS(s)\t—\tSouth;\n" +
                              "A(a)\t—\tWest;\nD(d)\t—\tEast;\n");
            Console.Write("Enter 1 of 4 ways: ");
            var tap = Console.ReadKey();

            while (tap.Key != ConsoleKey.W && tap.Key != ConsoleKey.S && tap.Key != ConsoleKey.A && tap.Key != ConsoleKey.D)
            {
                Console.Write("\nPlease choose 1 of 2 ways: ");
                tap = Console.ReadKey();
            }
            Console.WriteLine("\n");

            int distance;

            while (true)
            {
                Console.Write("Enter distance: ");
                if (!int.TryParse(Console.ReadLine(), out distance))
                {
                    Console.WriteLine("The only numbers can be entered. Try again\n\n");
                }
                else if (distance < 1 || distance > Field.N)
                {
                    Console.WriteLine($"The number is not in the specified range (0(not including), {Field.N}). Try again\n\n");
                }
                else
                {
                    break;
                }
            }

            var points = new List <(int, int)>();

            if (tap.Key == ConsoleKey.W)
            {
                var figure = ListFigures[index];
                points = figure.Points
                         .Select(x => (x.Item1, x.Item2 + distance > 75 ? 75 : x.Item2 + distance)).ToList();
                ListFigures[index] = new Figure(figure.Title, points, figure.ContourOnly);
            }
            else if (tap.Key == ConsoleKey.S)
            {
                var figure = ListFigures[index];
                points = figure.Points
                         .Select(x => (x.Item1, x.Item2 - distance < -75 ? 075 : x.Item2 - distance)).ToList();
                ListFigures[index] = new Figure(figure.Title, points, figure.ContourOnly);
            }
            else if (tap.Key == ConsoleKey.A)
            {
                var figure = ListFigures[index];
                points = figure.Points
                         .Select(x => (x.Item1 - distance < -75 ? -75 : x.Item1 - distance, x.Item2)).ToList();
                ListFigures[index] = new Figure(figure.Title, points, figure.ContourOnly);
            }
            else if (tap.Key == ConsoleKey.D)
            {
                var figure = ListFigures[index];
                points = figure.Points
                         .Select(x => (x.Item1 + distance > 75 ? 75 : x.Item1 + distance, x.Item2)).ToList();
                ListFigures[index] = new Figure(figure.Title, points, figure.ContourOnly);
            }
            Field = FigurePainter.DrawAll(ListFigures);
            Console.WriteLine("Done!\n");
        }