Support nocastle chess
authorFabian Fichter <ianfab@users.noreply.github.com>
Tue, 31 Dec 2019 12:29:56 +0000 (13:29 +0100)
committerFabian Fichter <ianfab@users.noreply.github.com>
Tue, 31 Dec 2019 12:29:56 +0000 (13:29 +0100)
src/ucioption.cpp
src/variant.cpp

index a01d6d2..9d464a6 100644 (file)
@@ -45,7 +45,7 @@ namespace UCI {
 
 // standard variants of XBoard/WinBoard
 std::set<string> standard_variants = {
-    "normal", "fischerandom", "3check", "makruk", "shatranj",
+    "normal", "nocastle", "fischerandom", "3check", "makruk", "shatranj",
     "asean", "seirawan", "crazyhouse", "bughouse", "suicide", "giveaway", "losers",
     "capablanca", "gothic", "janus", "caparandom", "grand", "shogi", "xiangqi"
 };
index 1d9ce18..7615515 100644 (file)
@@ -47,6 +47,12 @@ namespace {
         v->chess960 = true;
         return v;
     }
+    Variant* nocastle_variant() {
+        Variant* v = chess_variant();
+        v->startFen = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w - - 0 1";
+        v->castling = false;
+        return v;
+    }
     Variant* fairy_variant() {
         Variant* v = chess_variant();
         v->add_piece(SILVER, 's');
@@ -791,6 +797,7 @@ void VariantMap::init() {
     add("chess", chess_variant());
     add("normal", chess_variant());
     add("fischerandom", chess960_variant());
+    add("nocastle", nocastle_variant());
     add("fairy", fairy_variant()); // fairy variant used for endgame code initialization
     add("makruk", makruk_variant());
     add("cambodian", cambodian_variant());