From 6ee909914d7aca7c88d8247417d8c9b4ef033c79 Mon Sep 17 00:00:00 2001 From: adrien Date: Tue, 6 May 2025 15:55:58 +0200 Subject: [PATCH] WIP --- Grille.php | 3 +++ Trie.php | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Grille.php b/Grille.php index 9523996..a8c5d1f 100644 --- a/Grille.php +++ b/Grille.php @@ -59,6 +59,9 @@ class Grille implements ArrayAccess { array_keys($lettres_suivantes_ligne->noeud), array_keys($lettres_suivantes_colonne->noeud) ); + foreach($lettres_communes as $lettre => $_) { + $lettres_communes[$lettre] = count($lettres_suivantes_colonne[$lettre]) * count($lettres_suivantes_colonne[$lettre]); + } usort($lettres_communes, function ($a, $b) { return mt_rand(-1, 1); }); diff --git a/Trie.php b/Trie.php index 4b25925..cd783e1 100644 --- a/Trie.php +++ b/Trie.php @@ -1,9 +1,10 @@ noeud[$cle])) $this->noeud[$cle] = new Trie(); + $this->nb_branches++; if (count($cles)) { $this->noeud[$cle]->offsetSet($cles, $valeur); } else { @@ -47,8 +49,12 @@ class Trie implements ArrayAccess, IteratorAggregate //, Countable //, Iterator public function offsetUnset($cles): void { if ($this->offsetExists($cles)) { $cle = array_shift($cles); + $this->nb_branches--; if (count($cles)) { $this->noeud[$cle]->offsetUnset($cles); + if (count($this->noeud[$cle]) == 0) { + unset($this->noeud[$cle]); + } } else { unset($this->noeud[$cle]); } @@ -67,4 +73,11 @@ class Trie implements ArrayAccess, IteratorAggregate //, Countable //, Iterator } } } -} \ No newline at end of file + + // Countable + public function count(): int { + return $this->nb_branches; + } +} + +