public async Task <ChessMove> GetBestMoveAsync(PieceColor color, int depth, bool isCheck) { int boardstates = ChessLogic.BoardStatesChecked; ChessMove bestMove = await Task.Run(() => ChessLogic.GetBestMove(grid, color, depth, isCheck, out float highscore)); Debug.Log(string.Format("evalulated {0} boardstates", ChessLogic.BoardStatesChecked - boardstates)); return(bestMove); }
public List <ChessMove> GetPossibleMoves(ChessPiece piece) { return(ChessLogic.GetMoves(grid, piece, true)); }
public float GetValue(PieceColor color) { return(ChessLogic.GetStateValue(grid, color)); }
public CheckStatus CheckForCheck(PieceColor friendly, PieceColor enemy) { return(ChessLogic.CheckForCheck(grid, friendly, enemy)); }