0

Rolă de notare a zarurilor

Un adevărat parser de notare a zarurilor de masă: tastați 3d6+2, 4d6kh3 sau adv și obțineți fiecare aruncare de zar, zarurile păstrate/scăpat și totalul.

Exemple: 3d6+2 · 4d6kh3 · 2d8+1d6-1 · adv+5 · d%

Rulouri recente

Procesare... 0%

Rezultat

Dice Notation Roller citește și aruncă aceeași stenogramă folosită la mesele RPG de pe masă și în cărțile de reguli: „NdS” înseamnă aruncarea N zaruri cu fețele S, așa că „3d6” aruncă trei zaruri cu șase fețe. Adăugați un modificator plat cu +N sau -N ("3d6+2"), combinați mai multe grupuri de zaruri într-o singură expresie ("2d8+1d6-1") sau folosiți prescurtarea avantaj/dezavantaj D&D 5e ("adv" aruncă două zaruri cu douăzeci de fețe și îl păstrează pe cel mai mare, "dis" îl păstrează pe cel de jos). Notația de menținere la cea mai mare și la cea mai mică („4d6kh3” aruncă patru zaruri cu șase fețe și păstrează cele mai mari trei – modalitatea standard de a arunca scorurile de abilități D&D) este de asemenea acceptată pe deplin.

Sub capotă, acesta este un tokenizer și un parser autentic, nu o listă de expresii recunoscute: notația este scanată caracter cu caracter în jetoane (grupuri de zaruri, cuvinte cheie adv/dis, numere simple și operatori +/-), asamblate într-un arbore de expresii mic și abia apoi evaluată. Orice combinație validă sintactic funcționează, inclusiv notația pentru care nimeni nu a scris un exemplu. Fiecare zar este aruncat cu generatorul de numere aleatoare criptografice din browser (crypto.getRandomValues, nu Math.random) folosind eșantionarea de respingere, astfel încât fiecare față are șanse exacte egale, iar rezultatul arată fiecare zar individual, care zaruri au fost păstrate sau aruncate pentru aruncări kh/kl, modificatorul aplicat și totalul final.

Pentru a menține instrumentul previzibil și rapid, grupurile de zaruri sunt limitate la 100 de zaruri și 1000 de fețe per grup, iar numărul de zaruri cel mai mare/mai mic nu poate depăși niciodată numărul de zaruri aruncate. Notația defectuoasă - un caracter necunoscut, doi operatori la rând, un + care atârnă la sfârșit - produce un mesaj de eroare specific, care poate fi citit în loc de o eroare silențioasă sau o blocare. Totul rulează local în browser: nicio notație, rol sau rezultat nu este trimis vreodată nicăieri.