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()); }