← Retour au catalogue des jeux
Principe
Une requête GET ou POST renvoie une ou plusieurs grilles d'un jeu, avec leur
solution, sous forme de code LaTeX (environnement picture, aucun paquet
nécessaire) ou PSTricks (environnement pspicture). Les grilles sont celles
des générateurs du site : solution unique et résolution par pure logique.
L'adresse de base est , suivie du nom du jeu.
- Appel possible depuis le navigateur d'un autre site (CORS ouvert), sans clé ni compte.
- Une
seed(graine) permet de redemander exactement la même grille. - Réponse en JSON, ou directement le code avec
raw=1.
Jeux disponibles
| Jeu | Adresse (<jeu>) | Tailles size et difficultés diff |
|---|
Par défaut, la taille et la difficulté sont celles proposées par la page du jeu. Un couple taille / difficulté qui n'existe pas renvoie une erreur 400 qui liste les valeurs possibles.
Paramètres
En GET, dans l'adresse (?size=6&diff=facile). En POST, dans un corps JSON avec
l'en-tête Content-Type: application/json. Les noms sont les mêmes.
| Paramètre | Valeurs | Défaut |
|---|---|---|
size | taille de la grille (selon le jeu) | celle de la page du jeu |
diff | difficulté (selon le jeu et la taille) | celle de la page du jeu |
n | nombre de grilles, de 1 à 10 | 1 |
seed | texte de 100 caractères au plus, pour rejouer une grille | tirée au hasard |
format | latex ou pstricks | latex |
solution | 1 pour joindre la grille corrigée, 0 sinon | 1 |
raw | 1 : renvoyer le code seul, en texte brut | 0 |
Avec n supérieur à 1 et une seed donnée, la grille i (à partir de 0)
a pour graine seed:i : redemander seed=ma-graine:1 avec n=1
redonne exactement la deuxième grille du lot.
Réponse
{
"game": "binero",
"format": "latex",
"grids": [
{
"seed": "api:1760860000000:k3x9qa:0",
"size": 8,
"diff": "moyen",
"givens": 21,
"puzzle": "\\setlength{\\unitlength}{8mm}\n\\begin{picture}(8,8)…",
"solution": "\\setlength{\\unitlength}{8mm}\n\\begin{picture}(8,8)…"
}
]
}
puzzle est l'énoncé (les nombres ou indices donnés), solution la grille
corrigée (absente avec solution=0), givens le nombre de données de l'énoncé.
La seed utilisée est toujours renvoyée.
Avec raw=1, la réponse est du texte brut : pour chaque grille, l'énoncé puis la solution,
séparés par une ligne vide.
Erreurs et limites
| Code | Signification |
|---|---|
| 400 | paramètre invalide, couple taille / difficulté inexistant, JSON invalide ou mauvais Content-Type |
| 404 | jeu inconnu |
| 405 | méthode autre que GET, POST ou OPTIONS |
| 413 | corps de la requête de plus de 10 Ko |
| 429 | plus de 30 grilles par minute depuis la même adresse (en-tête Retry-After en secondes) |
| 503 | génération échouée (rare, surtout sur les plus grandes grilles très difficiles) : réessayer, ou changer de seed |
Chaque erreur est un JSON {"error": "…"}. Une grille est générée en une fraction de
seconde à quelques secondes selon le jeu : demande-en peu à la fois.
L'adresse IP n'est utilisée que pour limiter le débit, en mémoire du serveur ; l'API ne stocke ni les requêtes ni les grilles demandées. L'hébergeur peut en revanche tenir des journaux d'accès techniques, comme pour tout site (voir les mentions légales).
Exemples
Ligne de commande
curl 'https://api.logicogrilles.mathsmentales.net/api/binero?size=6&diff=facile&n=2&raw=1'
JavaScript (navigateur)
const r = await fetch('https://api.logicogrilles.mathsmentales.net/api/sudoku', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({size: 9, diff: 'facile', n: 3, format: 'pstricks'})
});
const {grids} = await r.json();
console.log(grids[0].puzzle, grids[0].solution);
Document LaTeX
Coller le champ puzzle (ou solution) tel quel ; il commence par un
\setlength{\unitlength}{…}, que l'on peut isoler dans un groupe.
\documentclass{article}
\begin{document}
\begin{center}
% code renvoyé par l'API avec format=latex
\end{center}
\end{document}
À compiler avec pdflatex.
Document PSTricks
\documentclass{article}
\usepackage{pstricks}
\begin{document}
\begin{center}
% code renvoyé par l'API avec format=pstricks
\end{center}
\end{document}
À compiler avec latex, puis dvips et ps2pdf
(ou xelatex avec le paquet pst-pdf selon ta distribution).
Essayer
Choisis un jeu et des options, puis génère : la page appelle l'API en ligne et affiche le code à copier.