X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fendgame.h;h=f2990e744d19a97ae19c2fa48f592f3afd360e0b;hp=ae3526fedaeae8777416c5fa7263ced01c7a618f;hb=3e20c6c07ddfe2d5f04cf268727ae466e3b36128;hpb=bb751d6c890f5c50c642366d601740366cfae8d0 diff --git a/src/endgame.h b/src/endgame.h index ae3526fe..f2990e74 100644 --- a/src/endgame.h +++ b/src/endgame.h @@ -1,17 +1,18 @@ /* - Glaurung, a UCI chess playing engine. - Copyright (C) 2004-2008 Tord Romstad + Stockfish, a UCI chess playing engine derived from Glaurung 2.1 + Copyright (C) 2004-2008 Tord Romstad (Glaurung author) + Copyright (C) 2008 Marco Costalba - Glaurung is free software: you can redistribute it and/or modify + Stockfish is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - - Glaurung is distributed in the hope that it will be useful, + + Stockfish is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -98,6 +99,20 @@ public: Value apply(const Position &pos); }; +// KBB vs KN: +class KBBKNEvaluationFunction : public EndgameEvaluationFunction { +public: + KBBKNEvaluationFunction(Color C); + Value apply(const Position &pos); +}; + +// K and two minors vs K and one or two minors: +class KmmKmEvaluationFunction : public EndgameEvaluationFunction { +public: + KmmKmEvaluationFunction(Color c); + Value apply(const Position &pos); +}; + /// Abstract base class for all evaluation scaling functions: @@ -204,6 +219,12 @@ extern KRKNEvaluationFunction EvaluateKRKN, EvaluateKNKR; // KQ vs KR: extern KQKREvaluationFunction EvaluateKQKR, EvaluateKRKQ; +// KBB vs KN: +extern KBBKNEvaluationFunction EvaluateKBBKN, EvaluateKNKBB; + +// K and two minors vs K and one or two minors: +extern KmmKmEvaluationFunction EvaluateKmmKm; + // KBP vs K: extern KBPKScalingFunction ScaleKBPK, ScaleKKBP;