KRKN, // KR vs KN
KQKP, // KQ vs KP
KQKR, // KQ vs KR
- KBBKN, // KBB vs KN
- KmmKm, // K and two minors vs K and one or two minors
// Scaling functions
struct EndgameBase {
virtual ~EndgameBase() {}
- virtual Color color() const = 0;
+ virtual Color strong_side() const = 0;
virtual T operator()(const Position&) const = 0;
};
struct Endgame : public EndgameBase<T> {
explicit Endgame(Color c) : strongSide(c), weakSide(~c) {}
- Color color() const { return strongSide; }
+ Color strong_side() const { return strongSide; }
T operator()(const Position&) const;
private: