예제 #1
0
        static void Main(string[] args)
        {
            PlayingBoard playingBoard = new PlayingBoard();

            Team blackTeam = new Team(TeamColor.black, playingBoard);
            Team whiteTeam = new Team(TeamColor.white, playingBoard);

            PlayController playController = new PlayController(whiteTeam, blackTeam, playingBoard);

            do
            {
                Console.BackgroundColor = ConsoleColor.DarkYellow;
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write($"|{"",2}|");
                for (int j = 0; j < playingBoard.NumX; j++)
                {
                    Console.Write($"{j,6}|");
                }
                Console.WriteLine();
                for (int i = 0; i < playingBoard.NumY; i++)
                {
                    Console.Write($"|{i,2}|");
                    for (int j = 0; j < playingBoard.NumX; j++)
                    {
                        var figB = blackTeam.Figures.Find(f => f.PozX == j && f.PozY == i);
                        if (figB != null)
                        {
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.Write($"{"black",6}");
                            Console.ForegroundColor = ConsoleColor.Green;
                        }
                        var figW = whiteTeam.Figures.Find(f => f.PozX == j && f.PozY == i);
                        if (figW != null)
                        {
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.Write($"{"white",6}");
                            Console.ForegroundColor = ConsoleColor.Green;
                        }
                        if (figB == null && figW == null)
                        {
                            Console.Write($"{"",6}");
                        }
                        Console.Write("|");
                    }
                    Console.WriteLine();
                }
                if (playController.CurrentTeam == blackTeam)
                {
                    Console.WriteLine("Ходят черные");
                }
                else
                {
                    Console.WriteLine("Ходят белые");
                }

                Console.WriteLine("Выберите фигуру:");
                Console.WriteLine("Введите номер строки:");
                int y;

                var GO  = playController.CanGo().ToArray();
                var FIG = playController.MustFight().ToArray();


                var resY = playController.CanGo().Select(f => f.PozY).ToArray();

                while (!(int.TryParse(Console.ReadLine(), out y)) || !(resY.Contains(y)))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Неверно ввели: так как нет такого номера. Введите заново!");
                    Console.ForegroundColor = ConsoleColor.Green;
                }
                Console.WriteLine("Введите номер столбца:");
                int x;
                var resX = playController.CanGo().Where(f => f.PozY == y).Select(f => f.PozX).ToArray();
                while (!(int.TryParse(Console.ReadLine(), out x)) || !(resX.Contains(x)))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Неверно ввели: так как нет такого номера. Введите заново!");
                    Console.ForegroundColor = ConsoleColor.Green;
                }
                Console.WriteLine("Введите номер строки куда пойдет:");
                int yNew;
                while (!(int.TryParse(Console.ReadLine(), out yNew)))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Неверно ввели: так как нет такого номера. Введите заново!");
                    Console.ForegroundColor = ConsoleColor.Green;
                }
                Console.WriteLine("Введите номер столбец куда пойдет:");
                int xNew;
                while (!(int.TryParse(Console.ReadLine(), out xNew)))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Неверно ввели: так как нет такого номера. Введите заново!");
                    Console.ForegroundColor = ConsoleColor.Green;
                }
                playController.Move(y, x, yNew - y, xNew - x);
                Console.WriteLine(new String('-', 90));
                playController.TeamChange();
            }while (true);
            Console.ReadLine();
        }