@jjlmoya/utils-creative 1.26.0 → 1.27.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 +69 -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 = 'lanciatore-di-dadi';
|
|
6
|
-
const title = 'Lanciatore di Dadi';
|
|
7
|
-
const description = 'Un simulatore di dadi completo per i tuoi giochi di ruolo e da tavolo. Lanci d4, d6, d8, d10, d12, d20 e d100 con modificatori e cronologia.';
|
|
8
|
-
|
|
9
|
-
const faq: DiceRollerLocaleContent['faq'] = [
|
|
10
|
-
{
|
|
11
|
-
question: 'Come posso simulare un tiro con vantaggio (D&D)?',
|
|
12
|
-
answer: 'Aggiungi due dadi d20 al sacchetto cliccando due volte sul pulsante d20. Durante il lancio, osserva i due risultati individuali e tieni il più alto. Il totale visualizzato sarà la somma, ma puoi vedere ogni dado separatamente nel dettaglio del risultato.',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
question: 'Cosa significa il colore verde o rosso sui risultati?',
|
|
16
|
-
answer: 'I risultati verdi indicano che il dado ha ottenuto il suo valore massimo possibile (un "critico"). I risultati rossi indicano il valore minimo (un "1", il peggior risultato possibile). Questo permette di individuare critici e fallimenti a colpo d\'occhio.',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
question: 'Posso aggiungere più dadi dello stesso tipo?',
|
|
20
|
-
answer: 'Sì. Ogni clic su un dado lo aggiunge al sacchetto. Se clicchi tre volte sul d6, il sacchetto mostrerà "3d6". Per ridurre il conteggio, clicca sul pulsante "−" che appare accanto a ogni gruppo di dadi nel sacchetto.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: 'I dadi digitali sono casuali come quelli fisici?',
|
|
24
|
-
answer: 'Statisticamente sì. I motori JavaScript moderni utilizzano algoritmi pseudocasuali (xorshift128+) con una distribuzione uniforme di altissima qualità. Un dado fisico reale può avere piccole imperfezioni di fabbricazione che influenzano i risultati; il dado digitale non ha questo problema.',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
question: 'Cos\'è il d100 e come si usa?',
|
|
28
|
-
answer: 'Il d100 (o d%) genera un numero da 1 a 100 ed è usato in sistemi di gioco basati sulla percentuale, come Il Richiamo di Cthulhu o Warhammer Fantasy Roleplay. Rappresenta la "probabilità diretta": se la tua abilità Furtività è del 65%, devi ottenere 65 o meno per avere successo.',
|
|
29
|
-
},
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
const howTo: DiceRollerLocaleContent['howTo'] = [
|
|
33
|
-
{ name: 'Componi il pool di dadi', text: 'Clicca sui pulsanti dei dadi (d4, d6, d8...) per aggiungerli al tuo pool. Ogni clic aggiunge un dado del tipo selezionato. Puoi mescolare diversi tipi nello stesso lancio.' },
|
|
34
|
-
{ name: 'Regola il modificatore', text: 'Usa i pulsanti "+" e "−" accanto al modificatore per applicare bonus o penalità (come il modificatore di caratteristica in D&D). Il modificatore viene aggiunto automaticamente al totale.' },
|
|
35
|
-
{ name: 'Lancia i dadi', text: 'Premi il pulsante "Lancia Dadi". Il pannello a destra mostra il totale finale e il dettaglio di ogni singolo dado, con i critici (massimo) in verde e i fallimenti (minimo) in rosso.' },
|
|
36
|
-
{ name: 'Controlla la cronologia', text: 'Ogni lancio viene registrato nella cronologia con la notazione dei dadi utilizzata, il risultato totale e l\'ora esatta. Puoi cancellare la cronologia con il pulsante corrispondente.' },
|
|
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: 'it',
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const content: DiceRollerLocaleContent = {
|
|
73
|
-
slug,
|
|
74
|
-
title,
|
|
75
|
-
description,
|
|
76
|
-
faqTitle: 'Domande Frequenti',
|
|
77
|
-
ui: {
|
|
78
|
-
title: 'Lanciatore di Dadi',
|
|
79
|
-
description: 'Che la fortuna sia con te.',
|
|
80
|
-
rollBtn: 'Lancia Dadi',
|
|
81
|
-
totalLabel: 'Totale',
|
|
82
|
-
historyLabel: 'Cronologia',
|
|
83
|
-
clearHistoryBtn: 'Cancella Cronologia',
|
|
84
|
-
faqTitle: 'FAQ',
|
|
85
|
-
bibliographyTitle: 'Riferimenti',
|
|
86
|
-
addDiceLabel: 'Aggiungi dadi al sacchetto',
|
|
87
|
-
bagLabel: 'Sacchetto dei dadi',
|
|
88
|
-
emptyBagBtn: 'Svuota',
|
|
89
|
-
emptyBagText: 'Clicca sui dadi per aggiungerli',
|
|
90
|
-
modifierLabel: 'Modificatore',
|
|
91
|
-
rollManyLabel: 'Lancia $COUNT dadi',
|
|
92
|
-
rollOneLabel: 'Lancia $COUNT dado',
|
|
93
|
-
preRollText: 'Aggiungi i dadi e lancia',
|
|
94
|
-
emptyHistoryText: 'La cronologia dei lanci apparirà qui'
|
|
95
|
-
},
|
|
96
|
-
seo: [
|
|
97
|
-
{ type: 'title', text: 'L\'Arte della Casualità: Storia e Matematica dei Dadi', level: 2 },
|
|
98
|
-
{ type: 'paragraph', html: 'I dadi sono tra i più antichi generatori di casualità dell\'umanità. Gli <strong>astragali</strong> - ossa della caviglia di pecore e capre - venivano usati come primitivi dadi a quattro facce già nel 5000 a.C. in Mesopotamia ed Egitto. L\'evoluzione dall\'osso intagliato ai moderni icosaedri in resina epossidica non è solo estetica: è un viaggio attraverso la teoria della probabilità e il design delle meccaniche di gioco.' },
|
|
99
|
-
{ type: 'title', text: 'La Famiglia Standard dei Dadi', level: 3 },
|
|
100
|
-
{ type: 'paragraph', html: 'Il set di dadi più diffuso nei giochi di ruolo - reso popolare da <strong>Dungeons & Dragons</strong> nel 1974 - consiste dei cinque solidi platonici più due forme aggiuntive: d4 (tetraedro), d6 (cubo), d8 (ottaedro), d10 (trapezoedro pentagonale), d12 (dodecaedro), d20 (icosaedro) e d100 (dado percentuale). Ogni poliedro garantisce una distribuzione uniforme: tutte le facce hanno esattamente la stessa probabilità di uscire.' },
|
|
101
|
-
{ type: 'list', items: [
|
|
102
|
-
'<strong>d4 - Tetraedro:</strong> Il più pericoloso se calpestato a piedi nudi. Quattro facce triangolari, 25% di probabilità per faccia. Comunemente usato per il danno dei pugnali o incantesimi di basso livello.',
|
|
103
|
-
'<strong>d6 - Cubo:</strong> Il dado più universale. Presente in tutti i giochi da tavolo sin dal senet egizio. La sua geometria cubica garantisce una perfetta equidistribuzione.',
|
|
104
|
-
'<strong>d8 - Ottaedro:</strong> Il dado della lancia o dell\'ascia da battaglia. Otto facce triangolari equilatere. 12,5% di probabilità per faccia.',
|
|
105
|
-
'<strong>d10 - Trapezoedro Pentagonale:</strong> L\'unico solido non platonico nel set standard. Due facce opposte per ogni "vertice". Essenziale per il d100 (due d10 combinati).',
|
|
106
|
-
'<strong>d12 - Dodecaedro:</strong> Il dado del barbaro. Dodici facce pentagonali. Sottovalutato in molti sistemi, protagonista del Barbaro in D&D 5e.',
|
|
107
|
-
'<strong>d20 - Icosaedro:</strong> Il re dei GDR. Venti facce triangolari. Protagonista del sistema d20: determina il successo o il fallimento di quasi tutte le azioni.',
|
|
108
|
-
'<strong>d100 - Percentuale:</strong> Due d10 combinati (decine + unità). Definisce probabilità precise in sistemi come Il Richiamo di Cthulhu o Warhammer Fantasy.',
|
|
109
|
-
]},
|
|
110
|
-
{ type: 'stats', items: [
|
|
111
|
-
{ value: '5000 a.C.', label: 'Primi dadi (astragali)', icon: 'mdi:history' },
|
|
112
|
-
{ value: '1974', label: 'D&D rese popolare il set', icon: 'mdi:sword' },
|
|
113
|
-
{ value: '7 tipi', label: 'Dadi standard da GDR', icon: 'mdi:dice-multiple' },
|
|
114
|
-
{ value: '2¹²⁸', label: 'Periodo casuale JS', icon: 'mdi:function-variant' },
|
|
115
|
-
], columns: 4 },
|
|
116
|
-
{ type: 'title', text: 'Probabilità e Curve di Distribuzione', level: 3 },
|
|
117
|
-
{ type: 'paragraph', html: 'Quando lanci un singolo dado, ottieni una <strong>distribuzione uniforme discreta</strong>: ogni risultato ha esattamente la stessa probabilità (1/n). Ma non appena combini più dadi, la magia matematica trasforma quella curva piatta in una <strong>distribuzione normale approssimata</strong>. Ecco perché 2d6 non è uguale a 1d12: con due dadi a sei facce la probabilità di fare 7 è 6/36 ≈ 16,7%, mentre gli estremi (2 e 12) si verificano solo il 2,8% delle volte.' },
|
|
118
|
-
{ type: 'tip', title: 'Vantaggio e Svantaggio (D&D 5e)', html: 'La meccanica del <strong>Vantaggio</strong> consiste nel lanciare 2d20 e tenere il risultato più alto. Matematicamente, questo alza la media da 10,5 a circa 13,8. Lo <strong>Svantaggio</strong> fa l\'opposto: prendi il più basso, abbassando la media a circa 7,2. Il nostro lanciatore ti permette di simularlo aggiungendo due d20 al sacchetto e confrontando i risultati individuali.' },
|
|
119
|
-
{ type: 'title', text: 'Modificatori: Il Ponte tra Dadi e Personaggio', level: 3 },
|
|
120
|
-
{ type: 'paragraph', html: 'Nella maggior parte dei sistemi GDR, il dado non agisce da solo: viene aggiunto o sottratto un <strong>modificatore</strong> che rappresenta le abilità del personaggio. In D&D 5e, un modificatore di Forza di +5 significa che lanci 1d20, aggiungi 5 e controlli il risultato contro la Classe Armatura del nemico. Il nostro lanciatore include un controllo del modificatore per riflettere fedelmente queste meccaniche.' },
|
|
121
|
-
{ type: 'tip', title: 'Standard di Notazione dei Dadi', html: 'La notazione <strong>XdY+Z</strong> è lo standard de facto nei giochi di ruolo: X dadi da Y facce con modificatore Z. "3d6+2" significa lanciare tre dadi a sei facce e aggiungere 2 al totale. Il nostro strumento utilizza questa notazione nella cronologia così puoi facilmente condividere o registrare i tuoi lanci.' },
|
|
122
|
-
{ type: 'glossary', items: [
|
|
123
|
-
{ term: 'Colpo Critico', definition: 'Un tiro del valore massimo su un dado (es. 20 su un d20). Di solito attiva effetti bonus speciali nella maggior parte dei sistemi GDR.' },
|
|
124
|
-
{ term: 'Fallimento / 1 Naturale', definition: 'Ottenere il valore minimo (1) su un dado. Spesso risulta in un fallimento drammatico o in una conseguenza negativa.' },
|
|
125
|
-
{ term: 'Dice Pool', definition: 'Una collezione di dadi lanciati simultaneamente. Il pool nel nostro strumento mostra ogni tipo di dado raggruppato per quantità (es. 3d6 + 2d8).' },
|
|
126
|
-
{ term: 'Modificatore', definition: 'Un numero fisso aggiunto o sottratto dal risultato di un lancio, che rappresenta l\'abilità di un personaggio, il bonus di caratteristica o una penalità situazionale.' },
|
|
127
|
-
{ term: 'Tiro Percentuale', definition: 'Un lancio che utilizza due d10 per produrre un risultato da 1 a 100, usato in sistemi basati sulle abilità dove le capacità sono misurate in percentuali.' },
|
|
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 = 'lanciatore-di-dadi';
|
|
6
|
+
const title = 'Lanciatore di Dadi';
|
|
7
|
+
const description = 'Un simulatore di dadi completo per i tuoi giochi di ruolo e da tavolo. Lanci d4, d6, d8, d10, d12, d20 e d100 con modificatori e cronologia.';
|
|
8
|
+
|
|
9
|
+
const faq: DiceRollerLocaleContent['faq'] = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Come posso simulare un tiro con vantaggio (D&D)?',
|
|
12
|
+
answer: 'Aggiungi due dadi d20 al sacchetto cliccando due volte sul pulsante d20. Durante il lancio, osserva i due risultati individuali e tieni il più alto. Il totale visualizzato sarà la somma, ma puoi vedere ogni dado separatamente nel dettaglio del risultato.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Cosa significa il colore verde o rosso sui risultati?',
|
|
16
|
+
answer: 'I risultati verdi indicano che il dado ha ottenuto il suo valore massimo possibile (un "critico"). I risultati rossi indicano il valore minimo (un "1", il peggior risultato possibile). Questo permette di individuare critici e fallimenti a colpo d\'occhio.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Posso aggiungere più dadi dello stesso tipo?',
|
|
20
|
+
answer: 'Sì. Ogni clic su un dado lo aggiunge al sacchetto. Se clicchi tre volte sul d6, il sacchetto mostrerà "3d6". Per ridurre il conteggio, clicca sul pulsante "−" che appare accanto a ogni gruppo di dadi nel sacchetto.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'I dadi digitali sono casuali come quelli fisici?',
|
|
24
|
+
answer: 'Statisticamente sì. I motori JavaScript moderni utilizzano algoritmi pseudocasuali (xorshift128+) con una distribuzione uniforme di altissima qualità. Un dado fisico reale può avere piccole imperfezioni di fabbricazione che influenzano i risultati; il dado digitale non ha questo problema.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Cos\'è il d100 e come si usa?',
|
|
28
|
+
answer: 'Il d100 (o d%) genera un numero da 1 a 100 ed è usato in sistemi di gioco basati sulla percentuale, come Il Richiamo di Cthulhu o Warhammer Fantasy Roleplay. Rappresenta la "probabilità diretta": se la tua abilità Furtività è del 65%, devi ottenere 65 o meno per avere successo.',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howTo: DiceRollerLocaleContent['howTo'] = [
|
|
33
|
+
{ name: 'Componi il pool di dadi', text: 'Clicca sui pulsanti dei dadi (d4, d6, d8...) per aggiungerli al tuo pool. Ogni clic aggiunge un dado del tipo selezionato. Puoi mescolare diversi tipi nello stesso lancio.' },
|
|
34
|
+
{ name: 'Regola il modificatore', text: 'Usa i pulsanti "+" e "−" accanto al modificatore per applicare bonus o penalità (come il modificatore di caratteristica in D&D). Il modificatore viene aggiunto automaticamente al totale.' },
|
|
35
|
+
{ name: 'Lancia i dadi', text: 'Premi il pulsante "Lancia Dadi". Il pannello a destra mostra il totale finale e il dettaglio di ogni singolo dado, con i critici (massimo) in verde e i fallimenti (minimo) in rosso.' },
|
|
36
|
+
{ name: 'Controlla la cronologia', text: 'Ogni lancio viene registrato nella cronologia con la notazione dei dadi utilizzata, il risultato totale e l\'ora esatta. Puoi cancellare la cronologia con il pulsante corrispondente.' },
|
|
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: 'it',
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const content: DiceRollerLocaleContent = {
|
|
73
|
+
slug,
|
|
74
|
+
title,
|
|
75
|
+
description,
|
|
76
|
+
faqTitle: 'Domande Frequenti',
|
|
77
|
+
ui: {
|
|
78
|
+
title: 'Lanciatore di Dadi',
|
|
79
|
+
description: 'Che la fortuna sia con te.',
|
|
80
|
+
rollBtn: 'Lancia Dadi',
|
|
81
|
+
totalLabel: 'Totale',
|
|
82
|
+
historyLabel: 'Cronologia',
|
|
83
|
+
clearHistoryBtn: 'Cancella Cronologia',
|
|
84
|
+
faqTitle: 'FAQ',
|
|
85
|
+
bibliographyTitle: 'Riferimenti',
|
|
86
|
+
addDiceLabel: 'Aggiungi dadi al sacchetto',
|
|
87
|
+
bagLabel: 'Sacchetto dei dadi',
|
|
88
|
+
emptyBagBtn: 'Svuota',
|
|
89
|
+
emptyBagText: 'Clicca sui dadi per aggiungerli',
|
|
90
|
+
modifierLabel: 'Modificatore',
|
|
91
|
+
rollManyLabel: 'Lancia $COUNT dadi',
|
|
92
|
+
rollOneLabel: 'Lancia $COUNT dado',
|
|
93
|
+
preRollText: 'Aggiungi i dadi e lancia',
|
|
94
|
+
emptyHistoryText: 'La cronologia dei lanci apparirà qui'
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{ type: 'title', text: 'L\'Arte della Casualità: Storia e Matematica dei Dadi', level: 2 },
|
|
98
|
+
{ type: 'paragraph', html: 'I dadi sono tra i più antichi generatori di casualità dell\'umanità. Gli <strong>astragali</strong> - ossa della caviglia di pecore e capre - venivano usati come primitivi dadi a quattro facce già nel 5000 a.C. in Mesopotamia ed Egitto. L\'evoluzione dall\'osso intagliato ai moderni icosaedri in resina epossidica non è solo estetica: è un viaggio attraverso la teoria della probabilità e il design delle meccaniche di gioco.' },
|
|
99
|
+
{ type: 'title', text: 'La Famiglia Standard dei Dadi', level: 3 },
|
|
100
|
+
{ type: 'paragraph', html: 'Il set di dadi più diffuso nei giochi di ruolo - reso popolare da <strong>Dungeons & Dragons</strong> nel 1974 - consiste dei cinque solidi platonici più due forme aggiuntive: d4 (tetraedro), d6 (cubo), d8 (ottaedro), d10 (trapezoedro pentagonale), d12 (dodecaedro), d20 (icosaedro) e d100 (dado percentuale). Ogni poliedro garantisce una distribuzione uniforme: tutte le facce hanno esattamente la stessa probabilità di uscire.' },
|
|
101
|
+
{ type: 'list', items: [
|
|
102
|
+
'<strong>d4 - Tetraedro:</strong> Il più pericoloso se calpestato a piedi nudi. Quattro facce triangolari, 25% di probabilità per faccia. Comunemente usato per il danno dei pugnali o incantesimi di basso livello.',
|
|
103
|
+
'<strong>d6 - Cubo:</strong> Il dado più universale. Presente in tutti i giochi da tavolo sin dal senet egizio. La sua geometria cubica garantisce una perfetta equidistribuzione.',
|
|
104
|
+
'<strong>d8 - Ottaedro:</strong> Il dado della lancia o dell\'ascia da battaglia. Otto facce triangolari equilatere. 12,5% di probabilità per faccia.',
|
|
105
|
+
'<strong>d10 - Trapezoedro Pentagonale:</strong> L\'unico solido non platonico nel set standard. Due facce opposte per ogni "vertice". Essenziale per il d100 (due d10 combinati).',
|
|
106
|
+
'<strong>d12 - Dodecaedro:</strong> Il dado del barbaro. Dodici facce pentagonali. Sottovalutato in molti sistemi, protagonista del Barbaro in D&D 5e.',
|
|
107
|
+
'<strong>d20 - Icosaedro:</strong> Il re dei GDR. Venti facce triangolari. Protagonista del sistema d20: determina il successo o il fallimento di quasi tutte le azioni.',
|
|
108
|
+
'<strong>d100 - Percentuale:</strong> Due d10 combinati (decine + unità). Definisce probabilità precise in sistemi come Il Richiamo di Cthulhu o Warhammer Fantasy.',
|
|
109
|
+
]},
|
|
110
|
+
{ type: 'stats', items: [
|
|
111
|
+
{ value: '5000 a.C.', label: 'Primi dadi (astragali)', icon: 'mdi:history' },
|
|
112
|
+
{ value: '1974', label: 'D&D rese popolare il set', icon: 'mdi:sword' },
|
|
113
|
+
{ value: '7 tipi', label: 'Dadi standard da GDR', icon: 'mdi:dice-multiple' },
|
|
114
|
+
{ value: '2¹²⁸', label: 'Periodo casuale JS', icon: 'mdi:function-variant' },
|
|
115
|
+
], columns: 4 },
|
|
116
|
+
{ type: 'title', text: 'Probabilità e Curve di Distribuzione', level: 3 },
|
|
117
|
+
{ type: 'paragraph', html: 'Quando lanci un singolo dado, ottieni una <strong>distribuzione uniforme discreta</strong>: ogni risultato ha esattamente la stessa probabilità (1/n). Ma non appena combini più dadi, la magia matematica trasforma quella curva piatta in una <strong>distribuzione normale approssimata</strong>. Ecco perché 2d6 non è uguale a 1d12: con due dadi a sei facce la probabilità di fare 7 è 6/36 ≈ 16,7%, mentre gli estremi (2 e 12) si verificano solo il 2,8% delle volte.' },
|
|
118
|
+
{ type: 'tip', title: 'Vantaggio e Svantaggio (D&D 5e)', html: 'La meccanica del <strong>Vantaggio</strong> consiste nel lanciare 2d20 e tenere il risultato più alto. Matematicamente, questo alza la media da 10,5 a circa 13,8. Lo <strong>Svantaggio</strong> fa l\'opposto: prendi il più basso, abbassando la media a circa 7,2. Il nostro lanciatore ti permette di simularlo aggiungendo due d20 al sacchetto e confrontando i risultati individuali.' },
|
|
119
|
+
{ type: 'title', text: 'Modificatori: Il Ponte tra Dadi e Personaggio', level: 3 },
|
|
120
|
+
{ type: 'paragraph', html: 'Nella maggior parte dei sistemi GDR, il dado non agisce da solo: viene aggiunto o sottratto un <strong>modificatore</strong> che rappresenta le abilità del personaggio. In D&D 5e, un modificatore di Forza di +5 significa che lanci 1d20, aggiungi 5 e controlli il risultato contro la Classe Armatura del nemico. Il nostro lanciatore include un controllo del modificatore per riflettere fedelmente queste meccaniche.' },
|
|
121
|
+
{ type: 'tip', title: 'Standard di Notazione dei Dadi', html: 'La notazione <strong>XdY+Z</strong> è lo standard de facto nei giochi di ruolo: X dadi da Y facce con modificatore Z. "3d6+2" significa lanciare tre dadi a sei facce e aggiungere 2 al totale. Il nostro strumento utilizza questa notazione nella cronologia così puoi facilmente condividere o registrare i tuoi lanci.' },
|
|
122
|
+
{ type: 'glossary', items: [
|
|
123
|
+
{ term: 'Colpo Critico', definition: 'Un tiro del valore massimo su un dado (es. 20 su un d20). Di solito attiva effetti bonus speciali nella maggior parte dei sistemi GDR.' },
|
|
124
|
+
{ term: 'Fallimento / 1 Naturale', definition: 'Ottenere il valore minimo (1) su un dado. Spesso risulta in un fallimento drammatico o in una conseguenza negativa.' },
|
|
125
|
+
{ term: 'Dice Pool', definition: 'Una collezione di dadi lanciati simultaneamente. Il pool nel nostro strumento mostra ogni tipo di dado raggruppato per quantità (es. 3d6 + 2d8).' },
|
|
126
|
+
{ term: 'Modificatore', definition: 'Un numero fisso aggiunto o sottratto dal risultato di un lancio, che rappresenta l\'abilità di un personaggio, il bonus di caratteristica o una penalità situazionale.' },
|
|
127
|
+
{ term: 'Tiro Percentuale', definition: 'Un lancio che utilizza due d10 per produrre un risultato da 1 a 100, usato in sistemi basati sulle abilità dove le capacità sono misurate in percentuali.' },
|
|
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 = 'dice-roller';
|
|
6
|
-
const title = 'ダイスローラー';
|
|
7
|
-
const description = 'RPGやボードゲームに最適なダイスシミュレーター。d4, d6, d8, d10, d12, d20, d100に対応し、修正値の適用や履歴の確認も可能です。';
|
|
8
|
-
|
|
9
|
-
const faq: DiceRollerLocaleContent['faq'] = [
|
|
10
|
-
{
|
|
11
|
-
question: '「有利(アドバンテージ)」のロール(D&D)をシミュレートするには?',
|
|
12
|
-
answer: 'd20ボタンを2回クリックして、バッグにd20を2個追加します。ロールした際、2つの個別の結果を確認し、高い方の値を採用してください。表示される「合計」は合算値になりますが、結果の内訳(ブレイクダウン)で各ダイスの目を個別に確認できます。',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
question: '結果に表示される緑色や赤色の数字は何を意味していますか?',
|
|
16
|
-
answer: '緑色の数字は、そのダイスの最大値が出たこと(「クリティカル」)を示します。赤色の数字は、最小値(「1」、いわゆるファンブル)が出たことを示します。これにより、一目でクリティカルや致命的失敗を判断できます。',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
question: '同じ種類のダイスを複数追加できますか?',
|
|
20
|
-
answer: 'はい。ダイスボタンをクリックするたびにバッグに追加されます。d6を3回クリックすると、バッグには「3d6」と表示されます。個数を減らしたい場合は、バッグ内の各ダイスグループの横に表示される「−」ボタンをクリックしてください。',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: 'デジタルのダイスは物理的なダイスと同じくらいランダムですか?',
|
|
24
|
-
answer: '統計的には「はい」です。現代のJavaScriptエンジンは、非常に高品質で均一な分布を持つ擬似乱数アルゴリズム(xorshift128+)を使用しています。実物のダイスは製造上の微細な不備により偏りが生じることがありますが、デジタルのダイスにはその問題がありません。',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
question: 'd100とは何ですか?どのように使いますか?',
|
|
28
|
-
answer: 'd100(またはd%)は1から100までの数値を生成し、『クトゥルフの呼び声』や『ウォーハンマー・ファンタジーRPG』のようなパーセンテージベースのゲームシステムで使用されます。これは「直接的な確率」を表します。例えば、隠密技能が65%の場合、成功するにはロール結果が65以下である必要があります。',
|
|
29
|
-
},
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
const howTo: DiceRollerLocaleContent['howTo'] = [
|
|
33
|
-
{ name: 'ダイスプールを作成する', text: 'ダイスボタン(d4, d6, d8...)をクリックしてプールに追加します。クリックするごとにその種類のダイスが増えます。複数の種類を混ぜてロールすることも可能です。' },
|
|
34
|
-
{ name: '修正値を調整する', text: '修正値の横にある「+」と「−」ボタンを使って、ボーナスやペナルティ(D&Dの能力値修正など)を適用します。修正値は自動的に合計に加算されます。' },
|
|
35
|
-
{ name: 'ダイスを振る', text: '「ロール」ボタンを押します。右側のパネルに最終合計値と各ダイスの内訳が表示されます。最大値は緑、最小値は赤でハイライトされます。' },
|
|
36
|
-
{ name: '履歴を確認する', text: 'すべてのロールは、使用したダイス式、合計結果、正確な時刻と共に履歴に記録されます。履歴は専用ボタンで消去可能です。' },
|
|
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: 'ja',
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export const content: DiceRollerLocaleContent = {
|
|
73
|
-
slug,
|
|
74
|
-
title,
|
|
75
|
-
description,
|
|
76
|
-
faqTitle: 'よくある質問',
|
|
77
|
-
ui: {
|
|
78
|
-
title: 'ダイスローラー',
|
|
79
|
-
description: '幸運があなたと共にありますように。',
|
|
80
|
-
rollBtn: 'ロール',
|
|
81
|
-
totalLabel: '合計',
|
|
82
|
-
historyLabel: '履歴',
|
|
83
|
-
clearHistoryBtn: '履歴をクリア',
|
|
84
|
-
faqTitle: 'FAQ',
|
|
85
|
-
bibliographyTitle: '参考文献',
|
|
86
|
-
addDiceLabel: 'バッグにダイスを追加',
|
|
87
|
-
bagLabel: 'ダイスバッグ',
|
|
88
|
-
emptyBagBtn: '空にする',
|
|
89
|
-
emptyBagText: 'ダイスをクリックして追加',
|
|
90
|
-
modifierLabel: '修正値',
|
|
91
|
-
rollManyLabel: 'ダイスを$COUNT個振る',
|
|
92
|
-
rollOneLabel: 'ダイスを$COUNT個振る',
|
|
93
|
-
preRollText: 'ダイスを追加してロール',
|
|
94
|
-
emptyHistoryText: 'ここにロール履歴が表示されます'
|
|
95
|
-
},
|
|
96
|
-
seo: [
|
|
97
|
-
{ type: 'title', text: 'ランダムの芸術:ダイスの歴史と数学', level: 2 },
|
|
98
|
-
{ type: 'paragraph', html: 'ダイスは人類最古の乱数発生器の一つです。<strong>「アストラガルス」</strong>(羊や山羊の距骨)は、紀元前5000年のメソポタミアやエジプトですでに原始的な4面ダイスとして使われていました。削り出された骨から現代のエポキシ樹脂製20面体への進化は、単なる美学ではなく、確率論とゲームメカニクス設計の歴史そのものです。' },
|
|
99
|
-
{ type: 'title', text: '標準的なダイスファミリー', level: 3 },
|
|
100
|
-
{ type: 'paragraph', html: '1974年に<strong>『ダンジョンズ&ドラゴンズ』</strong>によって普及したロールプレイングゲームで最も一般的なダイスセットは、5つのプラトン立体に2つの形状を加えたもので構成されています:d4(正四面体)、d6(正六面体)、d8(正八面体)、d10(五角柱状多面体)、d12(正十二面体)、d20(正二十面体)、そしてd100(パーセンタイル)。各多面体は均一な分布を保証しており、すべての面が出る確率は全く同じです。' },
|
|
101
|
-
{ type: 'list', items: [
|
|
102
|
-
'<strong>d4 - 正四面体:</strong> 裸足で踏むと最も危険。4つの三角形の面を持ち、各面が出る確率は25%。短剣のダメージや低レベルの呪文によく使われます。',
|
|
103
|
-
'<strong>d6 - 正六面体:</strong> 最も普遍的なダイス。古代エジプトのセネト以来、あらゆるボードゲームに存在します。その立方体形状は完璧な等分布を保証します。',
|
|
104
|
-
'<strong>d8 - 正八面体:</strong> 槍やバトルアックスのダイス。8つの正三角形の面を持ち、各面が出る確率は12.5%です。',
|
|
105
|
-
'<strong>d10 - 五角柱状多面体:</strong> 標準セットの中で唯一、プラトン立体ではない形状。「頂点」ごとに2つの対向する面があります。d100(2つのd10の組み合わせ)に不可欠です。',
|
|
106
|
-
'<strong>d12 - 正十二面体:</strong> バーバリアンのダイス。12個の五角形の面。多くのシステムで過小評価されていますが、D&D 5版のバーバリアンでは主役です。',
|
|
107
|
-
'<strong>d20 - 正二十面体:</strong> RPGの王様。20の三角形の面。d20システムの主役であり、ほぼすべての行動の成否を決定します。',
|
|
108
|
-
'<strong>d100 - パーセンタイル:</strong> 2つのd10を組み合わせたもの(十の位+一の位)。『クトゥルフの呼び声』や『ウォーハンマー』などのシステムで精密な確率を定義します。',
|
|
109
|
-
]},
|
|
110
|
-
{ type: 'stats', items: [
|
|
111
|
-
{ value: '紀元前5000年', label: '最初のダイス(アストラガルス)', icon: 'mdi:history' },
|
|
112
|
-
{ value: '1974', label: 'D&Dがセットを普及させた年', icon: 'mdi:sword' },
|
|
113
|
-
{ value: '7種類', label: '標準的なRPGダイス', icon: 'mdi:dice-multiple' },
|
|
114
|
-
{ value: '2¹²⁸', label: 'JSの乱数周期', icon: 'mdi:function-variant' },
|
|
115
|
-
], columns: 4 },
|
|
116
|
-
{ type: 'title', text: '確率と分布曲線', level: 3 },
|
|
117
|
-
{ type: 'paragraph', html: '1つのダイスを振る場合、それは<strong>離散一様分布</strong>となります。つまり、すべての結果が全く同じ確率(1/n)で発生します。しかし、複数のダイスを組み合わせると、数学的な魔法によってその平坦な曲線は<strong>近似的な正規分布</strong>へと変化します。これが、2d6が1d12と同じではない理由です。2つの6面ダイスで「7」が出る確率は6/36(約16.7%)ですが、端の数値(2や12)が出る確率はわずか2.8%にすぎません。' },
|
|
118
|
-
{ type: 'tip', title: '有利と不利(D&D 5版)', html: '<strong>「有利(アドバンテージ)」</strong>メカニクスは、2d20をロールして高い方の結果を採用するものです。数学的には、これにより期待値が10.5から約13.8に上昇します。<strong>「不利(ディスアドバンテージ)」</strong>はその逆で、低い方を採用するため、期待値は約7.2まで下がります。当ツールでは、バッグに2つのd20を追加して結果を比較することで、これを再現できます。' },
|
|
119
|
-
{ type: 'title', text: '修正値:ダイスとキャラクターの架け橋', level: 3 },
|
|
120
|
-
{ type: 'paragraph', html: 'ほとんどのRPGシステムでは、ダイスだけで結果が決まるわけではありません。キャラクターの能力を表す<strong>修正値(モディファイア)</strong>を加減算します。D&D 5版で筋力修正値が+5の場合、1d20をロールして5を足し、その数値を敵のアーマークラス(AC)と比較します。当ツールには、これらのメカニクスを忠実に反映するための修正値コントロールが含まれています。' },
|
|
121
|
-
{ type: 'tip', title: 'ダイス表記の標準', html: '<strong>XdY+Z</strong>という表記は、RPGにおける事実上の標準です。Xがダイスの個数、Yが面の数、Zが修正値を表します。「3d6+2」は「6面ダイスを3個振って合計に2を足す」という意味です。当ツールはこの表記を履歴に使用しているため、ロール結果を簡単に共有したり記録したりできます。' },
|
|
122
|
-
{ type: 'glossary', items: [
|
|
123
|
-
{ term: 'クリティカル・ヒット', definition: 'ダイスの最大値が出ること(例:d20で20が出る)。多くのRPGシステムでは、特別なボーナス効果が発動します。' },
|
|
124
|
-
{ term: 'ファンブル / Nat 1', definition: 'ダイスの最小値(1)が出ること。劇的な失敗や否定的な結果をもたらすことが多いです。' },
|
|
125
|
-
{ term: 'ダイスプール', definition: '同時にロールされるダイスの集合。当ツールのプールでは、各ダイスタイプが個数ごとにグループ化されて表示されます(例:3d6 + 2d8)。' },
|
|
126
|
-
{ term: '修正値(モディファイア)', definition: 'ロール結果に加減算される固定値。キャラクターの技能、能力ボーナス、または状況によるペナルティを表します。' },
|
|
127
|
-
{ term: 'パーセンタイル・ロール', definition: '2つのd10を使用して1〜100の結果を出すこと。能力がパーセンテージで測定される技能ベースのシステムで使用されます。' },
|
|
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 = 'dice-roller';
|
|
6
|
+
const title = 'ダイスローラー';
|
|
7
|
+
const description = 'RPGやボードゲームに最適なダイスシミュレーター。d4, d6, d8, d10, d12, d20, d100に対応し、修正値の適用や履歴の確認も可能です。';
|
|
8
|
+
|
|
9
|
+
const faq: DiceRollerLocaleContent['faq'] = [
|
|
10
|
+
{
|
|
11
|
+
question: '「有利(アドバンテージ)」のロール(D&D)をシミュレートするには?',
|
|
12
|
+
answer: 'd20ボタンを2回クリックして、バッグにd20を2個追加します。ロールした際、2つの個別の結果を確認し、高い方の値を採用してください。表示される「合計」は合算値になりますが、結果の内訳(ブレイクダウン)で各ダイスの目を個別に確認できます。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '結果に表示される緑色や赤色の数字は何を意味していますか?',
|
|
16
|
+
answer: '緑色の数字は、そのダイスの最大値が出たこと(「クリティカル」)を示します。赤色の数字は、最小値(「1」、いわゆるファンブル)が出たことを示します。これにより、一目でクリティカルや致命的失敗を判断できます。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '同じ種類のダイスを複数追加できますか?',
|
|
20
|
+
answer: 'はい。ダイスボタンをクリックするたびにバッグに追加されます。d6を3回クリックすると、バッグには「3d6」と表示されます。個数を減らしたい場合は、バッグ内の各ダイスグループの横に表示される「−」ボタンをクリックしてください。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'デジタルのダイスは物理的なダイスと同じくらいランダムですか?',
|
|
24
|
+
answer: '統計的には「はい」です。現代のJavaScriptエンジンは、非常に高品質で均一な分布を持つ擬似乱数アルゴリズム(xorshift128+)を使用しています。実物のダイスは製造上の微細な不備により偏りが生じることがありますが、デジタルのダイスにはその問題がありません。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'd100とは何ですか?どのように使いますか?',
|
|
28
|
+
answer: 'd100(またはd%)は1から100までの数値を生成し、『クトゥルフの呼び声』や『ウォーハンマー・ファンタジーRPG』のようなパーセンテージベースのゲームシステムで使用されます。これは「直接的な確率」を表します。例えば、隠密技能が65%の場合、成功するにはロール結果が65以下である必要があります。',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howTo: DiceRollerLocaleContent['howTo'] = [
|
|
33
|
+
{ name: 'ダイスプールを作成する', text: 'ダイスボタン(d4, d6, d8...)をクリックしてプールに追加します。クリックするごとにその種類のダイスが増えます。複数の種類を混ぜてロールすることも可能です。' },
|
|
34
|
+
{ name: '修正値を調整する', text: '修正値の横にある「+」と「−」ボタンを使って、ボーナスやペナルティ(D&Dの能力値修正など)を適用します。修正値は自動的に合計に加算されます。' },
|
|
35
|
+
{ name: 'ダイスを振る', text: '「ロール」ボタンを押します。右側のパネルに最終合計値と各ダイスの内訳が表示されます。最大値は緑、最小値は赤でハイライトされます。' },
|
|
36
|
+
{ name: '履歴を確認する', text: 'すべてのロールは、使用したダイス式、合計結果、正確な時刻と共に履歴に記録されます。履歴は専用ボタンで消去可能です。' },
|
|
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: 'ja',
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const content: DiceRollerLocaleContent = {
|
|
73
|
+
slug,
|
|
74
|
+
title,
|
|
75
|
+
description,
|
|
76
|
+
faqTitle: 'よくある質問',
|
|
77
|
+
ui: {
|
|
78
|
+
title: 'ダイスローラー',
|
|
79
|
+
description: '幸運があなたと共にありますように。',
|
|
80
|
+
rollBtn: 'ロール',
|
|
81
|
+
totalLabel: '合計',
|
|
82
|
+
historyLabel: '履歴',
|
|
83
|
+
clearHistoryBtn: '履歴をクリア',
|
|
84
|
+
faqTitle: 'FAQ',
|
|
85
|
+
bibliographyTitle: '参考文献',
|
|
86
|
+
addDiceLabel: 'バッグにダイスを追加',
|
|
87
|
+
bagLabel: 'ダイスバッグ',
|
|
88
|
+
emptyBagBtn: '空にする',
|
|
89
|
+
emptyBagText: 'ダイスをクリックして追加',
|
|
90
|
+
modifierLabel: '修正値',
|
|
91
|
+
rollManyLabel: 'ダイスを$COUNT個振る',
|
|
92
|
+
rollOneLabel: 'ダイスを$COUNT個振る',
|
|
93
|
+
preRollText: 'ダイスを追加してロール',
|
|
94
|
+
emptyHistoryText: 'ここにロール履歴が表示されます'
|
|
95
|
+
},
|
|
96
|
+
seo: [
|
|
97
|
+
{ type: 'title', text: 'ランダムの芸術:ダイスの歴史と数学', level: 2 },
|
|
98
|
+
{ type: 'paragraph', html: 'ダイスは人類最古の乱数発生器の一つです。<strong>「アストラガルス」</strong>(羊や山羊の距骨)は、紀元前5000年のメソポタミアやエジプトですでに原始的な4面ダイスとして使われていました。削り出された骨から現代のエポキシ樹脂製20面体への進化は、単なる美学ではなく、確率論とゲームメカニクス設計の歴史そのものです。' },
|
|
99
|
+
{ type: 'title', text: '標準的なダイスファミリー', level: 3 },
|
|
100
|
+
{ type: 'paragraph', html: '1974年に<strong>『ダンジョンズ&ドラゴンズ』</strong>によって普及したロールプレイングゲームで最も一般的なダイスセットは、5つのプラトン立体に2つの形状を加えたもので構成されています:d4(正四面体)、d6(正六面体)、d8(正八面体)、d10(五角柱状多面体)、d12(正十二面体)、d20(正二十面体)、そしてd100(パーセンタイル)。各多面体は均一な分布を保証しており、すべての面が出る確率は全く同じです。' },
|
|
101
|
+
{ type: 'list', items: [
|
|
102
|
+
'<strong>d4 - 正四面体:</strong> 裸足で踏むと最も危険。4つの三角形の面を持ち、各面が出る確率は25%。短剣のダメージや低レベルの呪文によく使われます。',
|
|
103
|
+
'<strong>d6 - 正六面体:</strong> 最も普遍的なダイス。古代エジプトのセネト以来、あらゆるボードゲームに存在します。その立方体形状は完璧な等分布を保証します。',
|
|
104
|
+
'<strong>d8 - 正八面体:</strong> 槍やバトルアックスのダイス。8つの正三角形の面を持ち、各面が出る確率は12.5%です。',
|
|
105
|
+
'<strong>d10 - 五角柱状多面体:</strong> 標準セットの中で唯一、プラトン立体ではない形状。「頂点」ごとに2つの対向する面があります。d100(2つのd10の組み合わせ)に不可欠です。',
|
|
106
|
+
'<strong>d12 - 正十二面体:</strong> バーバリアンのダイス。12個の五角形の面。多くのシステムで過小評価されていますが、D&D 5版のバーバリアンでは主役です。',
|
|
107
|
+
'<strong>d20 - 正二十面体:</strong> RPGの王様。20の三角形の面。d20システムの主役であり、ほぼすべての行動の成否を決定します。',
|
|
108
|
+
'<strong>d100 - パーセンタイル:</strong> 2つのd10を組み合わせたもの(十の位+一の位)。『クトゥルフの呼び声』や『ウォーハンマー』などのシステムで精密な確率を定義します。',
|
|
109
|
+
]},
|
|
110
|
+
{ type: 'stats', items: [
|
|
111
|
+
{ value: '紀元前5000年', label: '最初のダイス(アストラガルス)', icon: 'mdi:history' },
|
|
112
|
+
{ value: '1974', label: 'D&Dがセットを普及させた年', icon: 'mdi:sword' },
|
|
113
|
+
{ value: '7種類', label: '標準的なRPGダイス', icon: 'mdi:dice-multiple' },
|
|
114
|
+
{ value: '2¹²⁸', label: 'JSの乱数周期', icon: 'mdi:function-variant' },
|
|
115
|
+
], columns: 4 },
|
|
116
|
+
{ type: 'title', text: '確率と分布曲線', level: 3 },
|
|
117
|
+
{ type: 'paragraph', html: '1つのダイスを振る場合、それは<strong>離散一様分布</strong>となります。つまり、すべての結果が全く同じ確率(1/n)で発生します。しかし、複数のダイスを組み合わせると、数学的な魔法によってその平坦な曲線は<strong>近似的な正規分布</strong>へと変化します。これが、2d6が1d12と同じではない理由です。2つの6面ダイスで「7」が出る確率は6/36(約16.7%)ですが、端の数値(2や12)が出る確率はわずか2.8%にすぎません。' },
|
|
118
|
+
{ type: 'tip', title: '有利と不利(D&D 5版)', html: '<strong>「有利(アドバンテージ)」</strong>メカニクスは、2d20をロールして高い方の結果を採用するものです。数学的には、これにより期待値が10.5から約13.8に上昇します。<strong>「不利(ディスアドバンテージ)」</strong>はその逆で、低い方を採用するため、期待値は約7.2まで下がります。当ツールでは、バッグに2つのd20を追加して結果を比較することで、これを再現できます。' },
|
|
119
|
+
{ type: 'title', text: '修正値:ダイスとキャラクターの架け橋', level: 3 },
|
|
120
|
+
{ type: 'paragraph', html: 'ほとんどのRPGシステムでは、ダイスだけで結果が決まるわけではありません。キャラクターの能力を表す<strong>修正値(モディファイア)</strong>を加減算します。D&D 5版で筋力修正値が+5の場合、1d20をロールして5を足し、その数値を敵のアーマークラス(AC)と比較します。当ツールには、これらのメカニクスを忠実に反映するための修正値コントロールが含まれています。' },
|
|
121
|
+
{ type: 'tip', title: 'ダイス表記の標準', html: '<strong>XdY+Z</strong>という表記は、RPGにおける事実上の標準です。Xがダイスの個数、Yが面の数、Zが修正値を表します。「3d6+2」は「6面ダイスを3個振って合計に2を足す」という意味です。当ツールはこの表記を履歴に使用しているため、ロール結果を簡単に共有したり記録したりできます。' },
|
|
122
|
+
{ type: 'glossary', items: [
|
|
123
|
+
{ term: 'クリティカル・ヒット', definition: 'ダイスの最大値が出ること(例:d20で20が出る)。多くのRPGシステムでは、特別なボーナス効果が発動します。' },
|
|
124
|
+
{ term: 'ファンブル / Nat 1', definition: 'ダイスの最小値(1)が出ること。劇的な失敗や否定的な結果をもたらすことが多いです。' },
|
|
125
|
+
{ term: 'ダイスプール', definition: '同時にロールされるダイスの集合。当ツールのプールでは、各ダイスタイプが個数ごとにグループ化されて表示されます(例:3d6 + 2d8)。' },
|
|
126
|
+
{ term: '修正値(モディファイア)', definition: 'ロール結果に加減算される固定値。キャラクターの技能、能力ボーナス、または状況によるペナルティを表します。' },
|
|
127
|
+
{ term: 'パーセンタイル・ロール', definition: '2つのd10を使用して1〜100の結果を出すこと。能力がパーセンテージで測定される技能ベースのシステムで使用されます。' },
|
|
128
|
+
]},
|
|
129
|
+
],
|
|
130
|
+
faq,
|
|
131
|
+
bibliography,
|
|
132
|
+
howTo,
|
|
133
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
134
|
+
};
|