Advertisement
dimipan80

PHP Chess

Apr 28th, 2015
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.44 KB | None | 0 0
  1. <?php
  2. $isValidChessBoard = true;
  3. if (!isset($_GET['board'])) {
  4.     $isValidChessBoard = false;
  5. }
  6. $boardRows = [];
  7. if ($isValidChessBoard) {
  8.     $boardRows = explode('/', $_GET['board']);
  9.     if (count($boardRows) != 8) {
  10.         $isValidChessBoard = false;
  11.     }
  12. }
  13.  
  14. $pieces = array('Bishop' => 0, 'Horseman' => 0, 'King' => 0, 'Pawn' => 0, 'Queen' => 0, 'Rook' => 0);
  15. $board = [];
  16. if ($isValidChessBoard) {
  17.     foreach ($boardRows as $row) {
  18.         $cells = explode('-', $row);
  19.         if (count($cells) != 8) {
  20.             $isValidChessBoard = false;
  21.             break;
  22.         }
  23.  
  24.         $board[] = $cells;
  25.         foreach ($cells as $cell) {
  26.             switch ($cell) {
  27.                 case 'B':
  28.                     $pieces['Bishop'] += 1;
  29.                     break;
  30.                 case 'H':
  31.                     $pieces['Horseman'] += 1;
  32.                     break;
  33.                 case 'K':
  34.                     $pieces['King'] += 1;
  35.                     break;
  36.                 case 'P':
  37.                     $pieces['Pawn'] += 1;
  38.                     break;
  39.                 case 'Q':
  40.                     $pieces['Queen'] += 1;
  41.                     break;
  42.                 case 'R':
  43.                     $pieces['Rook'] += 1;
  44.                     break;
  45.                 case ' ':
  46.                     break;
  47.                 default:
  48.                     $isValidChessBoard = false;
  49.                     break;
  50.             }
  51.         }
  52.     }
  53. }
  54.  
  55. if (!$isValidChessBoard) {
  56.     die('<h1>Invalid chess board</h1>');
  57. }
  58.  
  59. echo '<table>';
  60. foreach ($board as $tableRow) {
  61.     $textRow = '<tr>';
  62.     foreach ($tableRow as $tableCol) {
  63.         $textRow .= "<td>{$tableCol}</td>";
  64.     }
  65.     echo $textRow . '</tr>';
  66. }
  67. echo '</table>';
  68.  
  69. foreach ($pieces as $key => &$value) {
  70.     if ($value === 0) {
  71.         unset($pieces[$key]);
  72.     }
  73. }
  74.  
  75. echo json_encode($pieces);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement