Compare commits

..

No commits in common. "21e8f4134f8d429ef95e1f52d06495d00d9e0f55" and "ed5795a6ccb183d323c44030165aa81cd1bb15c0" have entirely different histories.

4 changed files with 15 additions and 24 deletions

View File

@ -6,9 +6,6 @@
<title>Requête incorrecte</title> <title>Requête incorrecte</title>
</head> </head>
<body> <body>
<nav class="navbar mb-4">
<h1 class="display-4 text-center m-auto">Sudoku</h1>
</nav>
<main class="container my-4"> <main class="container my-4">
<header> <header>
<h1 class="mb-4">Requête incorrecte</h1> <h1 class="mb-4">Requête incorrecte</h1>

View File

@ -48,7 +48,7 @@
} }
class Grid { class Grid {
function __construct($gridStr="") { function __construct() {
$this->boxes = array(); $this->boxes = array();
$this->rows = array_fill(0, 9, array()); $this->rows = array_fill(0, 9, array());
$this->columns = array_fill(0, 9, array()); $this->columns = array_fill(0, 9, array());
@ -74,12 +74,6 @@
if ($box != $neighbour && !in_array($neighbour, $box->neighbourhood)) if ($box != $neighbour && !in_array($neighbour, $box->neighbourhood))
$box->neighbourhood[] = $neighbour; $box->neighbourhood[] = $neighbour;
} }
if ($gridStr) {
$this->import($gridStr);
} else {
$this->generate();
}
} }
function import($gridStr) { function import($gridStr) {

View File

@ -1,19 +1,18 @@
<?php <?php
require("classes.php"); require("classes.php");
session_start();
global $sudokuGridSolutions;
if (!isset($sudokuGridSolutions)) $sudokuGridSolutions = array();
$fullUrl = $_SERVER["REQUEST_SCHEME"]."://".$_SERVER["HTTP_HOST"].$_SERVER["DOCUMENT_URI"]; $fullUrl = $_SERVER["REQUEST_SCHEME"]."://".$_SERVER["HTTP_HOST"].$_SERVER["DOCUMENT_URI"];
$dirUrl = dirname($fullUrl); $dirUrl = dirname($fullUrl);
$currentGrid = strip_tags($_SERVER['QUERY_STRING']); $currentGrid = strip_tags($_SERVER['QUERY_STRING']);
if (preg_match("/^[1-9.]{81}$/", $currentGrid)) { if (preg_match("/^[1-9.]{81}$/", $currentGrid)) {
if (!array_key_exists($currentGrid, $sudokuGridSolutions)) { if (!array_key_exists($currentGrid, $_SESSION)) {
$grid = new Grid($currentGrid); $grid = new Grid();
$sudokuGridSolutions[$currentGrid] = $grid->containsDuplicates() ? -1 : $grid->countSolutions(2); $grid->import($currentGrid);
$_SESSION[$currentGrid] = $grid->containsDuplicates() ? -1 : $grid->countSolutions(2);
} }
switch($sudokuGridSolutions[$currentGrid]) { switch($_SESSION[$currentGrid]) {
case -1: case -1:
$warning = "Cette grille contient des doublons."; $warning = "Cette grille contient des doublons.";
break; break;
@ -28,9 +27,10 @@
require("sudoku.php"); require("sudoku.php");
} else { } else {
$grid = new Grid(); $grid = new Grid();
$grid->generate();
$gridAsString = $grid->toString(); $gridAsString = $grid->toString();
$newGridUrl = "$dirUrl/?$gridAsString"; $newGridUrl = "$dirUrl/?$gridAsString";
$sudokuGridSolutions[$gridAsString] = 1; $_SESSION[$gridAsString] = 1;
if ($currentGrid) { if ($currentGrid) {
require("400.php"); require("400.php");
} else { } else {