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