|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2004
Messaggi: 310
|
[C] lancio dei dadi con vero random
ciao a tutti, mi serve l'aiuto, x pochi minuti credo, di un programmatore possibilmente di C
vorrei organizzare un gioco di ruolo e strategico online comandato dal lancio dei dadi. è possibile creare uno scrip in C (ho letto una parte di un manuale ma a livello pratico sono 0) in cui 6 numeri o + possono uscire casualmente veramente?? PS visto che il gioco deve essere online é possibile far connettere altri giocatori con il mio pc per far si che anche loro possono vedere direttamente il risultato del lancio dei dadi? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2004
Messaggi: 310
|
ma questo si appoggia all'orologio del pc o è un numero pseudocasuale ??
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
perchè fai la srand() dopo la rand()???
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2004
Messaggi: 310
|
mi potreste scrivere lo script completo per favore??
mi da un errore sul gcc.... tnk |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
|
scusami come puoi pensare di fare una cosa senza sapere nemmeno da dove iniziare?!?
Prima studia... #include <stdio.h> #include <time.h> int main(){ srand(time(NULL)); int n = 1 + rand() %6; printf("%d",n); return 0; } |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2004
Messaggi: 310
|
ma nn è un gioco scritto in c
è come dungeon and dragon solo che è online, tramite chat o forum o email solo che cera il problema dei dadi da tirare.... |
|
|
|
|
|
#10 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
... se usi una congruenza modulare per generare numeri interi a partire dalla rand, viene fuori una cosa tanto più sbilanciata, quanto più il fattore della congruenza è diverso da una potenza di due. Quello che si fa di solito è definire una frand (rand in virgola mobile) che restituisca valori tra 0 incluso e 1 escluso, ad esempio: Codice:
double frand(void)
{
return (double)rand()/(RAND_MAX+1.);
}
Codice:
val = (unsigned int)floor(1+6*frand()); P.S.: Con un computer deterministico, non puoi avere un generatore "veramente random"; però, puoi avere una cosa che "per quanto riesci a vedere tu, sembra random" --- e che va sicuramente bene per un gioco.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
|
Quote:
puoi spegarlo meglio? |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jan 2004
Messaggi: 310
|
k ziosilvio
per cortesia potresti fare lo scrip intero ? x limit matz uno script su irc per far cosa?? |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jan 2004
Messaggi: 310
|
ma prima devo fare l'esecutivo con il c giusto??
l'irc ha un linguaggio suo?? se nn è difficile puoi scrivermolo per favore?? |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jan 2004
Messaggi: 310
|
grazie in anticipo!!
|
|
|
|
|
|
#17 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
|
#18 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
Questo non è garantito dall'aritmetica modulare: per esempio, se rand può generare 32768 valori distinti, e tu fai una congruenza modulo 6, allora la probabilità che esca 0 è maggiore della probabilità che esca 5. Questo magari può essere poco importante su pochi lanci; ma è catastrofico se i lanci sono molti, e mi sembra che il caso in esame (gioco di ruolo online) sia proprio questo. Inoltre, in genere è più facile ricostruire una distribuzione arbitraria a partire da una uniforme (quando è possibile), che non il contrario.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
Quote:
|
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
|
Quote:
per Compsognathus /dado /say $chan Dado: $rand(1,6) scrivitelo negli aliases e basta che digiti /dato in un chan e avrai come output in quel chan: Dado: "numerorandom" ciao |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:02.



















