static void Main(string[] args) { var player1 = new Player(); var player2 = new Player(); var activePlayer = new Player(); var board = new Gameboard(); bool GameOver; bool playAgain; int turnCount = 0; do { GameOver = false; turnCount = 0; board = Setup(ref board, ref player1, ref player2); // Create a gameboard! activePlayer = SetActivePlayer(ref activePlayer, player1, player2); do { Console.Clear(); board.Print(); TakeTurn(activePlayer, ref board); GameOver = CheckForVictory(ref activePlayer, board); SwapActivePlayer(ref activePlayer, ref player1, ref player2); ++turnCount; } while (!GameOver && turnCount < 9); Console.WriteLine("\n*** Final Result ***"); board.Print(); OutputGameResult(player1, player2, turnCount); playAgain = PlayAgainOffer(); } while (playAgain); }
static void ExecuteAITurn(Player activePlayer, ref Gameboard board) { int tile_x; int tile_y; DisplayAIThinkingMessage(board); do { var randomRnd_x = new Random(); var randomRnd_y = new Random(); tile_x = randomRnd_x.Next(3); tile_y = randomRnd_y.Next(3); } while (board.tile[tile_x, tile_y].content != Symbol.empty); board.tile[tile_x, tile_y].content = activePlayer.PlayersSymbol; Console.Clear(); board.Print(); Console.WriteLine($"The AI opts to take position {GetTileID(tile_x, tile_y)} for its turn."); activePlayer.SetLastPlay(tile_x, tile_y); Thread.Sleep(2000); }