<?php require("classes.php"); $gridStr = basename(strip_tags($_SERVER["REQUEST_URI"])); // URL contains grid if (preg_match("#^[1-9.]{81}$#", $gridStr)) { require("get_browser.php"); header("Vary: User-Agent"); ?> <!DOCTYPE html> <html lang='fr'> <head> <meta charset='utf-8' /> <meta name='viewport' content='width=device-width' /> <title>Sudoku</title> <link rel='stylesheet' type='text/css' href='style.css' /> <script src='sudoku.js'></script> </head> <body> <header> <h1>Sudoku</h1> </header> <form id='sudokuForm'> <div> <table id='grid' class='grid'> <tbody> <?php for ($row = 0; $row < 9; $row++) { ?> <tr> <?php for ($column = 0; $column < 9; $column++) { $value = $gridStr[9*$row+$column]; if ($value == UNKOWN) { $value = ""; $disabled = ""; } else { $disabled = "disabled"; } ?> <td> <input type='number' min='1' max='9' step='1' value='<?=$value?>' list='<?=$row.$column?>' <?=$disabled?>/> <datalist id='<?=$row.$column?>'></datalist> </td> <?php } ?> </tr> <?php } ?> </tbody> </table> </div> <div id='buttons' class='buttons'> <?php for($value=1; $value<=9; $value++) { echo " <button type='button' onclick='highlight(\"$value\")' accesskey='$value'>$value</button>\n"; } ?> </div> <div class='buttons'> <button type='reset'>Tout effacer</button> <button id='undoButton' type='button' onclick='undo()' disabled accesskey='z'>Annuler</button> <input id='colorPicker' type='color' title='Changer de couleur de stylo' value='#00008b'/> </div> </form> <section> Remplissez la grille de sorte que chaque ligne, colonne et région (carré de 3×3 cases) contienne tous les chiffres de 1 à 9. </section> <?php $userAgent=getBrowser(); if($userAgent["platform"] == "mac" || $userAgent["platform"] == "linux" || $userAgent["platform"] == "windows") { if($userAgent["platform"] == "mac") $keyboardShortcurt = "<kbd>Control</kbd> + <kbd>Alt</kbd>"; elseif($userAgent["platform"] == "linux" || $userAgent["platform"] == "windows") { if($userAgent["name"] == "Mozilla Firefox") $keyboardShortcurt = "<kbd>Alt</kbd> + <kbd>Maj</kbd>"; else $keyboardShortcurt = "<kbd>Alt</kbd>"; } ?> <section> <table class='shortcuts'> <caption>Raccourcis clavier</caption> <tbody> <tr> <td><?=$keyboardShortcurt?> + <kbd>1</kbd>~<kbd>9</kbd></td> <td>Surligner</td> </tr> <tr> <td><?=$keyboardShortcurt?> + <kbd>Z</kbd></td> <td>Annuler</td> </tr> <tr> <td><kbd>Tab</kbd>, <kbd>Maj</kbd> + <kbd>Tab</kbd></td> <td>Déplacement</td> </tr> </tbody> </table> </section> <?php } ?> <footer> <a href=''>Lien vers cette grille</a><br/> <a href='.'>Nouvelle grille</a> </footer> </body> </html> <?php } else { $grid = new Grid(); $grid->generate(); header("HTTP/1.0 400 Bad Request", true, 400); $urlDir = $_SERVER["REQUEST_SCHEME"] . "://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["DOCUMENT_URI"]); $urlExample = $urlDir . "/" . $grid->toString(); ?> <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <meta name='viewport' content='width=device-width' /> <title>Grille incorrecte</title> <link rel='stylesheet' type='text/css' href='style.css' /> </head> <body> <header> <h1>Grille incorrecte</h1> </header> L'adresse URL doit être de la forme : <?=$urlDir?>/<em>grille</em>,<br/> <em>grille</em> étant une suite de 81 caractères représentant la grille de gauche à droite puis de haut en bas, soit : <ul> <li>un chiffre entre 1 et 9 pour les cases connues</li> <li>un point pour les case vides</li> </ul> Exemple : <a href='<?=$urlExample?>'><?=$urlExample?></a><br/> </body> </html> <?php } ?>