TiraDadi Java 1.0

Home | Download | English English
Questa applicazione necessita di un browser abilitato Java

Elaboratore di Espressioni

Spesso, dopo aver lanciato uno o più dadi, specialmente quando si tratta di giochi di ruolo è necessario eseguire alcune operazioni matematiche. Ho deciso perciò di inserire un elaboratore di espressioni nel programma.

I vantaggi apportati dal calcolatore non stanno nella potenza, ma nella sua capacità di riconoscere e risolvere espressioni scritte a mano. Per di più in queste espressioni possono essere inclusi lanci di dadi ed alcune funzioni speciali, descritte più avanti.

L'elaboratore è in grado di riconoscere i normali operatori, come "+", "-", "*" e "/", ed un nuovo operatore, "d", che rappresenta un "lancio di dado".

L'operatore "d" esegue un numero di lanci pari al valore dell'operando sinistro, ed il risultato di ognuno di questi lanci viene determinato casualmente tra 1 ed il valore dell'operando di destra. Tutti questi risultati vengono sommati. Qualora l'operando sinistro fosse assente, viene assunto pari ad "1".

Per esempio "3d6" equivale a "lanciare 3 dadi da 6 facce, e sommarne i rusultati". Un formato molto popolare tra i giocatori di ruolo =D

Un altro esempio è "(12-7)d6+5". Per prima cosa viene eseguita la sottrazione, il cui risultato è 5. Quindi viene lanciato 5 volte un dado da 6, ed i vari risultati sommati. A questo risultato, ovviamente variabile, viene infine aggiunto 5.

Tenete presente che l'operatore "d" ha la priorità più alta. Ciò significa che viene sempre risolto prima degli altri operatori (a meno che non venga ridefinita la priorità per mezzo delle parentesi). Quindi, ad esempio, "1d6/2" significa "lanciare 1 dado a 6 facce e dividere il risultato per 2", mentre "1d(6/2)" significa "lanciare 1 dado a 3 facce".

Guida alle funzioni

Ed ora esaminiamo le funzioni. Attualmente ne sono state implementate poche, ma non è difficile aggiungerne altre, se non per il fatto che non avevo particolari idee. Se ve ne vengono di migliori, non esitate a scrivermi. Nel caso verranno aggiunte, e se gradite verrete mensionati da qualche parte.

avg(x, y)

Per "x" volte viene valutata "y", quindi viene restituito il valore medio. Più o meno lo stesso risultato si ottiene con "xdy/x".

best(x, y, z)

Il valore di "y" viene valutato per "x" volte, ma solo i migliori "z" valori vengono sommati e restituiti. Naturalmente, "z" deve essere inferiore a "x".

Questa funzione torna utile nella creazione di personaggi di D&D, quando bisogna lanciare 4 dadi da 6 e sommare i migliori 3 risultati. Basta indicare "best(4, d6, 3)" per ottenere la stessa cosa.

ge(x, y, z)

Esegue il controllo di seguito descritto per "x" volte: se il valore di "y" (che dovrebbe contenere un lancio di dado) è maggiore o uguale a "z", un contatore (inizialmente impostato a "0") viene aumentato di 1. Il risultato della funzione è il valore raggiunto dal contatore.

A che serve questa funzione? Se giocate a Vampiri o un altro gioco della White Wolf, potete usare la funzione "ge" per eseguire i test. "x" è il numero di "pallini" usati nel test, "y" è solitamente "d10" e "z" è la difficoltà dettata dal master. Utile, no?

Attualmente non vengono considerate le situazioni di successi e fallimenti critici (1 o 0 ottenuto sui dadi).

le(x, y, z)

Molto simile alla funzione ge, tranne per il fatto che il contatore viene incrementato se "y" è minore o uguale a "z".

worst(x, y, z)

Simile a best, ma prende i valori più bassi di "y" invece dei più alti.

Official Ohmnibus Production

(c) 2004-2017 by Ohmnibus