예제 #1
0
        public void Play()
        {
            // Template
            InitializeRound();
            GameBoard.Render();
            while (!Finished)
            {
                Move move;
                do
                {
                    move = ActivePlayer.MakeMove(GameBoard);
                } while (move == null);

                if (GameBoard.ExecuteMove(move, ActivePlayer))
                {
                    GameMoveHistory.AppendMove(move);
                }
                GameBoard.Render();

                if (CheckVictory())
                {
                    HandleVictory();
                    break;
                }
                MoveCount++;
                if (CheckDraw())
                {
                    HandleDraw();
                    break;
                }

                ActivePlayer = NextPlayer();
            }
            // End of a round
            HandleContinue();
        }