Exemple #1
0
 public static function genList($original, $recurse)
 {
     $board = new ChessBoard();
     $board->loadString($original);
     $outlist = array();
     //echo var_dump(debug_backtrace()) . "\n";
     for ($i = 1; $i < 9; $i++) {
         for ($j = 1; $j < 9; $j++) {
             if ($board->whiteTurn()) {
                 if ($board->get($i, $j) == ChessBoard::$WHITEPAWN) {
                     $piece = new Pawn($i, $j, $board, true);
                 } else {
                     if ($board->get($i, $j) == ChessBoard::$WHITEKING) {
                         $piece = new King($i, $j, $board, true);
                         $piece->setRecurse(recurse);
                     } else {
                         if ($board->get($i, $j) == ChessBoard::$WHITEKNIGHT) {
                             $piece = new Knight($i, $j, $board, true);
                         } else {
                             if ($board->get($i, $j) == ChessBoard::$WHITEROOK) {
                                 $piece = new Rook($i, $j, $board, true);
                             } else {
                                 if ($board->get($i, $j) == ChessBoard::$WHITEBISHOP) {
                                     $piece = new Bishop($i, $j, $board, true);
                                 } else {
                                     if ($board->get($i, $j) == ChessBoard::$WHITEQUEEN) {
                                         $piece = new Queen($i, $j, $board, true);
                                     } else {
                                         $piece = 0;
                                     }
                                 }
                             }
                         }
                     }
                 }
             } else {
                 if ($board->get($i, $j) == ChessBoard::$BLACKPAWN) {
                     $piece = new Pawn($i, $j, $board, false);
                 } else {
                     if ($board->get($i, $j) == ChessBoard::$BLACKKING) {
                         $piece = new King($i, $j, $board, false);
                         $piece->setRecurse(recurse);
                     } else {
                         if ($board->get($i, $j) == ChessBoard::$BLACKKNIGHT) {
                             $piece = new Knight($i, $j, $board, false);
                         } else {
                             if ($board->get($i, $j) == ChessBoard::$BLACKROOK) {
                                 $piece = new Rook($i, $j, $board, false);
                             } else {
                                 if ($board->get($i, $j) == ChessBoard::$BLACKBISHOP) {
                                     $piece = new Bishop($i, $j, $board, false);
                                 } else {
                                     if ($board->get($i, $j) == ChessBoard::$BLACKQUEEN) {
                                         $piece = new Queen($i, $j, $board, false);
                                     } else {
                                         $piece = 0;
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             if ($piece != 0) {
                 $list = $piece->generatePreList();
                 foreach ($list as $row) {
                     $temp = $piece->typeString();
                     $temp .= self::toAlg(substr($row, 68, 2)) . ",";
                     $temp .= self::toAlg(substr($row, 70, 2)) . ",";
                     $temp .= $row;
                     $outlist[] = $temp;
                 }
                 $piece = 0;
             }
         }
     }
     return $outlist;
 }