Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET]Generare numeri non casuali ma con determinate istruzioni
Forum - C# / VB.NET - [VB.NET]Generare numeri non casuali ma con determinate istruzioni - Pagina 3

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 18:39
Sabato, 29/12/2012
per quanto riguarda il controllo sul numero casuale generato, potresti creare una funzione con 3 valori di ritorno

il confronto va fatto tra ogni singola cifra del numero immesso dal giocatore con il numero generato casualmente

la funzione ritornerà:
zero, se la singola cifra è compresa nel numero casuale ed è nella posizione corretta
uno, se la singola cifra è compresa nel numero casuale ma è nella posizione errata
due,  se la singola cifra non è compresa nel numero casuale

in funzione del ritorno puoi formattare una stringa di output nella quale posizionare i simboli
che sarà poi la stringa che indicherà al giocatore i simboli "o" o "x" nella loro posizione


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:04
Sabato, 29/12/2012
:-| Per questo, basta fare dei confronti...

PM Quote
Avatar
Nekra49 (Normal User)
Newbie


Messaggi: 13
Iscritto: 27/12/2012

Segnala al moderatore
Postato alle 12:16
Lunedì, 31/12/2012
Testo quotato

Postato originariamente da ampeg:

oppure un modo più semplice per generare un numero casuale che abbia cifre differenti è usare una lista
generare in un ciclo una serie di numeri casuali da 0 a 9 e aggiungere alla lista la cifra che non è inclusa precedentemente nell lista stessa

Codice sorgente - presumibilmente VB.NET

  1. Dim rnd As New Random()
  2. Dim iRnd As Integer
  3. Dim lo As New List(Of String)
  4.  
  5. While lo.Count < 4
  6.   'generazione del numero casuale
  7.   iRnd = rnd.Next(0, 9)
  8.  
  9.   If (lo.Contains(iRnd.ToString) = False) Then
  10.     lo.Add(iRnd)
  11.   End If
  12.  
  13. End While
  14.  
  15. 'numero generato senza cifre doppie
  16. Dim sNumber = String.Join("", lo.ToArray)



allora grazie mille... pero io vorrei comprenderer bene il codice... mi puoi spiegare per favore cosa sono
Codice sorgente - presumibilmente C# / VB.NET

  1. Contains = False)


e questo
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim sNumber = String.Join("", lo.ToArray)


non li ho compresi bene... Grazie

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6381
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:46
Lunedì, 31/12/2012
La documentazione dovrebbe bastarti

Metodo List(Of T).Contains
http://msdn.microsoft.com/en-us/library/bhkz42b3.aspx

Metodo String.Join
http://msdn.microsoft.com/en-us/library/57a79xd0.aspx

In ogni caso, puoi risolvere un po' più semplicemente

Codice sorgente - presumibilmente VB.NET

  1. Dim rnd As New Random()
  2.         Dim iRnd As Integer
  3.         Dim sNumber As String = ""
  4.  
  5.         While sNumber.Length < 4
  6.             iRnd = rnd.Next(0, 9)
  7.             If Not sNumber.Contains(iRnd.ToString) Then sNumber += iRnd.ToString
  8.         End While


Ultima modifica effettuata da nessuno il 31/12/2012 alle 12:57


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 12:59
Lunedì, 31/12/2012
edit

Ultima modifica effettuata da ampeg il 31/12/2012 alle 13:00
PM Quote
Avatar
tuttodiMC (Normal User)
Expert


Messaggi: 327
Iscritto: 29/10/2012

Segnala al moderatore
Postato alle 17:22
Martedì, 01/01/2013
Forse dovresti provare a fixare il numero generato e separare ogni cifra in modo da verificare in seguito se ci sono cifre uguali e in quel caso generare un'altro numero

PM Quote
Avatar
Nekra49 (Normal User)
Newbie


Messaggi: 13
Iscritto: 27/12/2012

Segnala al moderatore
Postato alle 18:34
Martedì, 01/01/2013
Testo quotato

Postato originariamente da tuttodiMC:

Forse dovresti provare a fixare il numero generato e separare ogni cifra in modo da verificare in seguito se ci sono cifre uguali e in quel caso generare un'altro numero


Infatti ora sto lavorando proprio su questo...

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6381
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 1:47
Mercoledì, 02/01/2013
Testo quotato

Postato originariamente da Nekra49:

Testo quotato

Postato originariamente da tuttodiMC:

Forse dovresti provare a fixare il numero generato e separare ogni cifra in modo da verificare in seguito se ci sono cifre uguali e in quel caso generare un'altro numero


Infatti ora sto lavorando proprio su questo...



Non ho capito ... non hai esaminato i codici già proposti? Su cosa vuoi lavorare?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo