Générez une grille de mots mêlés reproductible
Transformez une liste en grille complète de mots mêlés sans placer chaque lettre manuellement.
Lancer gratuitement
Indiquez les mots, la taille carrée et une graine entière : le générateur les dispose horizontalement, verticalement ou en diagonale, autorise les croisements de lettres compatibles et remplit les cases restantes de manière reproductible. La réponse contient les lignes achevées et les coordonnées exactes. Elle convient donc aux exercices imprimés, aux tests automatisés, aux supports pédagogiques et aux applications qui exigent une énigme stable accompagnée d’un corrigé fiable.
Préparez les mots et choisissez les dimensions
Commencez par un à vingt mots distincts composés des lettres anglaises A à Z. La casse ne modifie pas la grille, car chaque terme accepté est converti en majuscules avant son placement. Définissez <code>grid_size</code> comme le nombre de lignes et de colonnes du carré, entre 2 et 25. Le mot le plus long ne peut pas dépasser cette dimension : six lettres nécessitent au moins six cases puisque chaque terme suit une ligne droite. Une grande grille laisse davantage d’espace et de lettres de remplissage, tandis qu’un format compact favorise les croisements. Si l’ensemble ne tient pas, augmentez la taille ou raccourcissez la liste. Les doublons sont refusés après normalisation afin d’éviter des entrées ambiguës dans le corrigé. Les espaces, traits d’union, accents, chiffres et signes sont également refusés : chaque case contient ainsi un seul caractère prévisible, facile à afficher et à comparer.
Employez une graine pour reproduire toute la grille
Le champ <code>seed</code> gouverne tous les choix qui paraîtraient autrement aléatoires. Pour chaque mot, le générateur recense les positions valides vers l’est, l’ouest, le nord, le sud et dans les quatre diagonales, puis les ordonne grâce à une séquence pseudo-aléatoire issue de la graine. Il traite les mots les plus longs en premier et revient en arrière de façon déterministe lorsqu’un placement bloque un terme ultérieur. Deux mots peuvent partager une case uniquement s’ils réclament la même lettre, ce qui préserve la lisibilité. Après le placement complet, la même séquence produit les lettres des cases libres. Les mêmes mots, dans le même ordre, avec la même taille et la même graine redonnent donc exactement la même réponse. Cette graine sert à reproduire un résultat ; elle ne fournit ni secret ni hasard cryptographique.
Lisez le résultat et constituez le corrigé
La réponse fournit <code>grid</code> sous forme d’un tableau de chaînes de longueur identique, à raison d’une chaîne par ligne. Vous pouvez les afficher avec une police à chasse fixe ou découper chaque chaîne en caractères pour créer des cases. Les coordonnées de <code>placements</code> commencent à zéro : <code>row: 0</code> et <code>column: 0</code> désignent le coin supérieur gauche. <code>E</code> et <code>W</code> correspondent à l’horizontale, <code>N</code> et <code>S</code> à la verticale, et <code>NE</code>, <code>NW</code>, <code>SE</code> et <code>SW</code> aux diagonales. Les placements conservent l’ordre de la liste envoyée, même si la recherche commence par les termes longs. Masquez-les aux joueurs et gardez-les comme corrigé, ou servez-vous-en pour surligner les réponses. Si aucun arrangement complet n’existe, un message d’entrée invalide remplace toute grille partielle.
Cas d’usage
Créez des fiches pédagogiques
Produisez une énigme stable pour les élèves et conservez séparément les placements comme corrigé.
Développez un jeu interactif
Affichez des cases sélectionnables et vérifiez chaque mot marqué grâce aux coordonnées et directions.
Préparez des fixtures reproductibles
Stockez une liste compacte et une graine, puis reconstruisez la grille exacte à chaque test.
Questions fréquentes
Quel est le prix d’une requête API ?
L’API coûte $0.002 par grille ; le même générateur fonctionne aussi gratuitement dans le navigateur.
Une même graine produit-elle toujours la même énigme ?
Oui, si les mots, leur ordre, la taille et la graine sont strictement identiques.
Quelles orientations sont disponibles ?
Les mots peuvent aller dans les deux sens horizontalement, verticalement et en diagonale, soit huit codes.
Deux mots peuvent-ils partager des lettres ?
Oui. Ils peuvent se croiser lorsque tous deux exigent le même caractère dans la case.
Que se passe-t-il si les mots ne tiennent pas ?
Le générateur renvoie une erreur d’entrée, jamais une grille partielle ; agrandissez-la ou réduisez la liste.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/game/word-search-grid-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"words":["ORBIT","MOON","STAR"],"grid_size":8,"seed":42}'const res = await fetch("https://api.kit.forhosting.com/game/word-search-grid-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"words": [
"ORBIT",
"MOON",
"STAR"
],
"grid_size": 8,
"seed": 42
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/word-search-grid-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"words": [
"ORBIT",
"MOON",
"STAR"
],
"grid_size": 8,
"seed": 42
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/word-search-grid-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"words":["ORBIT","MOON","STAR"],"grid_size":8,"seed":42}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"words":["ORBIT","MOON","STAR"],"grid_size":8,"seed":42}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/word-search-grid-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"words": [
"ORBIT",
"MOON",
"STAR"
],
"grid_size": 8,
"seed": 42
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.word_search_grid_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_grid_size | 25 |
max_words | 20 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |