BR 'X...X...X|' . //Diag TR->BL '[^\.]{9}/i'; //Cat's game if ($pin == 'O') $pat = str_replace('X', 'O', $pat); return preg_match($pat, $board); } //Start $boardStr = isset($_GET['b'])? $_GET['b'] : $EMPTY_BOARD_STR; $turn = substr_count($boardStr, '.')%2==0? 'O' : 'X'; $oppTurn = $turn == 'X'? 'O' : 'X'; $gameOver = isGameOver($boardStr, $oppTurn); //Display board echo ''; echo ''; $p = 0; for ($r = 0; $r < ROW_NUM; $r++) { echo ''; for ($c = 0; $c < ROW_NUM; $c++) { $pin = $boardStr[$p]; echo ''; $p++; } echo ''; echo ''; } echo '
'; if ($gameOver || $pin != '.') echo '', $pin, ''; //Occupied else { //Available $boardDelta = $boardStr; $boardDelta[$p] = $turn; echo ''; echo $boardStr[$p]; echo ''; } echo '
'; echo 'Reset'; if ($gameOver) echo '

Game Over!

';