Beispiel #1
0
        public void Start()
        {
            while (true)
            {
                this.painter.DrawMessage($"{currentPlayer.Name} - You're on the move ");

                string[] userMove = ConsoleIO.ReadFromConsole().Split();

                try
                {
                    string currentPosition = userMove[0];
                    string newPosition     = userMove[1];
                    if (board.MoveFigure(currentPosition, newPosition, currentPlayer))
                    {
                        painter.DrawBoard(board);

                        if (board.Winner != null) // check for end game
                        {
                            painter.DrawBoard(board);
                            painter.DrawMessage($"{board.Winner.Name} - wins the game! Press enter. ");
                            ConsoleIO.ReadFromConsole();
                            return;
                        }

                        if (board.RevivalPawn != null)
                        {
                            while (true)
                            {
                                painter.DrawMessage($"Pawn to {board.RevivalPawn.Position} can revive in: Queen, Bishop, Rook, Knight.Enter your choise:");
                                var userChoise = ConsoleIO.ReadFromConsole();
                                if (userChoise == "Queen" || userChoise == "Bishop" || userChoise == "Rook" || userChoise == "Knight")
                                {
                                    board.ReviveNewFigure(currentPlayer, userChoise);
                                    painter.DrawBoard(board);
                                    break;
                                }
                            }
                        }

                        //swap player if move is valid
                        if (this.currentPlayer == firstPlayer)
                        {
                            this.currentPlayer = secondPlayer;
                        }
                        else
                        {
                            this.currentPlayer = firstPlayer;
                        }
                    }
                }
                catch (System.Exception exception)
                {
                    painter.DrawErrorMessage(exception.Message);
                    ConsoleIO.Sleep(3000);
                    painter.DrawBoard(board);
                }
            }
        }
Beispiel #2
0
        private void StartGame()
        {
            Console.Title           = "Chess";
            Console.ForegroundColor = ConsoleColor.White;
            Console.OutputEncoding  = Encoding.UTF8;

            SystemSetting.SetSettingOfFontMsGothic();
            IPlayer peshoPlayer = new FirstPlayer("Pesho", Color.DarkYellow);

            peshoPlayer.SaveCoordinates();

            IPlayer goshoPlayer = new SecondPlayer("Gosho", Color.Yellow);

            goshoPlayer.SaveCoordinates();

            Board board = new Board(peshoPlayer, goshoPlayer, 8);

            painter.DrawBoard(board);

            Controller controller = new Controller(board, painter);

            controller.Start();
        }