Code comments and minor refactoring

This commit is contained in:
DHTMLGoodies
2015-12-31 02:32:28 +01:00
parent 2b0d0c9536
commit 3ec671f536

View File

@@ -6,6 +6,13 @@ class FenParser0x88
private $previousFen; private $previousFen;
private $cache; private $cache;
private $piecesInvolved;
private $notation;
private $validMoves = null;
private $fenParts = array();
private $longNotation;
public function __construct($fen = null) public function __construct($fen = null)
{ {
if (isset($fen)) { if (isset($fen)) {
@@ -19,7 +26,6 @@ class FenParser0x88
$this->setFen($fen); $this->setFen($fen);
} }
private $fenParts = array();
/** /**
* Set new fen position * Set new fen position
@@ -47,7 +53,6 @@ class FenParser0x88
$this->parseFen(); $this->parseFen();
} }
private $longNotation;
public function getLongNotation() public function getLongNotation()
{ {
@@ -240,7 +245,7 @@ class FenParser0x88
* @param string $color * @param string $color
* @return array * @return array
*/ */
function getKing($color) public function getKing($color)
{ {
return $this->cache['king' . $color]; return $this->cache['king' . $color];
} }
@@ -252,7 +257,7 @@ class FenParser0x88
* @param $color * @param $color
* @return array * @return array
*/ */
function getPiecesOfAColor($color) public function getPiecesOfAColor($color)
{ {
return $this->cache[$color]; return $this->cache[$color];
} }
@@ -271,6 +276,11 @@ class FenParser0x88
$this->fenParts['enPassant'] = $square; $this->fenParts['enPassant'] = $square;
} }
/**
* Returns array of sliding pieces(i.e. bishop, rook and queens)
* @param string $color
* @return array
*/
function getSlidingPieces($color) function getSlidingPieces($color)
{ {
return $this->cache[$color . 'Sliding']; return $this->cache[$color . 'Sliding'];
@@ -348,7 +358,7 @@ class FenParser0x88
$this->fenParts['color'] = $this->fenParts['color'] == 'w' ? 'b' : 'w'; $this->fenParts['color'] = $this->fenParts['color'] == 'w' ? 'b' : 'w';
} }
function getColorCode() private function getColorCode()
{ {
return $this->fenParts['color']; return $this->fenParts['color'];
} }
@@ -380,11 +390,23 @@ class FenParser0x88
return ($this->fenParts['castleCode'] & $code) ? true : false; return ($this->fenParts['castleCode'] & $code) ? true : false;
} }
/**
* Returns true if two squares are on the same rank.
* @param int $square1
* @param int $square2
* @return bool
*/
function isOnSameRank($square1, $square2) function isOnSameRank($square1, $square2)
{ {
return ($square1 & 240) === ($square2 & 240); return ($square1 & 240) === ($square2 & 240);
} }
/**
* Returns true if two squares are on the same file
* @param int $square1
* @param int $square2
* @return bool
*/
function isOnSameFile($square1, $square2) function isOnSameFile($square1, $square2)
{ {
return ($square1 & 15) === ($square2 & 15); return ($square1 & 15) === ($square2 & 15);
@@ -635,7 +657,8 @@ class FenParser0x88
return $this->validMoves; return $this->validMoves;
} }
function excludeInvalidSquares($squares, $validSquares)
private function excludeInvalidSquares($squares, $validSquares)
{ {
$ret = array(); $ret = array();
for ($i = 0, $len = count($squares); $i < $len; $i++) { for ($i = 0, $len = count($squares); $i < $len; $i++) {
@@ -646,7 +669,11 @@ class FenParser0x88
return $ret; return $ret;
} }
/* This method returns a commaseparated string of moves since it's faster to work with than arrays*/ /**
* Returns comma-separated string of moves(since it's faster to work with than arrays).
* @param string $color
* @return string
*/
function getCaptureAndProtectiveMoves($color) function getCaptureAndProtectiveMoves($color)
{ {
$ret = array(); $ret = array();
@@ -1371,9 +1398,6 @@ class FenParser0x88
} }
private $piecesInvolved;
private $notation;
private $validMoves = null;
function moveByLongNotation($notation){ function moveByLongNotation($notation){
@@ -1433,7 +1457,7 @@ class FenParser0x88
} }
function setCastle($castle) private function setCastle($castle)
{ {
if (!$castle) { if (!$castle) {
$castle = '-'; $castle = '-';
@@ -1458,7 +1482,7 @@ class FenParser0x88
return $this->fenParts['castleCode']; return $this->fenParts['castleCode'];
} }
function updateBoardData($move) private function updateBoardData($move)
{ {
$move = array( $move = array(
@@ -1546,7 +1570,7 @@ class FenParser0x88
} }
function updateCastleForMove($movedPiece, $from) private function updateCastleForMove($movedPiece, $from)
{ {
switch ($movedPiece) { switch ($movedPiece) {
case 0x03: case 0x03:
@@ -1576,7 +1600,7 @@ class FenParser0x88
} }
function updatePieces() private function updatePieces()
{ {
$this->cache['white'] = array(); $this->cache['white'] = array();
$this->cache['black'] = array(); $this->cache['black'] = array();
@@ -1600,17 +1624,18 @@ class FenParser0x88
} }
} }
function incrementFullMoves() private function incrementFullMoves()
{ {
$this->fenParts['fullMoves']++; $this->fenParts['fullMoves']++;
} }
function incrementHalfMoves()
private function incrementHalfMoves()
{ {
$this->fenParts['halfMoves']++; $this->fenParts['halfMoves']++;
} }
function resetHalfMoves() private function resetHalfMoves()
{ {
$this->fenParts['halfMoves'] = 0; $this->fenParts['halfMoves'] = 0;
} }
@@ -1625,7 +1650,11 @@ class FenParser0x88
return $this->notation; return $this->notation;
} }
function getFen() /**
* Returns FEN for current position
* @return string
*/
public function getFen()
{ {
if (!$this->fen) { if (!$this->fen) {
$this->fen = $this->getNewFen(); $this->fen = $this->getNewFen();
@@ -1633,18 +1662,14 @@ class FenParser0x88
return $this->fen; return $this->fen;
} }
function getNotationForAMove($move) private function getNotationForAMove($move)
{ {
$move['from'] = Board0x88Config::$mapping[$move['from']]; $move['from'] = Board0x88Config::$mapping[$move['from']];
$move['to'] = Board0x88Config::$mapping[$move['to']]; $move['to'] = Board0x88Config::$mapping[$move['to']];
$type = $this->cache['board'][$move['from']]; $type = $this->cache['board'][$move['from']];
$ret = Board0x88Config::$notationMapping[$this->cache['board'][$move['from']]]; $ret = Board0x88Config::$notationMapping[$this->cache['board'][$move['from']]];
switch ($type) { switch ($type) {
case 0x01: case 0x01:
case 0x09: case 0x09: