Пример #1
0
        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>());
            }
        }
Пример #2
0
        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();
        }
Пример #3
0
 public static double GetPieceValue(EnumPiece piece)
 {
     return(_pieceValues[(int)piece]);
 }
Пример #4
0
 public BoardPiece(EnumPlayer player, EnumPiece type)
 {
     Player = player;
     Piece  = type;
 }