Fix bug in Phoenix captures
authorH.G. Muller <h.g.muller@hccnet.nl>
Fri, 18 Jan 2013 14:02:55 +0000 (15:02 +0100)
committerH.G. Muller <h.g.muller@hccnet.nl>
Fri, 18 Jan 2013 14:02:55 +0000 (15:02 +0100)
Jumping pieces would capture as Knight when the victim was also attacked
b a Lion.

hachu.c

diff --git a/hachu.c b/hachu.c
index 68c0a6c..dcf4842 100644 (file)
--- a/hachu.c
+++ b/hachu.c
@@ -1460,7 +1460,7 @@ GenCapts(int sqr, int victimValue)
     for(i=0; i<8; i++) {    // scan all knight jumps to locate source\r
       int x = sqr - nStep[i], attacker = board[x];\r
       if(attacker == EMPTY || (attacker & TYPE) != stm) continue;\r
-      if(p[attacker].range[i] <= N && p[attacker].range[i] >= S) { // has Knight jump in our direction\r
+      if(p[attacker].range[i] <= N && p[attacker].range[i] >= S && p[attacker].range[i] != J) { // has Knight jump in our direction\r
        NewCapture(x, sqr + victimValue, p[attacker].promoFlag);   // plain jump (as in N)\r
        if(p[attacker].range[i] < N) { // Lion power; generate double captures over two possible intermediates\r
          int v = kStep[i]; // leftish path\r