@jjlmoya/utils-creative 1.26.0 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/category/i18n/de.ts +2 -2
- package/src/category/i18n/en.ts +2 -2
- package/src/category/i18n/es.ts +2 -2
- package/src/category/i18n/fr.ts +2 -2
- package/src/category/i18n/id.ts +2 -2
- package/src/category/i18n/it.ts +2 -2
- package/src/category/i18n/ja.ts +2 -2
- package/src/category/i18n/ko.ts +2 -2
- package/src/category/i18n/nl.ts +2 -2
- package/src/category/i18n/pl.ts +2 -2
- package/src/category/i18n/pt.ts +2 -2
- package/src/category/i18n/ru.ts +2 -2
- package/src/category/i18n/sv.ts +2 -2
- package/src/category/i18n/tr.ts +2 -2
- package/src/category/i18n/zh.ts +2 -2
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/env.d.ts +1 -1
- package/src/pages/index.astro +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +2 -2
- package/src/tests/seo_translation_completeness.test.ts +75 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +17 -17
- package/src/tool/bead-pattern-generator/bibliography.astro +8 -8
- package/src/tool/bead-pattern-generator/i18n/de.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/en.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/es.ts +104 -104
- package/src/tool/bead-pattern-generator/i18n/fr.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/id.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/it.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/ja.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/ko.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/nl.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/pl.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/pt.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/ru.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/sv.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/tr.ts +111 -111
- package/src/tool/bead-pattern-generator/i18n/zh.ts +111 -111
- package/src/tool/bead-pattern-generator/seo.astro +19 -19
- package/src/tool/dice-roller/bibliography.astro +8 -8
- package/src/tool/dice-roller/i18n/de.ts +134 -134
- package/src/tool/dice-roller/i18n/en.ts +134 -134
- package/src/tool/dice-roller/i18n/es.ts +125 -125
- package/src/tool/dice-roller/i18n/fr.ts +134 -134
- package/src/tool/dice-roller/i18n/id.ts +134 -134
- package/src/tool/dice-roller/i18n/it.ts +134 -134
- package/src/tool/dice-roller/i18n/ja.ts +134 -134
- package/src/tool/dice-roller/i18n/ko.ts +134 -134
- package/src/tool/dice-roller/i18n/nl.ts +134 -134
- package/src/tool/dice-roller/i18n/pl.ts +134 -134
- package/src/tool/dice-roller/i18n/pt.ts +134 -134
- package/src/tool/dice-roller/i18n/ru.ts +134 -134
- package/src/tool/dice-roller/i18n/sv.ts +134 -134
- package/src/tool/dice-roller/i18n/tr.ts +134 -134
- package/src/tool/dice-roller/i18n/zh.ts +134 -134
- package/src/tool/dice-roller/seo.astro +15 -15
- package/src/tool/excuse-generator/bibliography.astro +8 -8
- package/src/tool/excuse-generator/i18n/de.ts +120 -120
- package/src/tool/excuse-generator/i18n/en.ts +120 -120
- package/src/tool/excuse-generator/i18n/es.ts +118 -118
- package/src/tool/excuse-generator/i18n/fr.ts +120 -120
- package/src/tool/excuse-generator/i18n/id.ts +120 -120
- package/src/tool/excuse-generator/i18n/it.ts +120 -120
- package/src/tool/excuse-generator/i18n/ja.ts +120 -120
- package/src/tool/excuse-generator/i18n/ko.ts +120 -120
- package/src/tool/excuse-generator/i18n/nl.ts +120 -120
- package/src/tool/excuse-generator/i18n/pl.ts +120 -120
- package/src/tool/excuse-generator/i18n/pt.ts +120 -120
- package/src/tool/excuse-generator/i18n/ru.ts +120 -120
- package/src/tool/excuse-generator/i18n/sv.ts +120 -120
- package/src/tool/excuse-generator/i18n/tr.ts +120 -120
- package/src/tool/excuse-generator/i18n/zh.ts +120 -120
- package/src/tool/excuse-generator/seo.astro +15 -15
- package/src/tool/fortune-cookie/bibliography.astro +8 -8
- package/src/tool/fortune-cookie/i18n/de.ts +124 -124
- package/src/tool/fortune-cookie/i18n/en.ts +124 -124
- package/src/tool/fortune-cookie/i18n/es.ts +125 -125
- package/src/tool/fortune-cookie/i18n/fr.ts +124 -124
- package/src/tool/fortune-cookie/i18n/id.ts +124 -124
- package/src/tool/fortune-cookie/i18n/it.ts +124 -124
- package/src/tool/fortune-cookie/i18n/ja.ts +124 -124
- package/src/tool/fortune-cookie/i18n/ko.ts +124 -124
- package/src/tool/fortune-cookie/i18n/nl.ts +124 -124
- package/src/tool/fortune-cookie/i18n/pl.ts +124 -124
- package/src/tool/fortune-cookie/i18n/pt.ts +124 -124
- package/src/tool/fortune-cookie/i18n/ru.ts +124 -124
- package/src/tool/fortune-cookie/i18n/sv.ts +124 -124
- package/src/tool/fortune-cookie/i18n/tr.ts +124 -124
- package/src/tool/fortune-cookie/i18n/zh.ts +124 -124
- package/src/tool/fortune-cookie/seo.astro +15 -15
- package/src/tool/synesthesia-painter/bibliography.astro +8 -8
- package/src/tool/synesthesia-painter/i18n/de.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/en.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/es.ts +110 -110
- package/src/tool/synesthesia-painter/i18n/fr.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/id.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/it.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/ja.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/ko.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/nl.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/pl.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/pt.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/ru.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/sv.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/tr.ts +118 -118
- package/src/tool/synesthesia-painter/i18n/zh.ts +118 -118
- package/src/tool/synesthesia-painter/seo.astro +15 -15
- package/src/tool/zalgo-generator/bibliography.astro +8 -8
- package/src/tool/zalgo-generator/i18n/de.ts +109 -109
- package/src/tool/zalgo-generator/i18n/en.ts +109 -109
- package/src/tool/zalgo-generator/i18n/es.ts +109 -109
- package/src/tool/zalgo-generator/i18n/fr.ts +109 -109
- package/src/tool/zalgo-generator/i18n/id.ts +109 -109
- package/src/tool/zalgo-generator/i18n/it.ts +109 -109
- package/src/tool/zalgo-generator/i18n/ja.ts +109 -109
- package/src/tool/zalgo-generator/i18n/ko.ts +109 -109
- package/src/tool/zalgo-generator/i18n/nl.ts +109 -109
- package/src/tool/zalgo-generator/i18n/pl.ts +109 -109
- package/src/tool/zalgo-generator/i18n/pt.ts +109 -109
- package/src/tool/zalgo-generator/i18n/ru.ts +109 -109
- package/src/tool/zalgo-generator/i18n/sv.ts +109 -109
- package/src/tool/zalgo-generator/i18n/tr.ts +109 -109
- package/src/tool/zalgo-generator/i18n/zh.ts +109 -109
- package/src/tool/zalgo-generator/seo.astro +15 -15
- package/src/types.ts +1 -1
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import { bibliography } from '../bibliography';
|
|
3
|
-
import type { DiceRollerLocaleContent } from '../index';
|
|
4
|
-
|
|
5
|
-
const slug = 'lanceur-de-des';
|
|
6
|
-
const title = 'Lanceur de Dés';
|
|
7
|
-
const description = 'Un simulateur de dés complet pour vos JdR et jeux de société. Lancez des d4, d6, d8, d10, d12, d20 et d100 avec modificateurs et historique.';
|
|
8
|
-
|
|
9
|
-
const faq: DiceRollerLocaleContent['faq'] = [
|
|
10
|
-
{
|
|
11
|
-
question: 'Comment simuler un lancer avec avantage (D&D) ?',
|
|
12
|
-
answer: 'Ajoutez deux dés d20 à votre réserve en cliquant deux fois sur le bouton d20. Lors du lancer, observez les deux résultats individuels et gardez le plus élevé. Le total affiché sera la somme, mais vous pouvez voir chaque dé séparément dans le détail du résultat.',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
question: 'Que signifient les couleurs verte ou rouge sur les résultats ?',
|
|
16
|
-
answer: 'Les résultats en vert indiquent que le dé a obtenu sa valeur maximale possible (un "critique"). Les résultats en rouge indiquent la valeur minimale (un "1", le pire résultat possible). Cela permet de repérer les critiques et les échecs d\'un coup d\'œil.',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
question: 'Puis-je ajouter plusieurs dés du même type ?',
|
|
20
|
-
answer: 'Oui. Chaque clic sur un dé l\'ajoute à votre réserve. Si vous cliquez trois fois sur le d6, la réserve affichera "3d6". Pour réduire le nombre, cliquez sur le bouton "−" qui apparaît à côté de chaque groupe de dés.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: 'Les dés numériques sont-ils aussi aléatoires que les physiques ?',
|
|
24
|
-
answer: 'Statistiquement, oui. Les moteurs JavaScript modernes utilisent des algorithmes pseudo-aléatoires (xorshift128+) avec une distribution uniforme de très haute qualité. Un vrai dé physique peut présenter de petites imperfections de fabrication qui biaisent les résultats ; le dé numérique n\'a pas ce problème.',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
question: 'Qu\'est-ce que le d100 et comment est-il utilisé ?',
|
|
28
|
-
answer: 'Le d100 (ou d%) génère un nombre de 1 à 100 et est utilisé dans les systèmes de jeu basés sur les pourcentages, tels que l\'Appel de Cthulhu ou Warhammer Fantasy. Il représente une "probabilité directe": si votre compétence en Discrétion est de 65 %, vous devez obtenir 65 ou moins pour réussir.',
|
|
29
|
-
},
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
const howTo: DiceRollerLocaleContent['howTo'] = [
|
|
33
|
-
{ name: 'Composer la réserve de dés', text: 'Cliquez sur les boutons des dés (d4, d6, d8...) pour les ajouter à votre réserve. Chaque clic ajoute un dé du type sélectionné. Vous pouvez mélanger différents types dans le même lancer.' },
|
|
34
|
-
{ name: 'Ajuster le modificateur', text: 'Utilisez les boutons "+" et "−" à côté du modificateur pour appliquer des bonus ou des pénalités (comme le modificateur de caractéristique dans D&D). Le modificateur est automatiquement ajouté au total.' },
|
|
35
|
-
{ name: 'Lancer les dés', text: 'Appuyez sur le bouton "Lancer les dés". Le panneau de droite affiche le total final et le détail de chaque dé individuel, avec les critiques (maximum) en vert et les échecs (minimum) en rouge.' },
|
|
36
|
-
{ name: 'Consulter l\'historique', text: 'Chaque lancer est enregistré dans l\'historique avec l\'expression de dés utilisée, le résultat total et l\'heure exacte. Vous pouvez effacer l\'historique avec le bouton correspondant.' },
|
|
37
|
-
];
|
|
38
|
-
|
|
39
|
-
const faqSchema: WithContext<FAQPage> = {
|
|
40
|
-
'@context': 'https://schema.org',
|
|
41
|
-
'@type': 'FAQPage',
|
|
42
|
-
mainEntity: faq.map((item) => ({
|
|
43
|
-
'@type': 'Question',
|
|
44
|
-
name: item.question,
|
|
45
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
46
|
-
})),
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const howToSchema: WithContext<HowTo> = {
|
|
50
|
-
'@context': 'https://schema.org',
|
|
51
|
-
'@type': 'HowTo',
|
|
52
|
-
name: title,
|
|
53
|
-
description,
|
|
54
|
-
step: howTo.map((step) => ({
|
|
55
|
-
'@type': 'HowToStep',
|
|
56
|
-
name: step.name,
|
|
57
|
-
text: step.text,
|
|
58
|
-
})),
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
62
|
-
'@context': 'https://schema.org',
|
|
63
|
-
'@type': 'SoftwareApplication',
|
|
64
|
-
name: title,
|
|
65
|
-
description,
|
|
66
|
-
applicationCategory: 'UtilitiesApplication',
|
|
67
|
-
operatingSystem: 'Web',
|
|
68
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
69
|
-
inLanguage: 'fr',
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const content: DiceRollerLocaleContent = {
|
|
73
|
-
slug,
|
|
74
|
-
title,
|
|
75
|
-
description,
|
|
76
|
-
faqTitle: 'Questions Fréquemment Posées',
|
|
77
|
-
ui: {
|
|
78
|
-
title: 'Lanceur de Dés',
|
|
79
|
-
description: 'Que la chance soit avec vous.',
|
|
80
|
-
rollBtn: 'Lancer les dés',
|
|
81
|
-
totalLabel: 'Total',
|
|
82
|
-
historyLabel: 'Historique',
|
|
83
|
-
clearHistoryBtn: 'Effacer l\'historique',
|
|
84
|
-
faqTitle: 'FAQ',
|
|
85
|
-
bibliographyTitle: 'Références',
|
|
86
|
-
addDiceLabel: 'Ajouter des dés au sac',
|
|
87
|
-
bagLabel: 'Sac de dés',
|
|
88
|
-
emptyBagBtn: 'Vider',
|
|
89
|
-
emptyBagText: 'Cliquez sur les dés pour les ajouter',
|
|
90
|
-
modifierLabel: 'Modificateur',
|
|
91
|
-
rollManyLabel: 'Lancer $COUNT dés',
|
|
92
|
-
rollOneLabel: 'Lancer $COUNT dé',
|
|
93
|
-
preRollText: 'Ajoutez des dés et lancez',
|
|
94
|
-
emptyHistoryText: 'L\'historique des lancers apparaîtra ici'
|
|
95
|
-
},
|
|
96
|
-
seo: [
|
|
97
|
-
{ type: 'title', text: 'L\'Art du Hasard: Histoire et Mathématiques des Dés', level: 2 },
|
|
98
|
-
{ type: 'paragraph', html: 'Les dés sont l\'un des plus anciens générateurs de hasard de l\'humanité. Les <strong>astragales</strong> - osselets de chevilles de moutons et de chèvres - étaient utilisés comme dés primitifs à quatre faces dès 5000 av. J.-C. en Mésopotamie et en Égypte. L\'évolution de l\'os sculpté aux icosaèdres modernes en résine époxy n\'est pas seulement esthétique: c\'est un voyage à travers la théorie des probabilités et la conception des mécaniques de jeu.' },
|
|
99
|
-
{ type: 'title', text: 'La Famille des Dés Standards', level: 3 },
|
|
100
|
-
{ type: 'paragraph', html: 'L\'ensemble de dés le plus répandu dans les jeux de rôle - popularisé par <strong>Dungeons & Dragons</strong> en 1974 - se compose des cinq solides de Platon plus deux formes additionnelles: d4 (tétraèdre), d6 (cube), d8 (octaèdre), d10 (trapézoèdre pentagonal), d12 (dodécaèdre), d20 (icosaèdre) et d100 (dé centile). Chaque polyèdre garantit une distribution uniforme: toutes les faces ont exactement la même probabilité de sortir.' },
|
|
101
|
-
{ type: 'list', items: [
|
|
102
|
-
'<strong>d4 - Tétraèdre :</strong> Le plus dangereux si l\'on marche dessus pieds nus. Quatre faces triangulaires, 25 % de probabilité par face. Couramment utilisé pour les dégâts de dague ou les sorts de bas niveau.',
|
|
103
|
-
'<strong>d6 - Cube :</strong> Le dé le plus universel. Présent dans tous les jeux de société depuis le senet égyptien. Sa géométrie cubique garantit une équidistribution parfaite.',
|
|
104
|
-
'<strong>d8 - Octaèdre :</strong> Le dé de la lance ou de la hache de bataille. Huit faces triangulaires équilatérales. 12,5 % de probabilité par face.',
|
|
105
|
-
'<strong>d10 - Trapézoèdre pentagonal :</strong> Le seul solide non-platonique de l\'ensemble standard. Deux faces opposées par "sommet". Essentiel pour le d100 (deux d10 combinés).',
|
|
106
|
-
'<strong>d12 - Dodécaèdre :</strong> Le dé du barbare. Douze faces pentagonales. Sous-estimé dans de nombreux systèmes, il est le protagoniste du Barbare dans D&D 5e.',
|
|
107
|
-
'<strong>d20 - Icosaèdre :</strong> Le roi du JdR. Vingt faces triangulaires. Protagoniste du système d20: il détermine le succès ou l\'échec de presque toutes les actions.',
|
|
108
|
-
'<strong>d100 - Centile :</strong> Deux d10 combinés (dizaines + unités). Définit des probabilités fines dans des systèmes comme l\'Appel de Cthulhu ou Warhammer Fantasy.',
|
|
109
|
-
]},
|
|
110
|
-
{ type: 'stats', items: [
|
|
111
|
-
{ value: '5000 av. J.-C.', label: 'Premiers dés (astragales)', icon: 'mdi:history' },
|
|
112
|
-
{ value: '1974', label: 'D&D popularise l\'ensemble', icon: 'mdi:sword' },
|
|
113
|
-
{ value: '7 types', label: 'Dés standards de JdR', icon: 'mdi:dice-multiple' },
|
|
114
|
-
{ value: '2¹²⁸', label: 'Période aléatoire JS', icon: 'mdi:function-variant' },
|
|
115
|
-
], columns: 4 },
|
|
116
|
-
{ type: 'title', text: 'Probabilités et Courbes de Distribution', level: 3 },
|
|
117
|
-
{ type: 'paragraph', html: 'Lorsque vous lancez un seul dé, vous obtenez une <strong>distribution uniforme discrète</strong>: chaque résultat a exactement la même probabilité (1/n). Mais dès que vous combinez plusieurs dés, la magie mathématique transforme cette courbe plate en une <strong>distribution normale approximative</strong>. C\'est pourquoi 2d6 n\'est pas la même chose qu\'un 1d12: avec deux dés à six faces, la probabilité d\'obtenir un 7 est de 6/36 ≈ 16,7 %, tandis que les extrêmes (2 et 12) ne surviennent que 2,8 % du temps.' },
|
|
118
|
-
{ type: 'tip', title: 'Avantage et Désavantage (D&D 5e)', html: 'La mécanique d\'<strong>Avantage</strong> consiste à lancer 2d20 et à garder le résultat le plus élevé. Mathématiquement, cela fait passer la moyenne de 10,5 à environ 13,8. Le <strong>Désavantage</strong> fait l\'inverse: on prend le plus bas, faisant chuter la moyenne à environ 7,2. Notre lanceur vous permet de simuler cela en ajoutant deux d20 au sac et en comparant les résultats individuels.' },
|
|
119
|
-
{ type: 'title', text: 'Modificateurs: Le Pont entre le Dé et le Personnage', level: 3 },
|
|
120
|
-
{ type: 'paragraph', html: 'Dans la plupart des systèmes de JdR, le dé n\'agit pas seul: un <strong>modificateur</strong> représentant les capacités du personnage est ajouté ou soustrait. Dans D&D 5e, un modificateur de Force de +5 signifie que vous lancez 1d20, ajoutez 5, et comparez le résultat à la Classe d\'Armure de l\'ennemi. Notre lanceur inclut un contrôle de modificateur pour refléter fidèlement ces mécaniques.' },
|
|
121
|
-
{ type: 'tip', title: 'Standard de Notation des Dés', html: 'La notation <strong>XdY+Z</strong> est le standard de facto dans les jeux de rôle: X dés de Y faces avec un modificateur Z. "3d6+2" signifie lancer trois dés à six faces et ajouter 2 au total. Notre outil utilise cette notation dans l\'historique afin que vous puissiez facilement partager ou enregistrer vos lancers.' },
|
|
122
|
-
{ type: 'glossary', items: [
|
|
123
|
-
{ term: 'Coup Critique', definition: 'Un lancer de la valeur maximale sur un dé (ex: obtenir 20 sur un d20). Déclenche généralement des effets bonus spéciaux dans la plupart des systèmes de JdR.' },
|
|
124
|
-
{ term: 'Échec Critique / Nat 1', definition: 'Obtenir la valeur minimale (1) sur un dé. Entraîne souvent un échec dramatique ou une conséquence négative.' },
|
|
125
|
-
{ term: 'Réserve de Dés', definition: 'Une collection de dés lancés simultanément. La réserve dans notre outil affiche chaque type de dé groupé par nombre (ex: 3d6 + 2d8).' },
|
|
126
|
-
{ term: 'Modificateur', definition: 'Un nombre fixe ajouté ou soustrait d\'un résultat de lancer, représentant la compétence d\'un personnage, un bonus d\'attribut ou une pénalité situationnelle.' },
|
|
127
|
-
{ term: 'Lancer Centile', definition: 'Un lancer utilisant deux d10 pour produire un résultat de 1 à 100, utilisé dans les systèmes basés sur les compétences où les capacités sont mesurées en pourcentages.' },
|
|
128
|
-
]},
|
|
129
|
-
],
|
|
130
|
-
faq,
|
|
131
|
-
bibliography,
|
|
132
|
-
howTo,
|
|
133
|
-
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
134
|
-
};
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { DiceRollerLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'lanceur-de-des';
|
|
6
|
+
const title = 'Lanceur de Dés';
|
|
7
|
+
const description = 'Un simulateur de dés complet pour vos JdR et jeux de société. Lancez des d4, d6, d8, d10, d12, d20 et d100 avec modificateurs et historique.';
|
|
8
|
+
|
|
9
|
+
const faq: DiceRollerLocaleContent['faq'] = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Comment simuler un lancer avec avantage (D&D) ?',
|
|
12
|
+
answer: 'Ajoutez deux dés d20 à votre réserve en cliquant deux fois sur le bouton d20. Lors du lancer, observez les deux résultats individuels et gardez le plus élevé. Le total affiché sera la somme, mais vous pouvez voir chaque dé séparément dans le détail du résultat.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Que signifient les couleurs verte ou rouge sur les résultats ?',
|
|
16
|
+
answer: 'Les résultats en vert indiquent que le dé a obtenu sa valeur maximale possible (un "critique"). Les résultats en rouge indiquent la valeur minimale (un "1", le pire résultat possible). Cela permet de repérer les critiques et les échecs d\'un coup d\'œil.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Puis-je ajouter plusieurs dés du même type ?',
|
|
20
|
+
answer: 'Oui. Chaque clic sur un dé l\'ajoute à votre réserve. Si vous cliquez trois fois sur le d6, la réserve affichera "3d6". Pour réduire le nombre, cliquez sur le bouton "−" qui apparaît à côté de chaque groupe de dés.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Les dés numériques sont-ils aussi aléatoires que les physiques ?',
|
|
24
|
+
answer: 'Statistiquement, oui. Les moteurs JavaScript modernes utilisent des algorithmes pseudo-aléatoires (xorshift128+) avec une distribution uniforme de très haute qualité. Un vrai dé physique peut présenter de petites imperfections de fabrication qui biaisent les résultats ; le dé numérique n\'a pas ce problème.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Qu\'est-ce que le d100 et comment est-il utilisé ?',
|
|
28
|
+
answer: 'Le d100 (ou d%) génère un nombre de 1 à 100 et est utilisé dans les systèmes de jeu basés sur les pourcentages, tels que l\'Appel de Cthulhu ou Warhammer Fantasy. Il représente une "probabilité directe": si votre compétence en Discrétion est de 65 %, vous devez obtenir 65 ou moins pour réussir.',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howTo: DiceRollerLocaleContent['howTo'] = [
|
|
33
|
+
{ name: 'Composer la réserve de dés', text: 'Cliquez sur les boutons des dés (d4, d6, d8...) pour les ajouter à votre réserve. Chaque clic ajoute un dé du type sélectionné. Vous pouvez mélanger différents types dans le même lancer.' },
|
|
34
|
+
{ name: 'Ajuster le modificateur', text: 'Utilisez les boutons "+" et "−" à côté du modificateur pour appliquer des bonus ou des pénalités (comme le modificateur de caractéristique dans D&D). Le modificateur est automatiquement ajouté au total.' },
|
|
35
|
+
{ name: 'Lancer les dés', text: 'Appuyez sur le bouton "Lancer les dés". Le panneau de droite affiche le total final et le détail de chaque dé individuel, avec les critiques (maximum) en vert et les échecs (minimum) en rouge.' },
|
|
36
|
+
{ name: 'Consulter l\'historique', text: 'Chaque lancer est enregistré dans l\'historique avec l\'expression de dés utilisée, le résultat total et l\'heure exacte. Vous pouvez effacer l\'historique avec le bouton correspondant.' },
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
40
|
+
'@context': 'https://schema.org',
|
|
41
|
+
'@type': 'FAQPage',
|
|
42
|
+
mainEntity: faq.map((item) => ({
|
|
43
|
+
'@type': 'Question',
|
|
44
|
+
name: item.question,
|
|
45
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
46
|
+
})),
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const howToSchema: WithContext<HowTo> = {
|
|
50
|
+
'@context': 'https://schema.org',
|
|
51
|
+
'@type': 'HowTo',
|
|
52
|
+
name: title,
|
|
53
|
+
description,
|
|
54
|
+
step: howTo.map((step) => ({
|
|
55
|
+
'@type': 'HowToStep',
|
|
56
|
+
name: step.name,
|
|
57
|
+
text: step.text,
|
|
58
|
+
})),
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
62
|
+
'@context': 'https://schema.org',
|
|
63
|
+
'@type': 'SoftwareApplication',
|
|
64
|
+
name: title,
|
|
65
|
+
description,
|
|
66
|
+
applicationCategory: 'UtilitiesApplication',
|
|
67
|
+
operatingSystem: 'Web',
|
|
68
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
69
|
+
inLanguage: 'fr',
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const content: DiceRollerLocaleContent = {
|
|
73
|
+
slug,
|
|
74
|
+
title,
|
|
75
|
+
description,
|
|
76
|
+
faqTitle: 'Questions Fréquemment Posées',
|
|
77
|
+
ui: {
|
|
78
|
+
title: 'Lanceur de Dés',
|
|
79
|
+
description: 'Que la chance soit avec vous.',
|
|
80
|
+
rollBtn: 'Lancer les dés',
|
|
81
|
+
totalLabel: 'Total',
|
|
82
|
+
historyLabel: 'Historique',
|
|
83
|
+
clearHistoryBtn: 'Effacer l\'historique',
|
|
84
|
+
faqTitle: 'FAQ',
|
|
85
|
+
bibliographyTitle: 'Références',
|
|
86
|
+
addDiceLabel: 'Ajouter des dés au sac',
|
|
87
|
+
bagLabel: 'Sac de dés',
|
|
88
|
+
emptyBagBtn: 'Vider',
|
|
89
|
+
emptyBagText: 'Cliquez sur les dés pour les ajouter',
|
|
90
|
+
modifierLabel: 'Modificateur',
|
|
91
|
+
rollManyLabel: 'Lancer $COUNT dés',
|
|
92
|
+
rollOneLabel: 'Lancer $COUNT dé',
|
|
93
|
+
preRollText: 'Ajoutez des dés et lancez',
|
|
94
|
+
emptyHistoryText: 'L\'historique des lancers apparaîtra ici'
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{ type: 'title', text: 'L\'Art du Hasard: Histoire et Mathématiques des Dés', level: 2 },
|
|
98
|
+
{ type: 'paragraph', html: 'Les dés sont l\'un des plus anciens générateurs de hasard de l\'humanité. Les <strong>astragales</strong> - osselets de chevilles de moutons et de chèvres - étaient utilisés comme dés primitifs à quatre faces dès 5000 av. J.-C. en Mésopotamie et en Égypte. L\'évolution de l\'os sculpté aux icosaèdres modernes en résine époxy n\'est pas seulement esthétique: c\'est un voyage à travers la théorie des probabilités et la conception des mécaniques de jeu.' },
|
|
99
|
+
{ type: 'title', text: 'La Famille des Dés Standards', level: 3 },
|
|
100
|
+
{ type: 'paragraph', html: 'L\'ensemble de dés le plus répandu dans les jeux de rôle - popularisé par <strong>Dungeons & Dragons</strong> en 1974 - se compose des cinq solides de Platon plus deux formes additionnelles: d4 (tétraèdre), d6 (cube), d8 (octaèdre), d10 (trapézoèdre pentagonal), d12 (dodécaèdre), d20 (icosaèdre) et d100 (dé centile). Chaque polyèdre garantit une distribution uniforme: toutes les faces ont exactement la même probabilité de sortir.' },
|
|
101
|
+
{ type: 'list', items: [
|
|
102
|
+
'<strong>d4 - Tétraèdre :</strong> Le plus dangereux si l\'on marche dessus pieds nus. Quatre faces triangulaires, 25 % de probabilité par face. Couramment utilisé pour les dégâts de dague ou les sorts de bas niveau.',
|
|
103
|
+
'<strong>d6 - Cube :</strong> Le dé le plus universel. Présent dans tous les jeux de société depuis le senet égyptien. Sa géométrie cubique garantit une équidistribution parfaite.',
|
|
104
|
+
'<strong>d8 - Octaèdre :</strong> Le dé de la lance ou de la hache de bataille. Huit faces triangulaires équilatérales. 12,5 % de probabilité par face.',
|
|
105
|
+
'<strong>d10 - Trapézoèdre pentagonal :</strong> Le seul solide non-platonique de l\'ensemble standard. Deux faces opposées par "sommet". Essentiel pour le d100 (deux d10 combinés).',
|
|
106
|
+
'<strong>d12 - Dodécaèdre :</strong> Le dé du barbare. Douze faces pentagonales. Sous-estimé dans de nombreux systèmes, il est le protagoniste du Barbare dans D&D 5e.',
|
|
107
|
+
'<strong>d20 - Icosaèdre :</strong> Le roi du JdR. Vingt faces triangulaires. Protagoniste du système d20: il détermine le succès ou l\'échec de presque toutes les actions.',
|
|
108
|
+
'<strong>d100 - Centile :</strong> Deux d10 combinés (dizaines + unités). Définit des probabilités fines dans des systèmes comme l\'Appel de Cthulhu ou Warhammer Fantasy.',
|
|
109
|
+
]},
|
|
110
|
+
{ type: 'stats', items: [
|
|
111
|
+
{ value: '5000 av. J.-C.', label: 'Premiers dés (astragales)', icon: 'mdi:history' },
|
|
112
|
+
{ value: '1974', label: 'D&D popularise l\'ensemble', icon: 'mdi:sword' },
|
|
113
|
+
{ value: '7 types', label: 'Dés standards de JdR', icon: 'mdi:dice-multiple' },
|
|
114
|
+
{ value: '2¹²⁸', label: 'Période aléatoire JS', icon: 'mdi:function-variant' },
|
|
115
|
+
], columns: 4 },
|
|
116
|
+
{ type: 'title', text: 'Probabilités et Courbes de Distribution', level: 3 },
|
|
117
|
+
{ type: 'paragraph', html: 'Lorsque vous lancez un seul dé, vous obtenez une <strong>distribution uniforme discrète</strong>: chaque résultat a exactement la même probabilité (1/n). Mais dès que vous combinez plusieurs dés, la magie mathématique transforme cette courbe plate en une <strong>distribution normale approximative</strong>. C\'est pourquoi 2d6 n\'est pas la même chose qu\'un 1d12: avec deux dés à six faces, la probabilité d\'obtenir un 7 est de 6/36 ≈ 16,7 %, tandis que les extrêmes (2 et 12) ne surviennent que 2,8 % du temps.' },
|
|
118
|
+
{ type: 'tip', title: 'Avantage et Désavantage (D&D 5e)', html: 'La mécanique d\'<strong>Avantage</strong> consiste à lancer 2d20 et à garder le résultat le plus élevé. Mathématiquement, cela fait passer la moyenne de 10,5 à environ 13,8. Le <strong>Désavantage</strong> fait l\'inverse: on prend le plus bas, faisant chuter la moyenne à environ 7,2. Notre lanceur vous permet de simuler cela en ajoutant deux d20 au sac et en comparant les résultats individuels.' },
|
|
119
|
+
{ type: 'title', text: 'Modificateurs: Le Pont entre le Dé et le Personnage', level: 3 },
|
|
120
|
+
{ type: 'paragraph', html: 'Dans la plupart des systèmes de JdR, le dé n\'agit pas seul: un <strong>modificateur</strong> représentant les capacités du personnage est ajouté ou soustrait. Dans D&D 5e, un modificateur de Force de +5 signifie que vous lancez 1d20, ajoutez 5, et comparez le résultat à la Classe d\'Armure de l\'ennemi. Notre lanceur inclut un contrôle de modificateur pour refléter fidèlement ces mécaniques.' },
|
|
121
|
+
{ type: 'tip', title: 'Standard de Notation des Dés', html: 'La notation <strong>XdY+Z</strong> est le standard de facto dans les jeux de rôle: X dés de Y faces avec un modificateur Z. "3d6+2" signifie lancer trois dés à six faces et ajouter 2 au total. Notre outil utilise cette notation dans l\'historique afin que vous puissiez facilement partager ou enregistrer vos lancers.' },
|
|
122
|
+
{ type: 'glossary', items: [
|
|
123
|
+
{ term: 'Coup Critique', definition: 'Un lancer de la valeur maximale sur un dé (ex: obtenir 20 sur un d20). Déclenche généralement des effets bonus spéciaux dans la plupart des systèmes de JdR.' },
|
|
124
|
+
{ term: 'Échec Critique / Nat 1', definition: 'Obtenir la valeur minimale (1) sur un dé. Entraîne souvent un échec dramatique ou une conséquence négative.' },
|
|
125
|
+
{ term: 'Réserve de Dés', definition: 'Une collection de dés lancés simultanément. La réserve dans notre outil affiche chaque type de dé groupé par nombre (ex: 3d6 + 2d8).' },
|
|
126
|
+
{ term: 'Modificateur', definition: 'Un nombre fixe ajouté ou soustrait d\'un résultat de lancer, représentant la compétence d\'un personnage, un bonus d\'attribut ou une pénalité situationnelle.' },
|
|
127
|
+
{ term: 'Lancer Centile', definition: 'Un lancer utilisant deux d10 pour produire un résultat de 1 à 100, utilisé dans les systèmes basés sur les compétences où les capacités sont mesurées en pourcentages.' },
|
|
128
|
+
]},
|
|
129
|
+
],
|
|
130
|
+
faq,
|
|
131
|
+
bibliography,
|
|
132
|
+
howTo,
|
|
133
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
134
|
+
};
|
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import { bibliography } from '../bibliography';
|
|
3
|
-
import type { DiceRollerLocaleContent } from '../index';
|
|
4
|
-
|
|
5
|
-
const slug: string = 'pengocok-dadu';
|
|
6
|
-
const title: string = 'Pengocok Dadu';
|
|
7
|
-
const description: string = 'Simulator dadu lengkap untuk RPG dan permainan papan Anda. Lempar d4, d6, d8, d10, d12, d20, dan d100 dengan pengubah dan riwayat.';
|
|
8
|
-
|
|
9
|
-
const faq: DiceRollerLocaleContent['faq'] = [
|
|
10
|
-
{
|
|
11
|
-
question: 'Bagaimana cara mensimulasikan lemparan dengan keuntungan (advantage - D&D)?',
|
|
12
|
-
answer: 'Tambahkan dua dadu d20 ke dalam kantong dengan mengeklik tombol d20 dua kali. Saat melempar, perhatikan dua hasil individu dan ambil yang lebih tinggi. Total yang ditampilkan adalah jumlahnya, tetapi Anda dapat melihat masing-masing dadu secara terpisah dalam rincian hasil.',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
question: 'Apa arti warna hijau atau merah pada hasil?',
|
|
16
|
-
answer: 'Hasil berwarna hijau menunjukkan bahwa dadu tersebut menghasilkan nilai maksimum yang mungkin (sebuah "critical"). Hasil merah menunjukkan nilai minimum (sebuah "1", hasil terburuk yang mungkin). Ini memudahkan untuk mengenali "crit" dan "fumble" secara sekilas.',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
question: 'Dapatkah saya menambahkan beberapa dadu dengan tipe yang sama?',
|
|
20
|
-
answer: 'Ya. Setiap klik pada dadu akan menambahkannya ke dalam kantong. Jika Anda mengeklik d6 tiga kali, kantong akan menunjukkan "3d6". Untuk mengurangi jumlahnya, klik tombol "−" yang muncul di samping setiap grup dadu di dalam kantong.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: 'Apakah dadu digital sama acaknya dengan dadu fisik?',
|
|
24
|
-
answer: 'Secara statistik, ya. Mesin JavaScript modern menggunakan algoritma pseudorandom (xorshift128+) dengan distribusi seragam berkualitas sangat tinggi. Dadu fisik asli dapat memiliki sedikit ketidaksempurnaan manufaktur yang membiaskan hasil; dadu digital tidak memiliki masalah tersebut.',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
question: 'Apa itu d100 dan bagaimana cara menggunakannya?',
|
|
28
|
-
answer: 'd100 (atau d%) menghasilkan angka dari 1 hingga 100 dan digunakan dalam sistem permainan berbasis persentase, seperti Call of Cthulhu atau Warhammer Fantasy Roleplay. Ini mewakili "probabilitas langsung": jika keahlian Stealth Anda adalah 65%, Anda harus melempar 65 atau kurang untuk berhasil.',
|
|
29
|
-
},
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
const howTo: DiceRollerLocaleContent['howTo'] = [
|
|
33
|
-
{ name: 'Bangun kumpulan dadu', text: 'Klik tombol dadu (d4, d6, d8...) untuk menambahkannya ke kumpulan Anda. Setiap klik menambah satu dadu dari tipe yang dipilih. Anda dapat mencampur berbagai tipe dalam satu lemparan.' },
|
|
34
|
-
{ name: 'Sesuaikan pengubah', text: 'Gunakan tombol "+" dan "−" di samping pengubah untuk menerapkan bonus atau penalti (seperti pengubah atribut di D&D). Pengubah secara otomatis ditambahkan ke total.' },
|
|
35
|
-
{ name: 'Lempar dadu', text: 'Tekan tombol "Lempar Dadu". Panel kanan menunjukkan total akhir dan rincian setiap dadu individu, dengan "crit" (maksimum) berwarna hijau dan "fumble" (minimum) berwarna merah.' },
|
|
36
|
-
{ name: 'Periksa riwayat', text: 'Setiap lemparan dicatat dalam riwayat dengan ekspresi dadu yang digunakan, hasil total, dan waktu tepatnya. Anda dapat menghapus riwayat dengan tombol yang sesuai.' },
|
|
37
|
-
];
|
|
38
|
-
|
|
39
|
-
const faqSchema: WithContext<FAQPage> = {
|
|
40
|
-
'@context': 'https://schema.org',
|
|
41
|
-
'@type': 'FAQPage',
|
|
42
|
-
mainEntity: faq.map((item) => ({
|
|
43
|
-
'@type': 'Question',
|
|
44
|
-
name: item.question,
|
|
45
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
46
|
-
})),
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const howToSchema: WithContext<HowTo> = {
|
|
50
|
-
'@context': 'https://schema.org',
|
|
51
|
-
'@type': 'HowTo',
|
|
52
|
-
name: title,
|
|
53
|
-
description,
|
|
54
|
-
step: howTo.map((step) => ({
|
|
55
|
-
'@type': 'HowToStep',
|
|
56
|
-
name: step.name,
|
|
57
|
-
text: step.text,
|
|
58
|
-
})),
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
62
|
-
'@context': 'https://schema.org',
|
|
63
|
-
'@type': 'SoftwareApplication',
|
|
64
|
-
name: title,
|
|
65
|
-
description,
|
|
66
|
-
applicationCategory: 'UtilitiesApplication',
|
|
67
|
-
operatingSystem: 'Web',
|
|
68
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
69
|
-
inLanguage: 'id',
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const content: DiceRollerLocaleContent = {
|
|
73
|
-
slug,
|
|
74
|
-
title,
|
|
75
|
-
description,
|
|
76
|
-
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
77
|
-
ui: {
|
|
78
|
-
title: 'Pengocok Dadu',
|
|
79
|
-
description: 'Semoga keberuntungan menyertai Anda.',
|
|
80
|
-
rollBtn: 'Lempar Dadu',
|
|
81
|
-
totalLabel: 'Total',
|
|
82
|
-
historyLabel: 'Riwayat',
|
|
83
|
-
clearHistoryBtn: 'Hapus Riwayat',
|
|
84
|
-
faqTitle: 'FAQ',
|
|
85
|
-
bibliographyTitle: 'Referensi',
|
|
86
|
-
addDiceLabel: 'Tambahkan dadu ke kantong',
|
|
87
|
-
bagLabel: 'Kantong dadu',
|
|
88
|
-
emptyBagBtn: 'Kosongkan',
|
|
89
|
-
emptyBagText: 'Klik dadu untuk menambahkan',
|
|
90
|
-
modifierLabel: 'Pengubah',
|
|
91
|
-
rollManyLabel: 'Lempar $COUNT dadu',
|
|
92
|
-
rollOneLabel: 'Lempar $COUNT dadu',
|
|
93
|
-
preRollText: 'Tambahkan dadu dan lempar',
|
|
94
|
-
emptyHistoryText: 'Riwayat lemparan akan muncul di sini'
|
|
95
|
-
},
|
|
96
|
-
seo: [
|
|
97
|
-
{ type: 'title', text: 'Seni Keacakan: Sejarah dan Matematika Dadu', level: 2 },
|
|
98
|
-
{ type: 'paragraph', html: 'Dadu adalah salah satu generator keacakan tertua umat manusia. <strong>Astragali</strong> - tulang pergelangan kaki domba dan kambing - digunakan sebagai dadu empat sisi primitif sejak 5000 SM di Mesopotamia dan Mesir. Evolusi dari tulang ukir menjadi ikosahedron resin epoksi modern bukan sekadar estetika: ini adalah perjalanan melalui teori probabilitas dan desain mekanik permainan.' },
|
|
99
|
-
{ type: 'title', text: 'Keluarga Dadu Standar', level: 3 },
|
|
100
|
-
{ type: 'paragraph', html: 'Set dadu yang paling luas dalam permainan peran - dipopulerkan oleh <strong>Dungeons & Dragons</strong> pada tahun 1974 - terdiri dari lima bangun ruang Platonik ditambah dua bentuk tambahan: d4 (tetrahedron), d6 (kubus), d8 (oktahedron), d10 (pentagonal trapezohedron), d12 (dodekahedron), d20 (ikosahedron), dan d100 (dadu persentil). Setiap polihedron menjamin distribusi seragam: semua sisi memiliki probabilitas yang sama persis untuk muncul.' },
|
|
101
|
-
{ type: 'list', items: [
|
|
102
|
-
'<strong>d4 - Tetrahedron:</strong> Paling berbahaya jika terinjak dengan kaki telanjang. Empat sisi segitiga, probabilitas 25% per sisi. Umumnya digunakan untuk kerusakan belati atau mantra tingkat rendah.',
|
|
103
|
-
'<strong>d6 - Kubus:</strong> Dadu yang paling universal. Hadir di semua permainan papan sejak senet Mesir. Geometri kubusnya menjamin ekuidistribusi yang sempurna.',
|
|
104
|
-
'<strong>d8 - Oktahedron:</strong> Dadu untuk tombak atau kapak perang. Delapan sisi segitiga sama sisi. Probabilitas 12,5% per sisi.',
|
|
105
|
-
'<strong>d10 - Pentagonal Trapezohedron:</strong> Satu-satunya bangun ruang non-Platonik dalam set standar. Dua sisi berlawanan per "verteks". Penting untuk d100 (dua d10 digabungkan).',
|
|
106
|
-
'<strong>d12 - Dodekahedron:</strong> Dadunya kaum barbarian. Dua belas sisi pentagonal. Kurang dihargai di banyak sistem, protagonis di D&D 5e Barbarian.',
|
|
107
|
-
'<strong>d20 - Ikosahedron:</strong> Rajanya RPG. Dua puluh sisi segitiga. Protagonis dari sistem d20: menentukan keberhasilan atau kegagalan hampir semua tindakan.',
|
|
108
|
-
'<strong>d100 - Persentil:</strong> Dua d10 digabungkan (puluhan + satuan). Mendefinisikan probabilitas halus dalam sistem seperti Call of Cthulhu atau Warhammer Fantasy.',
|
|
109
|
-
]},
|
|
110
|
-
{ type: 'stats', items: [
|
|
111
|
-
{ value: '5000 SM', label: 'Dadu pertama (astragali)', icon: 'mdi:history' },
|
|
112
|
-
{ value: '1974', label: 'D&D mempopulerkan set ini', icon: 'mdi:sword' },
|
|
113
|
-
{ value: '7 tipe', label: 'Dadu RPG standar', icon: 'mdi:dice-multiple' },
|
|
114
|
-
{ value: '2¹²⁸', label: 'Periode acak JS', icon: 'mdi:function-variant' },
|
|
115
|
-
], columns: 4 },
|
|
116
|
-
{ type: 'title', text: 'Probabilitas dan Kurva Distribusi', level: 3 },
|
|
117
|
-
{ type: 'paragraph', html: 'Saat Anda melempar satu dadu, Anda mendapatkan <strong>distribusi seragam diskrit</strong>: setiap hasil memiliki probabilitas yang sama persis (1/n). Namun segera setelah Anda menggabungkan beberapa dadu, keajaiban matematika mengubah kurva datar itu menjadi <strong>perkiraan distribusi normal</strong>. Itulah mengapa 2d6 tidak sama dengan 1d12: dengan dua dadu enam sisi, probabilitas melempar angka 7 adalah 6/36 ≈ 16,7%, sedangkan hasil ekstrem (2 dan 12) hanya terjadi 2,8% dari waktu.' },
|
|
118
|
-
{ type: 'tip', title: 'Keuntungan dan Kerugian (D&D 5e)', html: 'Mekanik <strong>Keuntungan</strong> terdiri dari melempar 2d20 dan mengambil hasil yang lebih tinggi. Secara matematis, ini menaikkan rata-rata dari 10,5 menjadi sekitar 13,8. <strong>Kerugian</strong> melakukan sebaliknya: ambil yang lebih rendah, menurunkan rata-rata menjadi sekitar 7,2. Pengocok kami memungkinkan Anda mensimulasikan ini dengan menambahkan dua d20 ke kantong dan membandingkan hasil individunya.' },
|
|
119
|
-
{ type: 'title', text: 'Pengubah: Jembatan Antara Dadu dan Karakter', level: 3 },
|
|
120
|
-
{ type: 'paragraph', html: 'Dalam sebagian besar sistem RPG, dadu tidak bertindak sendiri: <strong>pengubah</strong> yang mewakili kemampuan karakter ditambahkan atau dikurangi. Di D&D 5e, pengubah Kekuatan +5 berarti Anda melempar 1d20, menambah 5, dan memeriksa hasilnya terhadap Armor Class musuh. Pengocok kami menyertakan kontrol pengubah untuk mencerminkan mekanik ini secara setia.' },
|
|
121
|
-
{ type: 'tip', title: 'Standar Notasi Dadu', html: 'Notasi <strong>XdY+Z</strong> adalah standar de facto dalam permainan peran: X dadu dengan Y sisi dengan pengubah Z. "3d6+2" berarti lempar tiga dadu enam sisi dan tambahkan 2 ke totalnya. Alat kami menggunakan notasi ini dalam riwayat sehingga Anda dapat dengan mudah membagikan atau mencatat lemparan Anda.' },
|
|
122
|
-
{ type: 'glossary', items: [
|
|
123
|
-
{ term: 'Critical Hit', definition: 'Lemparan nilai maksimum pada dadu (misalnya, melempar 20 pada d20). Biasanya memicu efek bonus khusus di sebagian besar sistem RPG.' },
|
|
124
|
-
{ term: 'Fumble / Nat 1', definition: 'Melempar nilai minimum (1) pada dadu. Seringkali menghasilkan kegagalan dramatis atau konsekuensi negatif.' },
|
|
125
|
-
{ term: 'Dice Pool', definition: 'Kumpulan dadu yang dilempar secara bersamaan. Kumpulan dalam alat kami menunjukkan setiap tipe dadu yang dikelompokkan berdasarkan jumlah (misalnya, 3d6 + 2d8).' },
|
|
126
|
-
{ term: 'Modifier', definition: 'Angka tetap yang ditambahkan atau dikurangi dari hasil lemparan, mewakili keahlian karakter, bonus atribut, atau penalti situasional.' },
|
|
127
|
-
{ term: 'Percentile Roll', definition: 'Lemparan menggunakan dua d10 untuk menghasilkan hasil dari 1-100, digunakan dalam sistem berbasis keahlian di mana kemampuan diukur sebagai persentase.' },
|
|
128
|
-
]},
|
|
129
|
-
],
|
|
130
|
-
faq,
|
|
131
|
-
bibliography,
|
|
132
|
-
howTo,
|
|
133
|
-
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
134
|
-
};
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { DiceRollerLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug: string = 'pengocok-dadu';
|
|
6
|
+
const title: string = 'Pengocok Dadu';
|
|
7
|
+
const description: string = 'Simulator dadu lengkap untuk RPG dan permainan papan Anda. Lempar d4, d6, d8, d10, d12, d20, dan d100 dengan pengubah dan riwayat.';
|
|
8
|
+
|
|
9
|
+
const faq: DiceRollerLocaleContent['faq'] = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Bagaimana cara mensimulasikan lemparan dengan keuntungan (advantage - D&D)?',
|
|
12
|
+
answer: 'Tambahkan dua dadu d20 ke dalam kantong dengan mengeklik tombol d20 dua kali. Saat melempar, perhatikan dua hasil individu dan ambil yang lebih tinggi. Total yang ditampilkan adalah jumlahnya, tetapi Anda dapat melihat masing-masing dadu secara terpisah dalam rincian hasil.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Apa arti warna hijau atau merah pada hasil?',
|
|
16
|
+
answer: 'Hasil berwarna hijau menunjukkan bahwa dadu tersebut menghasilkan nilai maksimum yang mungkin (sebuah "critical"). Hasil merah menunjukkan nilai minimum (sebuah "1", hasil terburuk yang mungkin). Ini memudahkan untuk mengenali "crit" dan "fumble" secara sekilas.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Dapatkah saya menambahkan beberapa dadu dengan tipe yang sama?',
|
|
20
|
+
answer: 'Ya. Setiap klik pada dadu akan menambahkannya ke dalam kantong. Jika Anda mengeklik d6 tiga kali, kantong akan menunjukkan "3d6". Untuk mengurangi jumlahnya, klik tombol "−" yang muncul di samping setiap grup dadu di dalam kantong.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Apakah dadu digital sama acaknya dengan dadu fisik?',
|
|
24
|
+
answer: 'Secara statistik, ya. Mesin JavaScript modern menggunakan algoritma pseudorandom (xorshift128+) dengan distribusi seragam berkualitas sangat tinggi. Dadu fisik asli dapat memiliki sedikit ketidaksempurnaan manufaktur yang membiaskan hasil; dadu digital tidak memiliki masalah tersebut.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Apa itu d100 dan bagaimana cara menggunakannya?',
|
|
28
|
+
answer: 'd100 (atau d%) menghasilkan angka dari 1 hingga 100 dan digunakan dalam sistem permainan berbasis persentase, seperti Call of Cthulhu atau Warhammer Fantasy Roleplay. Ini mewakili "probabilitas langsung": jika keahlian Stealth Anda adalah 65%, Anda harus melempar 65 atau kurang untuk berhasil.',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howTo: DiceRollerLocaleContent['howTo'] = [
|
|
33
|
+
{ name: 'Bangun kumpulan dadu', text: 'Klik tombol dadu (d4, d6, d8...) untuk menambahkannya ke kumpulan Anda. Setiap klik menambah satu dadu dari tipe yang dipilih. Anda dapat mencampur berbagai tipe dalam satu lemparan.' },
|
|
34
|
+
{ name: 'Sesuaikan pengubah', text: 'Gunakan tombol "+" dan "−" di samping pengubah untuk menerapkan bonus atau penalti (seperti pengubah atribut di D&D). Pengubah secara otomatis ditambahkan ke total.' },
|
|
35
|
+
{ name: 'Lempar dadu', text: 'Tekan tombol "Lempar Dadu". Panel kanan menunjukkan total akhir dan rincian setiap dadu individu, dengan "crit" (maksimum) berwarna hijau dan "fumble" (minimum) berwarna merah.' },
|
|
36
|
+
{ name: 'Periksa riwayat', text: 'Setiap lemparan dicatat dalam riwayat dengan ekspresi dadu yang digunakan, hasil total, dan waktu tepatnya. Anda dapat menghapus riwayat dengan tombol yang sesuai.' },
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
40
|
+
'@context': 'https://schema.org',
|
|
41
|
+
'@type': 'FAQPage',
|
|
42
|
+
mainEntity: faq.map((item) => ({
|
|
43
|
+
'@type': 'Question',
|
|
44
|
+
name: item.question,
|
|
45
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
46
|
+
})),
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const howToSchema: WithContext<HowTo> = {
|
|
50
|
+
'@context': 'https://schema.org',
|
|
51
|
+
'@type': 'HowTo',
|
|
52
|
+
name: title,
|
|
53
|
+
description,
|
|
54
|
+
step: howTo.map((step) => ({
|
|
55
|
+
'@type': 'HowToStep',
|
|
56
|
+
name: step.name,
|
|
57
|
+
text: step.text,
|
|
58
|
+
})),
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
62
|
+
'@context': 'https://schema.org',
|
|
63
|
+
'@type': 'SoftwareApplication',
|
|
64
|
+
name: title,
|
|
65
|
+
description,
|
|
66
|
+
applicationCategory: 'UtilitiesApplication',
|
|
67
|
+
operatingSystem: 'Web',
|
|
68
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
69
|
+
inLanguage: 'id',
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const content: DiceRollerLocaleContent = {
|
|
73
|
+
slug,
|
|
74
|
+
title,
|
|
75
|
+
description,
|
|
76
|
+
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
77
|
+
ui: {
|
|
78
|
+
title: 'Pengocok Dadu',
|
|
79
|
+
description: 'Semoga keberuntungan menyertai Anda.',
|
|
80
|
+
rollBtn: 'Lempar Dadu',
|
|
81
|
+
totalLabel: 'Total',
|
|
82
|
+
historyLabel: 'Riwayat',
|
|
83
|
+
clearHistoryBtn: 'Hapus Riwayat',
|
|
84
|
+
faqTitle: 'FAQ',
|
|
85
|
+
bibliographyTitle: 'Referensi',
|
|
86
|
+
addDiceLabel: 'Tambahkan dadu ke kantong',
|
|
87
|
+
bagLabel: 'Kantong dadu',
|
|
88
|
+
emptyBagBtn: 'Kosongkan',
|
|
89
|
+
emptyBagText: 'Klik dadu untuk menambahkan',
|
|
90
|
+
modifierLabel: 'Pengubah',
|
|
91
|
+
rollManyLabel: 'Lempar $COUNT dadu',
|
|
92
|
+
rollOneLabel: 'Lempar $COUNT dadu',
|
|
93
|
+
preRollText: 'Tambahkan dadu dan lempar',
|
|
94
|
+
emptyHistoryText: 'Riwayat lemparan akan muncul di sini'
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{ type: 'title', text: 'Seni Keacakan: Sejarah dan Matematika Dadu', level: 2 },
|
|
98
|
+
{ type: 'paragraph', html: 'Dadu adalah salah satu generator keacakan tertua umat manusia. <strong>Astragali</strong> - tulang pergelangan kaki domba dan kambing - digunakan sebagai dadu empat sisi primitif sejak 5000 SM di Mesopotamia dan Mesir. Evolusi dari tulang ukir menjadi ikosahedron resin epoksi modern bukan sekadar estetika: ini adalah perjalanan melalui teori probabilitas dan desain mekanik permainan.' },
|
|
99
|
+
{ type: 'title', text: 'Keluarga Dadu Standar', level: 3 },
|
|
100
|
+
{ type: 'paragraph', html: 'Set dadu yang paling luas dalam permainan peran - dipopulerkan oleh <strong>Dungeons & Dragons</strong> pada tahun 1974 - terdiri dari lima bangun ruang Platonik ditambah dua bentuk tambahan: d4 (tetrahedron), d6 (kubus), d8 (oktahedron), d10 (pentagonal trapezohedron), d12 (dodekahedron), d20 (ikosahedron), dan d100 (dadu persentil). Setiap polihedron menjamin distribusi seragam: semua sisi memiliki probabilitas yang sama persis untuk muncul.' },
|
|
101
|
+
{ type: 'list', items: [
|
|
102
|
+
'<strong>d4 - Tetrahedron:</strong> Paling berbahaya jika terinjak dengan kaki telanjang. Empat sisi segitiga, probabilitas 25% per sisi. Umumnya digunakan untuk kerusakan belati atau mantra tingkat rendah.',
|
|
103
|
+
'<strong>d6 - Kubus:</strong> Dadu yang paling universal. Hadir di semua permainan papan sejak senet Mesir. Geometri kubusnya menjamin ekuidistribusi yang sempurna.',
|
|
104
|
+
'<strong>d8 - Oktahedron:</strong> Dadu untuk tombak atau kapak perang. Delapan sisi segitiga sama sisi. Probabilitas 12,5% per sisi.',
|
|
105
|
+
'<strong>d10 - Pentagonal Trapezohedron:</strong> Satu-satunya bangun ruang non-Platonik dalam set standar. Dua sisi berlawanan per "verteks". Penting untuk d100 (dua d10 digabungkan).',
|
|
106
|
+
'<strong>d12 - Dodekahedron:</strong> Dadunya kaum barbarian. Dua belas sisi pentagonal. Kurang dihargai di banyak sistem, protagonis di D&D 5e Barbarian.',
|
|
107
|
+
'<strong>d20 - Ikosahedron:</strong> Rajanya RPG. Dua puluh sisi segitiga. Protagonis dari sistem d20: menentukan keberhasilan atau kegagalan hampir semua tindakan.',
|
|
108
|
+
'<strong>d100 - Persentil:</strong> Dua d10 digabungkan (puluhan + satuan). Mendefinisikan probabilitas halus dalam sistem seperti Call of Cthulhu atau Warhammer Fantasy.',
|
|
109
|
+
]},
|
|
110
|
+
{ type: 'stats', items: [
|
|
111
|
+
{ value: '5000 SM', label: 'Dadu pertama (astragali)', icon: 'mdi:history' },
|
|
112
|
+
{ value: '1974', label: 'D&D mempopulerkan set ini', icon: 'mdi:sword' },
|
|
113
|
+
{ value: '7 tipe', label: 'Dadu RPG standar', icon: 'mdi:dice-multiple' },
|
|
114
|
+
{ value: '2¹²⁸', label: 'Periode acak JS', icon: 'mdi:function-variant' },
|
|
115
|
+
], columns: 4 },
|
|
116
|
+
{ type: 'title', text: 'Probabilitas dan Kurva Distribusi', level: 3 },
|
|
117
|
+
{ type: 'paragraph', html: 'Saat Anda melempar satu dadu, Anda mendapatkan <strong>distribusi seragam diskrit</strong>: setiap hasil memiliki probabilitas yang sama persis (1/n). Namun segera setelah Anda menggabungkan beberapa dadu, keajaiban matematika mengubah kurva datar itu menjadi <strong>perkiraan distribusi normal</strong>. Itulah mengapa 2d6 tidak sama dengan 1d12: dengan dua dadu enam sisi, probabilitas melempar angka 7 adalah 6/36 ≈ 16,7%, sedangkan hasil ekstrem (2 dan 12) hanya terjadi 2,8% dari waktu.' },
|
|
118
|
+
{ type: 'tip', title: 'Keuntungan dan Kerugian (D&D 5e)', html: 'Mekanik <strong>Keuntungan</strong> terdiri dari melempar 2d20 dan mengambil hasil yang lebih tinggi. Secara matematis, ini menaikkan rata-rata dari 10,5 menjadi sekitar 13,8. <strong>Kerugian</strong> melakukan sebaliknya: ambil yang lebih rendah, menurunkan rata-rata menjadi sekitar 7,2. Pengocok kami memungkinkan Anda mensimulasikan ini dengan menambahkan dua d20 ke kantong dan membandingkan hasil individunya.' },
|
|
119
|
+
{ type: 'title', text: 'Pengubah: Jembatan Antara Dadu dan Karakter', level: 3 },
|
|
120
|
+
{ type: 'paragraph', html: 'Dalam sebagian besar sistem RPG, dadu tidak bertindak sendiri: <strong>pengubah</strong> yang mewakili kemampuan karakter ditambahkan atau dikurangi. Di D&D 5e, pengubah Kekuatan +5 berarti Anda melempar 1d20, menambah 5, dan memeriksa hasilnya terhadap Armor Class musuh. Pengocok kami menyertakan kontrol pengubah untuk mencerminkan mekanik ini secara setia.' },
|
|
121
|
+
{ type: 'tip', title: 'Standar Notasi Dadu', html: 'Notasi <strong>XdY+Z</strong> adalah standar de facto dalam permainan peran: X dadu dengan Y sisi dengan pengubah Z. "3d6+2" berarti lempar tiga dadu enam sisi dan tambahkan 2 ke totalnya. Alat kami menggunakan notasi ini dalam riwayat sehingga Anda dapat dengan mudah membagikan atau mencatat lemparan Anda.' },
|
|
122
|
+
{ type: 'glossary', items: [
|
|
123
|
+
{ term: 'Critical Hit', definition: 'Lemparan nilai maksimum pada dadu (misalnya, melempar 20 pada d20). Biasanya memicu efek bonus khusus di sebagian besar sistem RPG.' },
|
|
124
|
+
{ term: 'Fumble / Nat 1', definition: 'Melempar nilai minimum (1) pada dadu. Seringkali menghasilkan kegagalan dramatis atau konsekuensi negatif.' },
|
|
125
|
+
{ term: 'Dice Pool', definition: 'Kumpulan dadu yang dilempar secara bersamaan. Kumpulan dalam alat kami menunjukkan setiap tipe dadu yang dikelompokkan berdasarkan jumlah (misalnya, 3d6 + 2d8).' },
|
|
126
|
+
{ term: 'Modifier', definition: 'Angka tetap yang ditambahkan atau dikurangi dari hasil lemparan, mewakili keahlian karakter, bonus atribut, atau penalti situasional.' },
|
|
127
|
+
{ term: 'Percentile Roll', definition: 'Lemparan menggunakan dua d10 untuk menghasilkan hasil dari 1-100, digunakan dalam sistem berbasis keahlian di mana kemampuan diukur sebagai persentase.' },
|
|
128
|
+
]},
|
|
129
|
+
],
|
|
130
|
+
faq,
|
|
131
|
+
bibliography,
|
|
132
|
+
howTo,
|
|
133
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
134
|
+
};
|