Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - problemino coi numeri casuali
Forum - C# / VB.NET - problemino coi numeri casuali

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 13:01
Venerdì, 03/01/2014
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

  1. Random rnd = new Random();
  2.  
  3.             int risultato = rnd.Next(1, numeroFacce + 1);
  4.  
  5.             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


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 20:16
Venerdì, 03/01/2014
Non riesco a capire il tuo codice, io farei semplicemente:
Codice sorgente - presumibilmente C# / VB.NET

  1. Random rnd = new Random();
  2. txtRis1.Text = rnd.Next(1, 7);
  3. txtRis2.Text = rnd.Next(1, 7);
  4. txtRis3.Text = rnd.Next(1, 7);
  5. txtRis4.Text = rnd.Next(1, 7);
  6. txtRis5.Text = rnd.Next(1, 7);



PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 20:52
Venerdì, 03/01/2014
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


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 21:20
Venerdì, 03/01/2014
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).


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 21:40
Venerdì, 03/01/2014
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


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 12:16
Sabato, 04/01/2014
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 :(


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:13
Sabato, 04/01/2014
Il metodo toString(), per gli int, esiste. ( Dove è scritto il contrario ? )
In alternativa, c'è il metodo format() della classe string: http://msdn.microsoft.com/it-it/library/fht0f5be(v=vs.110) ...

Ultima modifica effettuata da Poggi Marco il 04/01/2014 alle 14:15


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
Dice (Normal User)
Expert


Messaggi: 238
Iscritto: 26/11/2011

Segnala al moderatore
Postato alle 14:54
Sabato, 04/01/2014
scusa, giusto per evenienza, mi metti un esempio di inserimento di un intero in una textbox?


La vita è un biscotto ma se piove si scioglie !!!
PM Quote
Avatar
Ultimo (Member)
Expert


Messaggi: 513
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 16:20
Sabato, 04/01/2014
Codice sorgente - presumibilmente Plain Text

  1. this.txtRis1.Text = MioInteger.ToString;





Ultimo (Hai voluto la bicicletta ? ....)

Studiare LINQ, WPF, ASP.NET MVC, Entity Framwork, C#, Blend, XAML, Javascript, HTML5, CSS .....(tanta roba)

https://www.dropbox.com/s/c2aots5x4urgbhf/setup_game_sudoku ...
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo