Esempio n. 1
0
        static void Main(string[] args)
        {
            int           width  = 8;
            int           height = 8;
            TicTacToeGame game   = new TicTacToeGame(height, width);
            bool          stop   = false;

            while (!stop)
            {
                bool userFirst = false;
                game = new TicTacToeGame(height, width);
                Console.WriteLine("User play against computer, Do you place the first step?[y/n]");
                if (Console.ReadLine().StartsWith("y", StringComparison.InvariantCultureIgnoreCase))
                {
                    userFirst = true;
                }

                int depth = 8;
                Console.WriteLine("Please select level:[1..8]. 1 is easiet, 8 is hardest");
                int.TryParse(Console.ReadLine(), out depth);

                Console.WriteLine("{0} play first, level={1}", userFirst ? "User" : "Computer", depth);

                while (!game.Current.IsTerminalNode())
                {
                    if (userFirst)
                    {
                        game.GetNextMoveFromUser();
                        game.ComputerMakeMove(depth);
                    }
                    else
                    {
                        game.ComputerMakeMove(depth);
                        game.GetNextMoveFromUser();
                    }
                }
                Console.WriteLine("The final result is \n" + game.Current);
                if (game.Current.RecursiveScore < -200)
                {
                    Console.WriteLine("PlayerO has won.");
                }
                else if (game.Current.RecursiveScore > 200)
                {
                    Console.WriteLine("PlayerX has won.");
                }
                else
                {
                    Console.WriteLine("It is a tie.");
                }

                Console.WriteLine("Try again?[y/n]");
                if (!Console.ReadLine().StartsWith("y", StringComparison.InvariantCultureIgnoreCase))
                {
                    stop = true;
                }
            }

            Console.WriteLine("bye");
        }
Esempio n. 2
0
 public void OnMove(int x, int y, Type p)
 {
     board[x, y] = p;
     if (p == Type.Player)
     {
         minimaxBOT.GetNextMoveFromUser(x, y);
     }
     moveCount++;
     //TODO check game state
     state = checkGameState();
     if (state == GameState.Win)
     {
         if (winner == Type.Player)
         {
             stateMessage.text = "You won!";
         }
         else
         {
             stateMessage.text = "You lose!";
         }
     }
     else if (state == GameState.Tie)
     {
         stateMessage.text = "Tie";
     }
     else
     {
         ChangeTurn();
     }
 }