Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* numeri casuali...
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
saetta
Eroe in grazia degli dei
Eroe in grazia degli dei


Registrato: 25/02/08 11:52
Messaggi: 129

MessaggioInviato: 31 Ago 2008 18:47    Oggetto: * numeri casuali... Rispondi citando

Salve, avrei una domandina...
sto realizzando un piccolo gioco in c dove ho bisogno di lanciare N dadi da 6...
Vorrei che i lanci siano realmente casuali e non pseudocasuali come garantiscono le funzioni srand() e rand()

----------------------------------
srand(unsigned int seed);
int casuale= rand();
----------------------------------
pensavo di usare :

int my_seed;
my_seed = time(NULL)+num_giocatore;
srand(my_seed) % 6 +1;
int casuale = rand();

Quali "cose" posso mettere nel seme per far si che se due dadi vengono lanciati nello stesso secondo, danno risultato diverso?(time(NULL) non mi sembra un ottimo seme allo scopo, anzi...)

grazie a tutti!
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 31 Ago 2008 19:16    Oggetto: Rispondi citando

Potresti allocare della memoria senza inizializzarla e prenderne il contenuto
Top
Profilo Invia messaggio privato
saetta
Eroe in grazia degli dei
Eroe in grazia degli dei


Registrato: 25/02/08 11:52
Messaggi: 129

MessaggioInviato: 31 Ago 2008 19:19    Oggetto: Rispondi citando

mmm però, mica male!!! grazie!!!
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 01 Set 2008 10:08    Oggetto: Rispondi citando

freemind ha scritto:
Potresti allocare della memoria senza inizializzarla e prenderne il contenuto


secondo me si rischia di prendere sempre gli stessi numeri così. Personalmente preferisco usare gli pseudocasuali inizializzati usando il 'timer' del PC (i millisecondi trascorsi dalla mezzanotte), come si faceva già in GWBASIC vent'anni fa Wink
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 02 Set 2008 08:03    Oggetto: Rispondi citando

Bhe,teoricamente se allochi memoria con malloc o calloc non dovresti trovarti valori prevedibili in ram, magari il rischio c'è nel caso tu ti limitassi a istanziare una var; penso che dipenda molto anche dal compilatore. In ogni caso si possono fare prove e combinare metodi...
Top
Profilo Invia messaggio privato
saetta
Eroe in grazia degli dei
Eroe in grazia degli dei


Registrato: 25/02/08 11:52
Messaggi: 129

MessaggioInviato: 02 Set 2008 08:13    Oggetto: Rispondi citando

s,i credo che combinerò i metodi perchè se x caso (credo possa avvenire)lancio 2 dadi quando l'orologio di sistema indica lo stesso secondo ottengo 2 nimeri uguali. Credo che darò un id unico ad ogni giocatore , che mi servirà a comporre il seed per srand()

seed = time(NULL) + id_player + cont_mem_tmp

tipo così, per intenderci.
Grazie a tutti.
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 04 Set 2008 17:29    Oggetto: Rispondi citando

saetta ha scritto:
se x caso (credo possa avvenire)lancio 2 dadi quando l'orologio di sistema indica lo stesso secondo ottengo 2 nimeri uguali.


no, non confondere. l'orologio di sistema serve solo per il seed, non per i lanci. L'unica cosa che può succedere è che il seed sia inizializzato per caso allo stesso millisecondo in due giorni successivi. Allora tutti i lanci di dadi saranno nella stessa sequenza della volta precedente. Ovvero se a seguito di un srand (n) si ottiene ad esempio 3,5,2,1,4,... allora se poi fai nuovamente srand (n) riotterrai dinuovo 3,5,2,1,4,...
Top
Profilo Invia messaggio privato HomePage
saetta
Eroe in grazia degli dei
Eroe in grazia degli dei


Registrato: 25/02/08 11:52
Messaggi: 129

MessaggioInviato: 07 Set 2008 01:01    Oggetto: Rispondi citando

ah ok...
comunque scegliere un seed buono a prescindere da qualsiasi situazione... non è così banale, in linea generale... o no?
Potrei inizializzarlo all'energia cosmica presente ad ogni istante!!!
(sempre che mi regalino un rilevatore)

Scherzi a parte, a me basta molto meno, farò una cosa abbastanza classica.
Grazie a tutti x gli interventi.
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 07 Set 2008 09:32    Oggetto: Rispondi citando

saetta ha scritto:
Scherzi a parte, a me basta molto meno, farò una cosa abbastanza classica.
Tipo?
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 07 Set 2008 18:16    Oggetto: Rispondi

Per postare riguardo i numeri casuali continuate qui mentre i post sull'analisi di un file di testo sono stati spostati a questo link
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi