From: Fabian Fichter Date: Sat, 12 Jan 2019 14:39:03 +0000 (+0100) Subject: Expliclity set pocket size for minishogi X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=5a46158e0098d1b46769a079354e7703fdd13738;p=fairystockfish.git Expliclity set pocket size for minishogi For better compatility with XBoard/WinBoard. No functional change. --- diff --git a/src/ucioption.cpp b/src/ucioption.cpp index 35fc4f0..6c4e9f8 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -52,7 +52,7 @@ void on_variant_change(const Option &o) { sync_cout << "info string variant " << (std::string)o << " files " << v->maxFile + 1 << " ranks " << v->maxRank + 1 - << " pocket " << (v->pieceDrops ? v->pieceTypes.size() : 0) + << " pocket " << (v->pieceDrops ? (v->pocketSize ? v->pocketSize : v->pieceTypes.size()) : 0) << " template " << v->variantTemplate << " startpos " << v->startFen << sync_endl; diff --git a/src/variant.cpp b/src/variant.cpp index 1df0e35..73f76fb 100644 --- a/src/variant.cpp +++ b/src/variant.cpp @@ -241,6 +241,7 @@ VariantMap variants; // Global object Variant* minishogi_variant() { Variant* v = fairy_variant_base(); v->variantTemplate = "shogi"; + v->pocketSize = 5; v->maxRank = RANK_5; v->maxFile = FILE_E; v->reset_pieces(); @@ -269,8 +270,13 @@ VariantMap variants; // Global object v->stalemateValue = -VALUE_MATE; return v; } - Variant* kyotoshogi_variant() { + Variant* minishogi_variant_base() { Variant* v = minishogi_variant(); + v->pocketSize = 0; + return v; + } + Variant* kyotoshogi_variant() { + Variant* v = minishogi_variant_base(); v->add_piece(LANCE, 'l'); v->add_piece(SHOGI_KNIGHT, 'n'); v->startFen = "p+nks+l/5/5/5/+LSK+NP[-] w 0 1"; @@ -291,7 +297,7 @@ VariantMap variants; // Global object return v; } Variant* dobutsu_variant() { - Variant* v = minishogi_variant(); + Variant* v = minishogi_variant_base(); v->maxRank = RANK_4; v->maxFile = FILE_C; v->reset_pieces(); @@ -311,7 +317,7 @@ VariantMap variants; // Global object return v; } Variant* gorogoroshogi_variant() { - Variant* v = minishogi_variant(); + Variant* v = minishogi_variant_base(); v->maxRank = RANK_6; v->maxFile = FILE_E; v->startFen = "sgkgs/5/1ppp1/1PPP1/5/SGKGS[-] w 0 1"; @@ -319,7 +325,7 @@ VariantMap variants; // Global object return v; } Variant* judkinsshogi_variant() { - Variant* v = minishogi_variant(); + Variant* v = minishogi_variant_base(); v->maxRank = RANK_6; v->maxFile = FILE_F; v->add_piece(SHOGI_KNIGHT, 'n'); @@ -329,7 +335,7 @@ VariantMap variants; // Global object return v; } Variant* euroshogi_variant() { - Variant* v = minishogi_variant(); + Variant* v = minishogi_variant_base(); v->maxRank = RANK_8; v->maxFile = FILE_H; v->add_piece(EUROSHOGI_KNIGHT, 'n'); @@ -441,7 +447,7 @@ VariantMap variants; // Global object } #ifdef LARGEBOARDS Variant* shogi_variant() { - Variant* v = minishogi_variant(); + Variant* v = minishogi_variant_base(); v->maxRank = RANK_9; v->maxFile = FILE_I; v->add_piece(LANCE, 'l'); diff --git a/src/variant.h b/src/variant.h index c2e8d4a..537a608 100644 --- a/src/variant.h +++ b/src/variant.h @@ -33,6 +33,7 @@ struct Variant { std::string variantTemplate = "fairy"; + int pocketSize = 0; Rank maxRank = RANK_8; File maxFile = FILE_H; std::set pieceTypes = { PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING };