Lanceur de d20
La graine 42 donne toujours 17 : la même graine produit toujours la même face d'un dé équilibré à vingt faces, ce qui permet au meneur, à un joueur ou à un arbitre de vérifier le jet après coup. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Graine
- 42
- Résultat
- 17
- Faces
- 20
- Die
- d20
- Min
- 1
Un lanceur de dé d20 est le moyen habituel par lequel les joueurs de table, les maîtres de jeu et les outils numériques obtiennent une seule face d'un dé à vingt faces. On cherche un lanceur de d20 lorsqu'on a besoin d'un jet d'attaque reproductible, d'un jet de sauvegarde auditable plus tard, d'un jeu de tests qui ne dérive pas d'une machine à l'autre, ou d'une démonstration en classe d'une loi uniforme discrète sur les entiers de un à vingt. Cette capacité accepte une graine entière non négative, pilote un générateur déterministe et renvoie un résultat entier de 1 à 20. La même graine produit toujours la même face.
Ce qu'un jet de d20 à graine renvoie réellement
Un dé à vingt faces est une variable aléatoire uniforme discrète sur les entiers de un à vingt : chaque face est équiprobable et un seul jet est un tirage indépendant. Un lanceur de d20 ne calcule donc ni une masse de probabilité ni un intervalle de totaux possibles ; il matérialise une face concrète pour résoudre une attaque, un jet de sauvegarde, une initiative ou un essai de classe sur une loi uniforme. Le déterminisme fait partie de la promesse du produit.
Ce point d'accès initialise un générateur mulberry32 à partir de la graine entière non négative que vous envoyez, prend un mot non signé de trente-deux bits et le projette sur l'intervalle entier fermé de 1 à 20 inclus, avec un reste qui ne produit jamais 0 ni 21. Le mapping est fixe, le générateur est fixe et il n'y a qu'un tirage, de sorte que la graine décrit entièrement l'expérience.
L'équité est figée à vingt faces équiprobables ; cette page n'est pas un laboratoire de dés sur mesure et n'accepte pas de paramètre de biais. La réponse répète la graine, renvoie result comme face entière et documente faces, die, min et max afin que les clients affichent le jet sans constantes supplémentaires. Lorsque la graine n'est pas un entier non négatif, la tâche échoue au lieu d'inventer une face, car une graine fractionnaire ou négative n'est pas un résultat de d20 que l'on puisse noter.
Contrat d'entrée, forme de la réponse et erreurs
Zéro est une graine valide et n'est pas traité comme manquant. Une graine négative est rejetée, car le contrat est un entier non négatif, non un nonce signé. Ces échecs ne sont pas facturés.
En cas de succès, le corps répète seed, renvoie result comme entier de 1 à 20, fixe faces à 20 et die à d20, et répète min 1 et max 20 afin qu'un moteur d'affichage étiquette la valeur principale sans légende figée. Exemple : la graine quarante-deux produit toujours la même face, et la graine zéro produit toujours sa propre face stable.
Associez la réponse à votre propre feuille de table si vous avez besoin de modificatifs, d'avantage ou d'un dé de dégâts ; ce point d'accès ne lance que le d20 naturel. Une validation échouée ne consomme pas de solde.
Où un lanceur de d20 à graine justifie son existence
Les groupes de table et les tables virtuelles utilisent un lanceur de d20 pour que chaque joueur voie le même vingt naturel ou le même un naturel qu'implique la graine publiée, sans faire circuler un icosaèdre physique autour de la table ni se fier à un client qui aurait pu être modifié. Les organisateurs de concours et de tombolas caritatives ont besoin d'un tirage auditable : la graine publiée permet à tout relecteur ultérieur de recalculer la face exacte qui a décidé d'un prix ou d'un coup d'envoi.
Les développeurs appellent le même contrat depuis des scripts pour semer des vecteurs de test, alimenter des feuilles Monte Carlo qui doivent coïncider avec une clé imprimée, ou satisfaire des énoncés de défis de programmation qui exigent un seul d20 plutôt qu'une probabilité binomiale. Cette page ne remplace pas les outils de plage en notation de dés ni les calculateurs de probabilité de somme ; ceux-là répondent à d'autres intentions de recherche.
Cas d’usage
Séances de table et tables virtuelles
Publiez une graine de séance afin que chaque joueur et le maître de jeu recalculent le même d20 naturel pour les attaques, les sauvegardes et l'initiative, sans faire circuler un dé physique.
Tirages et examens auditables
Notez la graine à côté d'une tombola, d'un coup d'envoi ou d'un item d'examen afin que tout relecteur ultérieur reconstruise la face exacte de 1 à 20.
Jeux de tests déterministes
Générez une face de d20 stable dans les tests unitaires et les feuilles Monte Carlo afin que l'intégration continue et les clés imprimées ne dérivent jamais d'une machine à l'autre.
Questions fréquentes
Comment lancer un d20 avec cet outil ?
Envoyez seed comme entier non négatif. La même graine produit toujours la même face.
Que se passe-t-il si la graine n'est pas un entier non négatif ?
Les valeurs manquantes, négatives, les fractions, les chaînes vides et les valeurs hors de l'intervalle entier sûr sont rejetées et ne sont pas facturées.
Puis-je changer le nombre de faces ou biaiser le dé ?
Non. Cette page n'est qu'un dé équitable à vingt faces. Les plages sur mesure et les probabilités de somme appartiennent aux outils frères de notation et de probabilité.
Pourquoi un lanceur de d20 a-t-il besoin d'une graine ?
La graine rend la face reproductible. Deux machines, deux correcteurs ou un audit ultérieur reconstruisent le même jet. La graine zéro est valide et n'est pas traitée comme manquante.
Puis-je ajouter un modificateur ou lancer avec avantage ?
Non. L'outil donne seulement le résultat naturel du d20, une face de 1 à 20. Les modificateurs, l'avantage et les dés de dégâts se gèrent sur votre feuille de personnage ou à la table, à partir de cette face.
Outils associés
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/stat/d20-dice-roller \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"seed":42}'const res = await fetch("https://api.kit.forhosting.com/stat/d20-dice-roller", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"seed": 42
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/d20-dice-roller",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"seed": 42
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/d20-dice-roller", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"seed":42}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"seed":42}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/d20-dice-roller", 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
{
"seed": 42
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.d20_dice_roller",
"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.
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. |
Notes techniques
Une graine manquante, négative ou non entière échoue avec invalid_input au lieu d'inventer un jet.
Ce qu'un jet de d20 à graine renvoie réellement
Des graines identiques produisent toujours le même JSON, car le chemin ne consulte jamais l'horloge murale ni la source aléatoire de l'hôte.
Contrat d'entrée, forme de la réponse et erreurs
Envoyez par POST un corps JSON avec seed égal à un entier non négatif ; les alias rng_seed et value sont acceptés lorsque les clients réutilisent d'anciens noms de formulaire. Chaque champ peut arriver comme nombre JSON ou comme chaîne numérique de chiffres ; les chaînes vides, les booléens, les objets, les fractions et les valeurs hors de l'intervalle entier sûr échouent avec invalid_input en nommant le champ. Documentez les graines à côté du journal de séance, figez les goldens pour les graines que vous publiez et traitez invalid_input comme un signal de qualité des données plutôt que de réessayer un entier mal formé. Comme l'implémentation est parse pure de niveau A, chaque appel réussi coûte le tarif de base publié $0.002 sans jetons de modèle et sans réseau sortant.
Où un lanceur de d20 à graine justifie son existence
Les générateurs de préparation d'examens et les salles de probabilités ont besoin d'un oracle déterministe qui marque une graine erronée comme invalid_input au lieu de renvoyer silencieusement une face vide qu'un correcteur défectueux pourrait traiter comme un succès. Conservez une graine par appel, figez le résultat entier dans les tests, et vous obtiendrez des faces à vingt reproductibles pour les devoirs, les greffons LMS et les workers de bord, sans dresser un service aléatoire maison.
Questions techniques
Combien coûte le lanceur de dé d20 ?
L'outil du navigateur est gratuit. Les requêtes API utilisent un solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.