Dice (Normal User)
Expert
Messaggi: 238
Iscritto: 26/11/2011
|
Io ho 5 textBox, in cui voglio mettere 5 numeri casuali (come se lanciassi 5 dadi diversi).
Io ho fatto così: ho istanziato 5 dadi; e gli faccio "lanciare" usando un metodo che crea un numero casuale tra 1 e 6:
Codice sorgente - presumibilmente C# / VB.NET |
Random rnd = new Random();
int risultato = rnd.Next(1, numeroFacce + 1);
return(risultato);
|
Poi per mettere i risultati nelle textBox faccio così:
risultato1 = Int32.Parse(this.txtRis1.Text = "" + dado1.LancioDado()); Per 5 volte
L'unico problema è che mi da lo stesso risultato su tutte e 5 le textBox.
Perchè??? Ho istanziato 5 dadi, non 1
|
|
GN (Member)
Guru
Messaggi: 772
Iscritto: 30/04/2011
|
Non riesco a capire il tuo codice, io farei semplicemente:
Codice sorgente - presumibilmente C# / VB.NET |
Random rnd = new Random();
txtRis1.Text = rnd.Next(1, 7);
txtRis2.Text = rnd.Next(1, 7);
txtRis3.Text = rnd.Next(1, 7);
txtRis4.Text = rnd.Next(1, 7);
txtRis5.Text = rnd.Next(1, 7);
|
|
|
Dice (Normal User)
Expert
Messaggi: 238
Iscritto: 26/11/2011
|
ma scusa, come fai a fare così?
Io ogni volta ho problemi a mettere i valori interi (cioè numeri) nelle textBox
allora devo usare sempre il metodo Parse
Comunque il problema mio era che anche se istanziavo 5 oggetti DADO diversi: Dado dado1 = new Dado(6)
Dove 6 è il numero di facce.
Poi andavo ad invocare 5 volte i metodo per lanciare il dado, cioè per i numeri casuali da 1 a 6 e gli volevo salvare in 5 textBox diverse, però mi mettevo lo stesso risultato in tutte e 5 le textBox
|
|
GN (Member)
Guru
Messaggi: 772
Iscritto: 30/04/2011
|
Non capisco, secondo me ti stai complicando la vita, come ti ho scritto sopra non funziona? Se non funziona prova semplicemente a mettere toString alla fine di tutti (io sono abituato al VB.NET, credevo che anche in C# ci fosse il cast automatico da int a string).
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
Ciao!
I risultati sono uguali appunto perché istanzi 5 oggetto dado differenti.
In questo modo, ogni oggetto Random riceverà lo stesso seme.
Il metodo int.Parse riceve una stringa e la converte in un int.
( http://msdn.microsoft.com/en-us/library/b3h1hf19(v=vs.110) ... )
Nel tuo caso, vedi il risultato sulle textBox a causa della doppia conversione implicita tra int e string.
Ultima modifica effettuata da Poggi Marco il 03/01/2014 alle 21:59 |
|
Dice (Normal User)
Expert
Messaggi: 238
Iscritto: 26/11/2011
|
Ok, per i numeri casuali ho risolto: alla fine invece di far "lanciare i 5 dadi" in un unico bottone, ho fatto 5 bottoni diversi, e adesso ho tutti numeri diversi.
Per il problema della conversione string-int invece non ho ben capito
Voi di solito come fate quando dovete inserire dei valori interi in una textBox?
P.S. = qui non c'è il metodo toString come VB sfortunatamente
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
Ultima modifica effettuata da Poggi Marco il 04/01/2014 alle 14:15 |
|
Dice (Normal User)
Expert
Messaggi: 238
Iscritto: 26/11/2011
|
scusa, giusto per evenienza, mi metti un esempio di inserimento di un intero in una textbox?
|
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
Codice sorgente - presumibilmente Plain Text |
this.txtRis1.Text = MioInteger.ToString;
|
If ok Then GOTO Avanza else GOTO Inizia
|
|