diff --git a/Grille.php b/Grille.php index 73b7118..31dbed5 100644 --- a/Grille.php +++ b/Grille.php @@ -66,10 +66,13 @@ class Grille implements ArrayAccess { [$x, $y] = $this->positions[$i]; + // Recherche de la prochaine lettre possible sur la case courante + // en ligne if ($x == 0) { $lettres_ligne = $this->lettres_suivantes[$this->largeur]; } + // en colonne $lettres_colonne = $this->lettres_suivantes[$this->hauteur]; for ($y2 = 0; $y2 < $y; $y2++) { $lettres_colonne = $lettres_colonne->noeud[$this->grille[$y2][$x]]; @@ -89,6 +92,16 @@ class Grille implements ArrayAccess foreach ($lettres_communes as $lettre => $_) { $this->grille[$y][$x] = $lettre; + // Omission des lettres isolées + if ($lettre == " " && + ($y - 2 < 0 || $this->grille[$y - 2][$x] == " ") && + ($y - 1 < 0 || $x - 1 < 0 || $this->grille[$y - 1][$x - 1] == " ") && + ($y - 1 < 0 || $x + 1 >= $this->largeur || $this->grille[$y - 1][$x + 1] == " ") + ) { + continue; + } + + // Omission des doublons $mots = []; if ($x == $this->largeur - 1) $mots = explode(" ", $this->get_ligne($y, $this->largeur)); else if ($lettre == " ") $mots = explode(" ", $this->get_ligne($y, $x)); diff --git a/index.php b/index.php index 4e4c768..329e48f 100644 --- a/index.php +++ b/index.php @@ -3,10 +3,10 @@ include_once "dico.php"; include_once "Grille.php"; -const HAUTEUR_DEFAUT = 6; +const HAUTEUR_DEFAUT = 8; const HAUTEUR_MIN = 2; const HAUTEUR_MAX = 10; -const LARGEUR_DEFAUT = 6; +const LARGEUR_DEFAUT = 8; const LARGEUR_MIN = 2; const LARGEUR_MAX = 10;