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 48... Line 48...
48
  // for the given color. We have to provide the position in addition to the color
48
  // for the given color. We have to provide the position in addition to the color
49
  // because the scale factor may also be a function which should be applied to
49
  // because the scale factor may also be a function which should be applied to
50
  // the position. For instance, in KBP vs K endgames, the scaling function looks
50
  // the position. For instance, in KBP vs K endgames, the scaling function looks
51
  // for rook pawns and wrong-colored bishops.
51
  // for rook pawns and wrong-colored bishops.
52
  ScaleFactor scale_factor(const Position& pos, Color c) const {
52
  ScaleFactor scale_factor(const Position& pos, Color c) const {
53
    return   !scalingFunction[c]
53
    ScaleFactor sf = scalingFunction[c] ? (*scalingFunction[c])(pos)
54
          || (*scalingFunction[c])(pos) == SCALE_FACTOR_NONE ? ScaleFactor(factor[c])
54
                                        :  SCALE_FACTOR_NONE;
55
                                                             : (*scalingFunction[c])(pos);
55
    return sf != SCALE_FACTOR_NONE ? sf : ScaleFactor(factor[c]);
56
  }
56
  }
57
 
57
 
58
  Key key;
58
  Key key;
59
  int16_t value;
59
  int16_t value;
60
  uint8_t factor[COLOR_NB];
60
  uint8_t factor[COLOR_NB];