Exemple #1
0
        public void RunGame()
        {
            InitGame(); // get board size, player names, init GameEngine with data, init GameUI instance

            // game loop?
            while (!m_IsEndOfGame)
            {
                m_Turns = k_One;
                while (!m_GameEngineInstance.m_IsEndOfMatch && !m_IsEndOfGame && m_Turns < (m_BoardSize * m_BoardSize))
                {
                    m_GameUserInterfaceInstance.PrintBoard(m_GameEngineInstance.GetCurrentBoardState(), m_GameEngineInstance.GetPlayers());
                    MakeGameLoop();
                    m_Turns++;
                }

                m_GameUserInterfaceInstance.PrintBoard(m_GameEngineInstance.GetCurrentBoardState(), m_GameEngineInstance.GetPlayers());

                if (!m_IsEndOfGame)
                {
                    Console.WriteLine("Press any key for new game or Q for exit!");
                    m_received = Console.ReadKey(true).KeyChar;
                    if (m_received == k_Exit)
                    {
                        m_IsEndOfGame = true;
                    }
                    else
                    {
                        SetNewMatch();
                    }
                }
            }

            // Ex02.ConsoleUtils.Screen.Clear();
            Console.WriteLine("Game Over!!!");
            m_GameUserInterfaceInstance.PrintPlayers(m_GameEngineInstance.GetPlayers());
        }