X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=hachu.c;h=b39efbf3b797e3437a95c2ec01c66c315eff0eb6;hb=aa576650ea406a2b26134ac64a699e3237a02444;hp=84f7249b5719017c6263ea4944ea5885e9857161;hpb=7f4e90428b8f436483fe19d86d81b4acc67929ef;p=hachu.git diff --git a/hachu.c b/hachu.c index 84f7249..b39efbf 100644 --- a/hachu.c +++ b/hachu.c @@ -10,7 +10,7 @@ // promotions by pieces with Lion power stepping in & out the zone in same turn // promotion on capture -#define VERSION "0.17" +#define VERSION "0.18" //define PATH level==0 /*|| path[0] == 0x3490a && (level==1 || path[1] == 0x285b3 && (level == 2 || path[2] == 0x8710f && (level == 3 /*|| path[3] == 0x3e865 && (level == 4 || path[4] == 0x4b865 && (level == 5)))))*/ #define PATH 0 @@ -437,10 +437,10 @@ typedef enum { V_CHESS, V_SHO, V_CHU, V_DAI, V_DADA, V_MAKA, V_TAI, V_KYOKU, V_T #define SAME (-1) VariantDesc variants[] = { - { 16, 8, 8, 1, V_CHESS, "normal", chessArray }, // FIDE + { 24, 12, 12, 4, V_CHU, "chu", chuArray }, // Chu + { 16, 8, 8, 1, V_CHESS, "nocastle", chessArray }, // FIDE { 18, 9, 9, 3, V_SHO, "9x9+0_shogi", shoArray }, // Sho { 18, 9, 9, 3, V_SHO, "sho", shoArray }, // Sho duplicat - { 24, 12, 12, 4, V_CHU, "chu", chuArray }, // Chu { 30, 15, 15, 5, V_DAI, "dai", daiArray }, // Dai { 32, 16, 16, 5, V_TENJIKU, "tenjiku", tenArray }, // Tenjiku { 16, 8, 8, 1, V_SHATRANJ,"shatranj",shatArray}, // Shatranj @@ -1122,7 +1122,7 @@ GenNonCapts (int promoSuppress) } } else if(r == M) { // FIDE Pawn; check double-move - if(!NewNonCapture(x, x+v, pFlag) && chessFlag && promoBoard[x-v]) + if(!NewNonCapture(x, x+v, pFlag) && chessFlag && promoBoard[x-v] & LAST_RANK) NewNonCapture(x, x+2*v, pFlag), moveStack[msp-1] |= DEFER; // use promoSuppress flag as e.p. flag } continue;