Αναλυτής Σημείωσης Ζαριών
Ένας πραγματικός αναλυτής σημείωσης ζαριών για επιτραπέζια: πληκτρολογήστε 3d6+2, 4d6kh3 ή adv και λάβετε κάθε μεμονωμένη ρίψη ζαριού, τα ζάρια που κρατήθηκαν/απορρίφθηκαν και το σύνολο.
🔒 Επεξεργάζεται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας — τίποτα που εισάγετε εδώ δεν μεταφορτώνεται ποτέ.
Αποτέλεσμα
Το Dice Notation Roller διαβάζει και ρίχνει την ίδια συντομογραφία που χρησιμοποιείται στα τραπέζια επιτραπέζιων RPG και στα εγχειρίδια κανόνων: «NdS» σημαίνει ρίψη N ζαριών με S πλευρές, έτσι το «3d6» ρίχνει τρία εξάπλευρα ζάρια. Προσθέστε έναν σταθερό τροποποιητή με +N ή -N («3d6+2»), συνδυάστε πολλές ομάδες ζαριών σε μία έκφραση («2d8+1d6-1») ή χρησιμοποιήστε τη συντομογραφία πλεονεκτήματος/μειονεκτήματος του D&D 5e (το «adv» ρίχνει δύο εικοσάπλευρα ζάρια και κρατά το υψηλότερο, το «dis» κρατά το χαμηλότερο). Η σημείωση κράτησης υψηλότερων και χαμηλότερων («4d6kh3» ρίχνει τέσσερα εξάπλευρα ζάρια και κρατά τα τρία υψηλότερα — ο τυπικός τρόπος ρίψης για τις τιμές ικανοτήτων του D&D) υποστηρίζεται επίσης πλήρως.
Στο παρασκήνιο πρόκειται για έναν γνήσιο λεκτικό αναλυτή (tokenizer) και συντακτικό αναλυτή (parser), όχι για μια λίστα αναγνωρισμένων εκφράσεων: η σημείωση σαρώνεται χαρακτήρα προς χαρακτήρα σε λεκτικές μονάδες (ομάδες ζαριών, λέξεις-κλειδιά adv/dis, απλοί αριθμοί και τελεστές +/-), συναρμολογείται σε ένα μικρό δέντρο έκφρασης και μόνο τότε αξιολογείται. Οποιοσδήποτε συντακτικά έγκυρος συνδυασμός λειτουργεί, συμπεριλαμβανομένων σημειώσεων για τις οποίες κανείς δεν έγραψε παράδειγμα. Κάθε ζάρι ρίχνεται με την κρυπτογραφική γεννήτρια τυχαίων αριθμών του προγράμματος περιήγησης (crypto.getRandomValues, όχι Math.random) χρησιμοποιώντας δειγματοληψία απόρριψης, έτσι ώστε κάθε πλευρά να έχει ακριβώς ίσες πιθανότητες και το αποτέλεσμα δείχνει κάθε μεμονωμένο ζάρι, ποια ζάρια κρατήθηκαν ή απορρίφθηκαν για ρίψεις kh/kl, τον τροποποιητή που εφαρμόστηκε και το τελικό σύνολο.
Για να διατηρηθεί το εργαλείο προβλέψιμο και γρήγορο, οι ομάδες ζαριών περιορίζονται σε 100 ζάρια και 1000 πλευρές ανά ομάδα και οι αριθμοί κράτησης υψηλότερων/χαμηλότερων δεν μπορούν ποτέ να υπερβαίνουν τον αριθμό των ζαριών που ρίχτηκαν. Μια εσφαλμένη σημείωση — ένας άγνωστος χαρακτήρας, δύο τελεστές στη σειρά, ένα + που περισσεύει στο τέλος — παράγει ένα συγκεκριμένο, ευανάγνωστο μήνυμα σφάλματος αντί για μια σιωπηλή αποτυχία ή κατάρρευση. Όλα εκτελούνται τοπικά στο πρόγραμμα περιήγησης: καμία σημείωση, ρίψη ή αποτέλεσμα δεν αποστέλλεται ποτέ πουθενά.