Subversion Repositories Games.Chess Giants

Rev

Rev 96 | Rev 169 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 96 Rev 154
Line 28... Line 28...
28
using namespace std;
28
using namespace std;
29
 
29
 
30
namespace {
30
namespace {
31
 
31
 
32
  // Polynomial material imbalance parameters
32
  // Polynomial material imbalance parameters
33
 
-
 
34
  //                      pair  pawn knight bishop rook queen
-
 
35
  const int Linear[6] = { 1667, -168, -1027, -166,  238, -138 };
-
 
36
 
33
 
37
  const int QuadraticOurs[][PIECE_TYPE_NB] = {
34
  const int QuadraticOurs[][PIECE_TYPE_NB] = {
38
    //            OUR PIECES
35
    //            OUR PIECES
39
    // pair pawn knight bishop rook queen
36
    // pair pawn knight bishop rook queen
40
    {   0                               }, // Bishop pair
37
    {1667                               }, // Bishop pair
41
    {  40,    2                         }, // Pawn
38
    {  40,    2                         }, // Pawn
42
    {  32,  255,  -3                    }, // Knight      OUR PIECES
39
    {  32,  255,  -3                    }, // Knight      OUR PIECES
43
    {   0,  104,   4,    0              }, // Bishop
40
    {   0,  104,   4,    0              }, // Bishop
44
    { -26,   -2,  47,   105,  -149      }, // Rook
41
    { -26,   -2,  47,   105,  -149      }, // Rook
45
    {-185,   24, 122,   137,  -134,   0 }  // Queen
42
    {-185,   24, 122,   137,  -134,   0 }  // Queen
Line 98... Line 95...
98
    for (int pt1 = NO_PIECE_TYPE; pt1 <= QUEEN; ++pt1)
95
    for (int pt1 = NO_PIECE_TYPE; pt1 <= QUEEN; ++pt1)
99
    {
96
    {
100
        if (!pieceCount[Us][pt1])
97
        if (!pieceCount[Us][pt1])
101
            continue;
98
            continue;
102
 
99
 
103
        int v = Linear[pt1];
100
        int v = 0;
104
 
101
 
105
        for (int pt2 = NO_PIECE_TYPE; pt2 <= pt1; ++pt2)
102
        for (int pt2 = NO_PIECE_TYPE; pt2 <= pt1; ++pt2)
106
            v +=  QuadraticOurs[pt1][pt2] * pieceCount[Us][pt2]
103
            v +=  QuadraticOurs[pt1][pt2] * pieceCount[Us][pt2]
107
                + QuadraticTheirs[pt1][pt2] * pieceCount[Them][pt2];
104
                + QuadraticTheirs[pt1][pt2] * pieceCount[Them][pt2];
108
 
105