示例#1
0
        private void run()
        {
            bool startNewGame = true;
            bool firstChance  = true;
            Cell choosenCell;

            while (startNewGame)
            {
                while (m_Board.HasOption())
                {
                    firstChance = true;
                    FillUpAndPrintMatrix();
                    m_CurrentPlayer = (m_CurrentPlayer * -1) + 1;         ////switch players 0=>1 ,1=>0
                    do
                    {
                        if (!checkeOptionsForPlayer())
                        {
                            m_UserInterface.NoOptionsMessage(m_PlayersNames[m_CurrentPlayer]);
                            break;
                        }

                        choosenCell = getCellFromCureentPlayer(firstChance);
                        firstChance = false;

                        if (choosenCell == new Cell(-1, -1))
                        {
                            return;
                        }
                    }while (!m_Board.TryUpdateMatrix(choosenCell, m_CurrentPlayer));
                }

                if (IsComputerPlaying())
                {
                    startNewGame = m_UserInterface.GameFinished(m_PlayersNames, m_Player1.Score, m_compPlayer.Score);
                }
                else
                {
                    startNewGame = m_UserInterface.GameFinished(m_PlayersNames, m_Player1.Score, m_Player2.Score);
                }

                if (startNewGame)
                {
                    m_UserInterface.InitUI(m_Board.Size);
                    m_Board.Init(m_Board.Size);
                }
            }
        }