Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }