Tiri di dado non limitati
Tiri di dado non limitati postato il 13/07/2012 15:06:21 nel forum programmazione, open source e hosting
Ammetto la mia ignoranza in merito... sto alle primissime armi a livello di programmazione e sto cercando di capire come muovermi in gdrcd 5.1 advanced e volevo chiedere: invece di avere delle 'stringhe' di dado, è possibile programmare il tutto in modo da ottenere un tiro in stile 'tiro un dado da XXX' invece che per forza essere limitata a quelli che inserisco nel menu a tendina?
Insomma, avere tipo un codice da inserire in stile '2d30' o, ancora meglio, 'tira un dado da xx'
Chiedo scusa se la mia domanda vi parrà più che banale, ma sto osservando tipo da mezz'ora lo screen in config con la parte di codice sui dadi e cercando in giro, ma non trovo niente.
Pagine → 1
17/07/2012 02:08:26
nenya-higurashi ha scritto: Ammetto la mia ignoranza in merito... sto alle primissime armi a livello di programmazione e sto cercando di capire come muovermi in gdrcd 5.1 advanced e volevo chiedere: invece di avere delle 'stringhe' di dado, è possibile programmare il tutto in modo da ottenere un tiro in stile 'tiro un dado da XXX' invece che per forza essere limitata a quelli che inserisco nel menu a tendina?
Insomma, avere tipo un codice da inserire in stile '2d30' o, ancora meglio, 'tira un dado da xx'
Chiedo scusa se la mia domanda vi parrà più che banale, ma sto osservando tipo da mezz'ora lo screen in config con la parte di codice sui dadi e cercando in giro, ma non trovo niente.
Se vuoi lanciare un solo dado una scelta molto comoda é quella di derivazione lottiana. Fai dare al giocatore un comando con un carattere speciale, seguito dal numero di facce.
Es: $6
Il 'dollaro' dice al sistema che quello é un lancio di dadi. Il sistema elimina dalla stringa il $ e controlla i caratteri successivi. Se é un numero valido, in chat viene inviato qualcosa tipo:
Tizio ha lanciato un dado da 6 ed ha ottenuto un punteggio di 4.
Ma puoi fare anche di più, basta stabilire una regola "ortografica"
Es:
$2d30
lo fai passare attraverso una funzione explode, che separa la stringa usando un carattere di separazione (in questo caso la "d")
Il $ come nell'esempio di prima si limita ad avvisare il sistema che stai inviando un lancio di dadi e viene "strippato" via
Quel che resta lo passi a una funzione explode(), usando la 'd' come carattere separatore
Es:
$LANCIO = '2d30'
$LANCIO = strtoupper($LANCIO); // strtoupper perchè il giocatore potrebbe metterci la 'D' invece della 'd'.
$DATI = explode("D",$LANCIO);
A questo punto $DATI é un array che conterrà i due numeri:
$NUMERO_DADI = $DATI[0]; // conterrà 2
$NUMERO_FACCE = $DATI[1]; // conterrà 30
Fai controllare per sicurezza che i due dati siano numeri interi validi (magari stabilisci anche dei numeri massimi sia per il numero di dadi che per il numero di facce) e alla fine puoi trattarli come credi.
Ma puoi anche usare metodi più eleganti di questo con le regular expression, era per farti capire il principio di fondo.
Questo se vuoi usare dei comandi passati da linea di edit della chat.
Se vuoi qualcosa di meno ostico (anche se quello di cui sopra é un sistema facilmente utilizzabile e a cui molti sono già abituati) puoi anche semplicemente mettere due menu a tendina invece di uno: in uno scegli il numero di dadi da lanciare, nell'altro il numero di facce.. oppure anzichè i menu a tendina ci metti campi di testo così se il giocatore vuole lanciare 57 dadi a 658 facce scrive 57 nel primo campo e 657 nel secondo.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Storie di Agarthi ↗
Fallen Gods ↗