Précision dans la doc sur la création de la liste des mots à trouver

This commit is contained in:
JonathanMM 2025-06-23 21:51:16 +02:00
commit 1274ccd308
2 changed files with 23 additions and 22 deletions

View file

@ -1,14 +1,19 @@
# Créer liste des mots à trouver
Pour définir la liste des mots qui vont être utilisé par le système, il est nécessaire de créer un fichier data/motsATrouve.txt. Ce fichier doit contenir un mot par ligne, de préférence en minuscule.
Pour définir la liste des mots qui vont être utilisé par le système, il est nécessaire de créer un fichier data/motsATrouve.txt. Ce fichier doit contenir un mot
par ligne, de préférence en minuscule.
Puis, lancer la commande suivante :
Puis, lancer les commandes suivantes :
```sh
npx tsc
node utils/nettoyageATrouver.js
node utils/melangerATrouver.js
```
Ce script va vérifier que les mots se trouvent bien dans le dictionnaire, avant de mélanger le fichier et de le mettre dans le format attendu. Le résultat sera placé dans le même fichier, qui va être utilisé ensuite par le script quotidien ./cron.sh. Le mélange ne concernera que les mots qui ne sont pas sorti, à partir du surlendemain.
Ce script va vérifier que les mots se trouvent bien dans le dictionnaire, avant de mélanger le fichier et de le mettre dans le format attendu. Le résultat sera
placé dans le même fichier, qui va être utilisé ensuite par le script quotidien ./cron.sh. Le mélange ne concernera que les mots qui ne sont pas sorti, à partir
du surlendemain.
## Règles du mélange
@ -17,4 +22,5 @@ Dans la mesure du possible, lors du mélange, les règles suivantes vont être r
- La longueur du mot est différente de celle du mot précédent,
- L'initial du mot est différente de l'initiale des cinq mots précédents.
Le script tire un mot au hasard, et regarde s'il respecte les règles. Si oui, il est gardé, sinon, un autre est tiré. Au bout d'un certain nombre d'echec, le script abandonne, et va juste placer les mots non encore tiré à la fin du fichier.
Le script tire un mot au hasard, et regarde s'il respecte les règles. Si oui, il est gardé, sinon, un autre est tiré. Au bout d'un certain nombre d'echec, le
script abandonne, et va juste placer les mots non encore tiré à la fin du fichier.

View file

@ -28,28 +28,27 @@ let origine = instanceConfiguration.default.dateOrigine.getTime();
let numeroGrille = Math.floor((aujourdhui - origine) / (24 * 3600 * 1000));
const maxFige = numeroGrille + 1; // inclus
console.log(maxFige);
fs.readFile("data/motsATrouve.txt", "UTF8", function (erreur, contenu) {
//console.log(erreur);
var dictionnaire = contenu.split("\n");
let motsFiges = dictionnaire.slice(0, maxFige + 1);
let motsMelanges = shuffle(dictionnaire.slice(maxFige + 1));
contenu = "public static readonly Liste: Array<string> = [\n";
contenu +=
contenu =
motsFiges
.map(
(mot) =>
'"' +
mot
.normalize("NFD")
.replace(/\p{Diacritic}/gu, "")
.toUpperCase() +
'",'
.map((mot) =>
mot
.normalize("NFD")
.replace(/\p{Diacritic}/gu, "")
.toUpperCase()
)
.join("\n") + "\n";
contenu += motsMelanges
.map((mot) => mot.normalize("NFD").replace(/\p{Diacritic}/gu, ""))
.map((mot) =>
mot
.normalize("NFD")
.replace(/\p{Diacritic}/gu, "")
.toUpperCase()
)
.filter(
(mot) =>
mot &&
@ -66,12 +65,8 @@ fs.readFile("data/motsATrouve.txt", "UTF8", function (erreur, contenu) {
!mot.toUpperCase().startsWith("Z") &&
listeMotsProposable.default.Dictionnaire.includes(mot)
)
.map(function (mot) {
return '"' + mot.toUpperCase() + '",';
})
.join("\n");
contenu += "\n]";
fs.writeFile("data/motsATrouveNettoyes.txt", contenu, function (err) {
fs.writeFile("data/motsATrouve.txt", contenu, function (err) {
if (err) {
console.error(err);
return;