Fixed problem with invalid castle moves

This commit is contained in:
DHTMLGoodies
2013-02-20 18:01:34 +01:00
parent 4908d2f94b
commit 8f4fa18895
2 changed files with 27 additions and 1 deletions

View File

@@ -393,6 +393,9 @@ class FenParser0x88
}
if ($kingSideCastle
&& !($this->cache['board'][$piece['s']+1])
&& !($this->cache['board'][$piece['s']+2])
&& ($this->cache['board'][$piece['s']+3])
&& !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s']])
&& ($piece['s'] < 118 && !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s'] + 1]))
&& ($piece['s'] < 117 && !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s'] + 2]))
@@ -401,7 +404,12 @@ class FenParser0x88
}
if ($queenSideCastle && $piece['s'] - 2 != -1 && !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s']]) && !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s'] - 1]) && !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s'] - 2])) {
if ($queenSideCastle && $piece['s'] - 2 != -1
&& !($this->cache['board'][$piece['s']-1])
&& !($this->cache['board'][$piece['s']-2])
&& !($this->cache['board'][$piece['s']-3])
&& ($this->cache['board'][$piece['s']-4])
&& !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s']]) && !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s'] - 1]) && !strstr($protectiveMoves, Board0x88Config::$keySquares[$piece['s'] - 2])) {
$paths[] = $piece['s'] - 2;
}
break;