diff --git a/Grille.php b/Grille.php index 846fe71..7e35c3e 100644 --- a/Grille.php +++ b/Grille.php @@ -45,8 +45,6 @@ class Grille implements ArrayAccess $this->positions[] = [$x, $y]; } $this->nb_positions = count($this->positions); - - $this->dico = mots_espaces(max($hauteur, $largeur)); } public function get_ligne($y, $largeur) @@ -65,6 +63,23 @@ class Grille implements ArrayAccess return $colonne; } + public function genere($id) + { + mt_srand(crc32($id)); + + $this->dico = mots_espaces(max($this->hauteur, $this->largeur)); + + $grilles = $this->gen_grilles(); + $grilles->current(); + + if ($grilles->valid()) { + $this->save($id); + return true; + } else { + return false; + } + } + public function gen_grilles($i = 0, $lettres_ligne = NULL) { [$x, $y] = $this->positions[$i]; @@ -137,21 +152,6 @@ class Grille implements ArrayAccess } } - public function genere($id) - { - mt_srand(crc32($id)); - - $grilles = $this->gen_grilles(); - $grilles->current(); - - if ($grilles->valid()) { - $this->save($id); - return true; - } else { - return false; - } - } - public function hash() { $string = ""; @@ -182,6 +182,21 @@ class Grille implements ArrayAccess session_start(["use_cookies" => false]); $_SESSION["grille"] = (string)$this; + $_SESSION["dico"] = []; + foreach ($this->lignes as $y => $mots) { + foreach($mots as $mot) { + $longueur = strlen($mot); + if (!isset($_SESSION["dico"][$longueur])) $_SESSION["dico"][$longueur] = []; + $_SESSION["dico"][$longueur][$mot] = $this->dico[$longueur][$mot]; + } + } + foreach ($this->colonnes as $y => $mots) { + foreach($mots as $mot) { + $longueur = strlen($mot); + if (!isset($_SESSION["dico"][$longueur])) $_SESSION["dico"][$longueur] = []; + $_SESSION["dico"][$longueur][$mot] = $this->dico[$longueur][$mot]; + } + } } public function load($id) @@ -213,6 +228,8 @@ class Grille implements ArrayAccess }); } + $this->dico = $_SESSION["dico"]; + return true; } diff --git a/apercu.svg.php b/apercu.svg.php index 5e903ef..3165615 100644 --- a/apercu.svg.php +++ b/apercu.svg.php @@ -10,7 +10,7 @@ $cote = 20; // Dimensions du SVG $width = $colonnes * $cote; // Largeur proportionnelle au nombre de colonnes $height = $lignes * $cote; // Hauteur proportionnelle au nombre de lignes -$rectRadius = 7; // Rayon des coins arrondis du rectangle +$rectRadius = 20; // Rayon des coins arrondis du rectangle // Création du document XML $doc = new DOMDocument('1.0', 'UTF-8');