Пример #1
0
 private int Evaluate(Board board)
 {
     if (board.CheckForWin(board.CurrentPlayer))
     {
         return(int.MaxValue - board.MoveCount);
     }
     if (board.CheckForWin(Board.Opposite(board.CurrentPlayer)))
     {
         return(int.MinValue + board.MoveCount);
     }
     if (board.CheckForDraw)
     {
         return(board.MoveCount);
     }
     return(0);
 }
Пример #2
0
 public void Play()
 {
     while (true)
     {
         Console.Clear();
         board.DrawBoard();
         if (board.CheckForDraw)
         {
             Console.WriteLine("It's a draw!");
             break;
         }
         if (board.CheckForWin(Board.Opposite(board.CurrentPlayer)))
         {
             Console.WriteLine("Player {0} wins!", Board.Opposite(board.CurrentPlayer));
             break;
         }
         Console.WriteLine(board.CurrentPlayer + "'s turn");
         board.AddPiece(CurrentPlayer.GetMove(board));
     }
 }