Advertisement
coasterka

04_PHPChess.php

Aug 26th, 2014
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.93 KB | None | 0 0
  1. <?php
  2. if(!isset($_GET['board'])):
  3.     invalidBoard();
  4. endif;
  5.  
  6. $inputStr = $_GET['board'];
  7. $rows = preg_split('/[\/]/', $inputStr);
  8.  
  9. if (sizeof($rows) != 8):
  10.     invalidBoard();
  11. endif;
  12.  
  13. $allPieces = preg_split('/[-\/]/', $inputStr);
  14. $resultTable = '';
  15. $resultTable .= "<table>";
  16.  
  17. foreach ($rows as $row):
  18.     $singlePieces = preg_split('/[-]/', $row);
  19.     if (count($singlePieces) != 8):
  20.         invalidBoard();
  21.     endif;
  22.     $resultTable .= "<tr>";
  23.     foreach ($singlePieces as $pieceIndex=>$piece):
  24.         if (strpos("RHBKQP ", $piece) === FALSE):
  25.             invalidBoard();
  26.         endif;
  27.         $resultTable .= "<td>$piece</td>";
  28.     endforeach;
  29.     $resultTable .= "</tr>";
  30. endforeach;
  31. $resultTable .= "</table>";
  32. echo $resultTable;
  33. $occurences = array_count_values($allPieces);
  34. foreach ($occurences as $key => $value):
  35.     if ($key === ' '):
  36.         unset($occurences[$key]);
  37.     endif;
  38.     switch($key):
  39.         case 'R':
  40.             $occurences['Rook'] = $occurences[$key];
  41.             unset($occurences[$key]);
  42.             break;
  43.         case 'H':
  44.             $occurences['Horseman'] = $occurences[$key];
  45.             unset($occurences[$key]);
  46.             break;
  47.         case 'B':
  48.             $occurences['Bishop'] = $occurences[$key];
  49.             unset($occurences[$key]);
  50.             break;
  51.         case 'K':
  52.             $occurences['King'] = $occurences[$key];
  53.             unset($occurences[$key]);
  54.             break;
  55.         case 'Q':
  56.             $occurences['Queen'] = $occurences[$key];
  57.             unset($occurences[$key]);
  58.             break;
  59.         case 'P':
  60.             $occurences['Pawn'] = $occurences[$key];
  61.             unset($occurences[$key]);
  62.             break;
  63.     endswitch;
  64.     $occurencesObj = new ArrayObject($occurences);
  65.     $occurencesObj->ksort();
  66. endforeach;
  67. echo json_encode($occurencesObj);
  68.  
  69. function invalidBoard() {
  70.     die ("<h1>Invalid chess board</h1>");
  71. }
  72. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement