static void Main() { TTTEngine MyEngine = new TTTEngine(false); var IComputerPlayer = PlayAgainstComputer(); var CurrentPosition = Console.CursorTop; do { Console.CursorTop = CurrentPosition; PrintBoard(MyEngine.CurrentBoardState()); if (MyEngine.IsGameDraw()) { Console.WriteLine("You Both Lose!!!! Press any key to play again".PadRight(100)); var PlayAgain = Console.ReadKey(true); Console.Clear(); Main(); return; } if (MyEngine.IsGameOver()) { if (MyEngine.isXTurn) { Console.WriteLine("X WINS!!!! Press any key to play again".PadRight(100)); } else { Console.WriteLine("O WINS!!!! Press any key to play again".PadRight(100)); } var PlayAgain = Console.ReadKey(true); Console.Clear(); Main(); return; } else { Console.WriteLine("Where would you like to play? Use: Q,W,E A,S,D Z,X,C"); var UserInput = new Point(0,0); var CurrentSymbol = MyEngine.isXTurn ? 0 : 1; if (MyEngine.isXTurn && IComputerPlayer) { Thread.Sleep(500); UserInput = TicTacToePlayer.SmartComputer(MyEngine.CurrentBoardState()); } else { UserInput = MapConsoleKeyToBoardLocation(Console.ReadKey(true).Key); } MyEngine.TryMove(UserInput.row, UserInput.column, CurrentSymbol); } } while (true); }
private void NewGameClick(object sender, RoutedEventArgs e) { MyTicTacToeBoard = new TTTEngine(false); UpdateGameState(); IsShowingNewGameScreen = Visibility.Visible; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("IsShowingNewGameScreen")); } }