Vai al contenuto

Messaggio consigliato

Inviata (modificato)

Un paio di anni fa stavo cercando un programma per tirare dadi che fosse completo e flessibile, ma con mia grande delusione non sono riuscito a trovare nulla che soddisfacesse le mie esigenze. Da allora, a fasi alterne, ho cominciato a lavorare ad un programma in grado di eseguire qualsiasi tiro di dado, secondo le mie preferenze. L'ho usato con successo per masterare delle campagne qui sul forum e oggi sono finalmente riuscito a svuotare completamente la lista delle funzionalità da aggiungere. A questo punto non mi resta che proporlo al pubblico, in modo che venga testato, usato e abusato. Io conosco il programma troppo bene per trovare tutti i modi scorretti di usarlo.

Prima di tutto una breve introduzione. Non scendo troppo nel dettaglio perché una documentazione completa è compresa nel programma e anche riuscire a capirla fa parte del beta test. :D
Il programma di base serve ad eseguire un qualsiasi tiro di dado, ad esempio 1d20 o 3d6, ma ovviamente c'è molto di più in ballo. Le funzionalità comprendono:

  • somma, sottrazione, prodotto e divisione per una costante
  • somma di risultati di più dadi
  • dadi gaussiani, con la possibilità di scegliere l'ampiezza della distribuzione (deviazione standard)
  • stabilire un valore minimo e/o massimo per singoli dadi o per il risultato complessivo
  • scegliere i risultati migliori e/o peggiori fra un gruppo di dadi
  • ripetere più volte lo stesso tiro
  • inserire commenti dopo i tiri
  • concatenare sequenze di tiri
  • i tiri effettuati e i loro eventuali risultati vengono salvati in una memoria temporanea fino alla chiusura del programma; entrambi sono accessibili per uso futuro, in modi differenti
  • eseguire test statistici su una determinata combinazione di dadi, sia per curiosità e confronto, sia per verificare la bontà del generatore di numeri casuali (attenzione: può richiedere alcuni minuti)
  • salvare e richiamare macro per i tiri più usati, con la possibilità di inserire parametri
  • creare tiri condizionali (es: se il risultato di un tiro supera un certo valore esegui una certa azione, altrimenti eseguine un'altra - possono essere molto più complessi di così)
  • supporto per tutte le lingue che si desiderano (attualmente solo italiano e inglese, accetto volentieri qualsiasi traduzione vogliate fornirmi)
  • registro dei tiri effettuati, con data e ora
  • testo colorato, disattivabile
  • possibilità di avere esiti dettagliati, con tutti i passaggi effettuati dal programma (per esempio con la modifica di alcuni tiri troppo bassi se si è stabilito un valore minimo)
  • profili, per immagazzinare i registri e le macro di differenti campagne in differenti file (sono modificabili singolarmente, ma così è più veloce)

Potete scaricare DiceRoller qui. Il programma è basato su Python 2.7 e richiede matplotlib e numpy  per funzionare. Le seguenti istruzioni spiegano come installare il tutto in modo da poter usare DiceRoller con successo. Prendete le mie istruzioni con la dovuta cautela, considerando che la mia esperienza con Windows si è interrotta ai tempi di XP e quella con Mac non è mai esistita. :D Accetto volentieri suggerimenti, correzioni e puntualizzazioni per renderle più precise.
Se avete già installato Python, verificate che si tratti della versione corretta. È possibile che in futuro lo convertirò a Python 3, ma quando ho cominciato il supporto per matplotlib e numpy non era ancora completo e non ho mai avuto voglia di convertirlo finora. Ad essere sincero non so nemmeno se i due pacchetti in questione sono supportati nella nuova versione.

Installazione su Windows:

  • Scaricate il file di installazione per la versione 2.7 da qui. Nel menu Start (o il suo eventuale equivalente) dovrebbe comparire il programma Python, che apre una finestra con linea di comando. Questa possibilità però non ci interessa. Potete trovare maggiori dettagli e istruzioni sull'uso di Python su Windows qui, in inglese.
  • Aprite il Command Prompt (non ho idea di come si chiami in italiano) ed eseguite il seguente comando: python -m pip install matplotlib numpy
  • Decomprimete l'archivio zip che avete scaricato ed eseguite il file test.py con un doppio click (o solo test, se Windows nasconde ancora le estensioni). Dovrebbe aprirsi un terminale che vi avvisa se è tutto ok. Potete chiudere il terminale.
  • Eseguite diceRoller.py, dovrebbe aprirsi un altro terminale, che vi dà alcune indicazioni in inglese. Se non compaiono messaggi di errore, il programma è pronto per i vostri test.

Se quando eseguite test.py e diceRoller.py si apre il blocco note, provate a cliccare sul file col tasto destro e ad eseguirlo con Python.

Installazione su Linux:

  • Python dovrebbe essere installato su qualsiasi distribuzione. Se dovesse essere assente, lo trovate sicuramente nel repository della vostra distribuzione.
  • Eseguite il seguente comando da terminale (è possibile che siano richiesti i diritti di amministrazione): python -m pip install matplotlib numpy
  • Da terminale entrate nella cartella in cui si trovano diceRoller.py e test.py ed eseguite python test.py, controllate se è tutto ok.
  • Sempre da terminale eseguite python diceRoller.py. Se non compaiono messaggi di errore, il programma è pronto per i vostri test.

Installazione su Mac:
Le mie informazioni a riguardo sono piuttosto vaghe. Il procedimento dovrebbe comunque essere molto simile all'installazione su Linux.

Installazione su dispositivi mobili:
Non esiste una versione mobile di questo programma.

Se vi doveste sentire disorientati con l'inglese all'avvio del programma, digitate lang file ita e inviate, il programma da ora in avanti sarà in italiano.

Il programma è liberamente utilizzabile da chiunque ne abbia voglia. Se però siete interessati a darmi una mano a migliorare questo programma, accetto molto volentieri:

  • Segnalazioni di errori, con il comando che li ha generati. Se si tratta di un errore del programma, provvederò a correggerlo nella prossima versione (o subito se si tratta di un errore grave, ma quelli dovrei averli eliminati tutti).
  • Segnalazioni di vulnerabilità nella sicurezza. Non dovrebbero essercene, ma con la sicurezza è meglio non essere mai troppo certi.
  • Suggerimenti per nuove funzioni. Non garantisco di poterle integrare nel programma, poiché aggiungere nuove funzioni diventa sempre più difficile dato che ogni funzione deve convivere armoniosamente con tutte le altre, ma se il suggerimento è sensato e fattibile ci posso provare.
  • Traduzioni in altre lingue. Nella cartella lang si trovano, fra gli altri, i file eng.py e ita.py. Aggiungere un'altra lingua è semplice, basta creare una copia di uno di questi file, aprirlo con il blocco note e tradurre tutti i testi. Se qualcuno vuole cimentarsi in questa impresa, sarò lieto di fornire indicazioni più precise su dove mettere le mani.

Una nota sul copyright: DiceRoller è soggetto a licenza Creative Commons 4.0, con obbligo di attribuzione, obbligo di condividere allo stesso modo e divieto di uso commerciale. Non sono disposto a rivedere queste condizioni per il programma nella sua interezza, ma si può discutere riguardo all'uso di sue parti.

TL;DR: Qui sotto potete scaricare un programma notevole per tirare qualsiasi tipo e combinazione di dadi. Provatelo e ditemi cosa ne pensate.

DiceRoller Versione 0.8 beta

Modificato da Ian Morgenvelt
  • Mi piace 3

Inviato

FA-VO-LO-SO!

Stavo cominciando a farne uno io, ma alla fine mi ero arenato a causa della scarsità del tempo a disposizione!

12 ore fa, GammaRayBurst ha scritto:

Suggerimenti per nuove funzioni. Non garantisco di poterle integrare nel programma, poiché aggiungere nuove funzioni diventa sempre più difficile dato che ogni funzione deve convivere armoniosamente con tutte le altre, ma se il suggerimento è sensato e fattibile ci posso provare.

Già prima di provarlo, posso suggerirti una implementazione: da quanto ho capito, i bot per Telegram sono programmabili in Python 2.7, e credo che non richieda troppo tempo convertirlo in modo appropriato. L'unica difficoltà "logistica" in quel senso sarebbe mantenere il server attivo, credo.

  • Mi piace 1
Inviato

Servono circa 1000 righe di codice per far funzionare correttamente il programma, non sono affatto sicuro che un'implementazione su una nuova piattaforma sia un'operazione facile. :D Diciamo che almeno per ora preferirei mantenere il supporto per quelle piattaforme per cui DiceRoller funziona senza bisogno di altre modifiche sostanziali.

Ho però notato che su android esiste almeno un'interprete python. Se riesco ad includere almeno numpy, posso creare una versione mobile senza i test statistici. In realtà potrei crearla per qualsiasi piattaforma, in fondo si tratta di una funzione a cui non molti sarebbero interessati, suppongo.

Inviato

Ok, ho cominciato a darci un occhio (naturalmente, causa studio ho potuto dare solo una occhiata marginale) e mi sembra veramente ben fatto: complimenti! Al momento gli unici "errori" che ho notato sono due scemenze sulla documentazione tehehe!! :D

A parte gli scherzi, comunque, direi che la funzione "test statistici" è una bella feature, ma magari non così utile durante il gioco, perciò non così fondamentale da implementare su mobile...

11 minuti fa, GammaRayBurst ha scritto:

Diciamo che almeno per ora preferirei mantenere il supporto per quelle piattaforme per cui DiceRoller funziona senza bisogno di altre modifiche sostanziali.

Comprensibile! :D Io avevo lanciato il sasso solo perché io ero partito con il mio dice roller (con moooolte meno funzioni) proprio appositamente con l'idea di creare un Bot, che è molto pratico ed intuitivo da utilizzare e permette di essere incluso nelle chat di gruppo (così da mostrare "in diretta" il risultato e permettere a ciascuno di lanciare il proprio dado). Detto ciò, però, capisco anche che sia uno sbatti non indifferente, perciò non insisto di certo! :D

Al massimo, quando avrò un po' di tempo, proverò a cimentarmici io :P

  • 3 settimane dopo...
Inviato

Scusami, non avevo più visto la risposta! :(

Sto utilizzando il lanciatore da un po' e mi ci trovo davvero bene... Ha addirittura troppe funzioni per quel che può servirmi, ma di certo non si può dire che gli manchi qualcosa!

Inviato

In realtà per tutte le funzioni ho in mente almeno un uso sensato.

  • Il dado gaussiano può non essere molto comune ma c'è chi lo apprezza più del classico d20.
  • Valori minimi e massimi li ho visti applicare per esempio quando bisogna tirare dadi vita o caratteristiche (ok, ho visto usare solo i valori minimi, ma per simmetria dovevo implementare anche i massimi).
  • Dadi migliori e peggiori sono usati sempre per i tiri di caratteristiche e se non sbaglio in D&D5 anche per dare un vantaggio o uno svantaggio al giocatore.
  • Le ripetizioni sono comode ancora una volta quando si tirano le caratteristiche (4d6b3 x6) e quando si devono eseguire delle azioni ripetute.
  • Moltiplicazione e divisione possono servire quando si generano dei dati casuali o in caso di colpo critico.
  • I commenti sono ottimi quando si ha una memoria da pesce rosso o semplicemente si deve consultare il log di tanto in tanto.
  • Macro e tiri condizionali sono comodissimi con tiri e/o sequenze di tiri che si eseguono frequentemente e le macro parametriche permettono di non dover riscrivere le macro ad ogni passaggio di livello. Con un po' di lavoro dovrebbe essere possibile costruire una macro che tiene conto di ogni possibilità per un attacco (fallimento automatico, fallimento, successo, minaccia di critico + conferma, successo automatico + conferma critico).

Capita che fra due funzioni simmetriche ce ne sia una che ha molta più probabilità di essere usata dell'altra, in genere quella che aumenta il valore del risultato, ma visto che l'implementazione di una è quasi completamente identica all'implementazione dell'altra, non aveva senso escludere la funzione meno interessante.

Inviato

Si si!!! Non intendevo questo!!! :D

E' solo che per quel che serve a me, praticamente molte delle funzioni non le uso mai! :D

Inoltre non ho ancora avuto voglia di mettermi a smanettare per bene con le macro, dato che è un periodo di poco gioco e troppo studio, però non dubito che prima o poi lo farò!

Inviato

Tranquillo, per me avere l'occasione di elencare tutte le funzionalità di nuovo è un modo per farmi un po' di pubblicità. :D

Comunque ho notato che nell'aiuto per le macro mancavano tutte le informazioni sulle macro parametriche, per cui le ho aggiunte e come se non bastasse ho inserito i valori predefiniti per i parametri delle macro. Visto che non sono stati segnalati bug, ne approfitto per rilasciare la prima Release Candidate della versione 1.0.

DiceRoller Versione 1.0 RC1

Inviato

Ho dato oggi uno sguardo al dice roller (dando anche un'occhiata al codice sorgente) e mi sembra veramente ben fatto e funzionante, specialmente le macro che possono essere molto utili se uno le impara ad usare.

Credo che diventerà il mio nuovo strumento per i lanci da dm, complimenti:clap:.

  • Mi piace 1

Crea un account o accedi per commentare

Devi essere un utente registrato per poter lasciare un commento

Crea un account

Crea un nuovo account e registrati nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.
 

Accedi ora
×
×
  • Crea nuovo...