public List <Position> GetMoves(Position current, EnumPlayer player, EnumPiece piece) { switch (piece) { case EnumPiece.Bishop: return(GetBishopMoveOptions(current, player)); case EnumPiece.King: return(new List <Position>()); case EnumPiece.Knight: return(GetKnightMoveOptions(current, player)); case EnumPiece.Pawn: return(GetPawnMoveOptions(current, player)); case EnumPiece.Queen: return(GetQueenMoveOptions(current, player)); case EnumPiece.Rook: return(GetRookMoveOptions(current, player)); default: return(new List <Position>()); } }
public void ArrayVsDictionarySpeed() { var asArray = StateEvaluator.GetPieceValuesArray(); var asDict = StateEvaluator.GetPieceValuesDict(); var sw = System.Diagnostics.Stopwatch.StartNew(); int maxItr = 10000000; double sum1 = 0; for (int i = 0; i < maxItr; i++) { EnumPiece j = (EnumPiece)(i % asArray.Length); //int j = i % asArray.Length; sum1 += asArray[(int)j]; } var t1 = sw.Elapsed.TotalMilliseconds; sw.Restart(); double sum2 = 0; for (int i = 0; i < maxItr; i++) { EnumPiece j = (EnumPiece)(i % asArray.Length); sum2 += asDict[j]; } var t2 = sw.Elapsed.TotalMilliseconds; sw.Restart(); double sum3 = 0; for (int i = 0; i < maxItr; i++) { EnumPiece j = (EnumPiece)(i % asArray.Length); sum3 += StateEvaluator.GetPieceValue(j); } var t3 = sw.Elapsed.TotalMilliseconds; sw.Restart(); }
public static double GetPieceValue(EnumPiece piece) { return(_pieceValues[(int)piece]); }
public BoardPiece(EnumPlayer player, EnumPiece type) { Player = player; Piece = type; }