예제 #1
0
        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);
        }
예제 #2
0
 private void NewGameClick(object sender, RoutedEventArgs e)
 {
     MyTicTacToeBoard = new TTTEngine(false);
     UpdateGameState();
     IsShowingNewGameScreen = Visibility.Visible;
     if (PropertyChanged != null)
     {
         PropertyChanged(this, new PropertyChangedEventArgs("IsShowingNewGameScreen"));
     }
 }