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 - vb 2008 array
Forum - C# / VB.NET - vb 2008 array

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
coyote100 (Normal User)
Rookie


Messaggi: 50
Iscritto: 22/04/2013

Segnala al moderatore
Postato alle 16:13
Sabato, 31/08/2013
Salve dovrei  ordinare un array di numeri, per contare le carte uscite.

come faccio ad abbinare il nome della carta  al valore numerico.

es
ASSO=20
K=15
q=12
j=10

Grazie

PM Quote
Avatar
lollo 97 (Member)
Rookie


Messaggi: 50
Iscritto: 27/06/2011

Segnala al moderatore
Postato alle 16:42
Sabato, 31/08/2013
per ordinarle c'è Array.Sort() oppure LINQ,ma sei sicuro di voler usare un array?

perchè non un enumerazione?

Codice sorgente - presumibilmente C# / VB.NET

  1. Enum Carte
  2.         Asso = 20
  3.         Re = 15
  4.         Regina = 15
  5.         'tutte quelle che vuoi..
  6. End Enum



se invece proprio vuoi usare un array,allora fai cosi

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Carte(15) As Int
  2.      Carte(0) = 20 'asso



altrimenti per l'accoppiata nome e valore,c'è sempre la classe Dictionary contenuta in System.Collections.Generics:

Codice sorgente - presumibilmente VB.NET

  1. Dim dictionary As New Dictionary(Of String, Integer)
  2.         dictionary.Add("Asso", 20)
  3.         dictionary.Add("Re", 15)


Ultima modifica effettuata da lollo 97 il 31/08/2013 alle 16:43


Se non è nebbia, è fumo.
PM Quote
Avatar
coyote100 (Normal User)
Rookie


Messaggi: 50
Iscritto: 22/04/2013

Segnala al moderatore
Postato alle 18:26
Sabato, 31/08/2013
ok grazie per la risposta, ora valuto quale usare

PM Quote
Avatar
coyote100 (Normal User)
Rookie


Messaggi: 50
Iscritto: 22/04/2013

Segnala al moderatore
Postato alle 18:57
Sabato, 31/08/2013
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Carte(15) As Int
  2.  Carte(0) = 20 'asso



ma come fai ad abbinare carte(0) al nome asso

cioè io vedo solo i valori ordinati  34  22 14 10 ma non riesco ad abbinare al valore il nome della carta.

PM Quote
Avatar
Snogar (Normal User)
Pro


Messaggi: 130
Iscritto: 09/01/2012

Segnala al moderatore
Postato alle 10:14
Domenica, 01/09/2013
Guardati la classe Hashtable c'è tutto quello che ti serve.


PM Quote
Avatar
lollo 97 (Member)
Rookie


Messaggi: 50
Iscritto: 27/06/2011

Segnala al moderatore
Postato alle 10:16
Domenica, 01/09/2013
Allora per quello hai proprio bisogno della classe Dictionary :

Codice sorgente - presumibilmente VB.NET

  1. Dim dictionary As New Dictionary(Of String, Integer)
  2.       dictionary.Add("Asso", 20)
  3.       dictionary.Add("Re", 15)



Se non è nebbia, è fumo.
PM Quote
Avatar
vankraster (Member)
Rookie


Messaggi: 32
Iscritto: 05/11/2010

Segnala al moderatore
Postato alle 11:03
Domenica, 01/09/2013
Testo quotato

Postato originariamente da coyote100:

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Carte(15) As Int
  2.  Carte(0) = 20 'asso



ma come fai ad abbinare carte(0) al nome asso

cioè io vedo solo i valori ordinati  34  22 14 10 ma non riesco ad abbinare al valore il nome della carta.



Non so se io ho capito bene ma potresti usare una funzione tipo:
Codice C# Ma facilmente adattabile a VB:
Codice sorgente - presumibilmente C#

  1. private string Nome_Carta_Da_Valore(Int32 ValoreCarta){
  2. switch (ValoreCarta)
  3. {
  4.     case 1:
  5.         return "Asso";
  6.         break;
  7.     case 2:
  8.         return "Due";
  9.         break;
  10. ..... Così via ci metti tutti i numeri...
  11.     default:
  12.         return "Valore Non Valido";
  13.         break;
  14. }
  15.  
  16. }



Cosi tu puoi richiamare la funzione Nome_Carta_Da_Valore(1) e ritorna "Asso".


Ci possono togliere tutto tranne la ragione e con questa possiamo ricostruire l'universo.
PM Quote
Avatar
vankraster (Member)
Rookie


Messaggi: 32
Iscritto: 05/11/2010

Segnala al moderatore
Postato alle 11:04
Domenica, 01/09/2013
Testo quotato

Postato originariamente da coyote100:

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim Carte(15) As Int
  2.  Carte(0) = 20 'asso



ma come fai ad abbinare carte(0) al nome asso

cioè io vedo solo i valori ordinati  34  22 14 10 ma non riesco ad abbinare al valore il nome della carta.



Non so se io ho capito bene ma potresti usare una funzione tipo:
Codice C# Ma facilmente adattabile a VB:
Codice sorgente - presumibilmente C#

  1. private string Nome_Carta_Da_Valore(Int32 ValoreCarta){
  2. switch (ValoreCarta)
  3. {
  4.     case 1:
  5.         return "Asso";
  6.         break;
  7.     case 2:
  8.         return "Due";
  9.         break;
  10. ..... Così via ci metti tutti i numeri...
  11.     default:
  12.         return "Valore Non Valido";
  13.         break;
  14. }
  15.  
  16. }



Cosi tu puoi richiamare la funzione Nome_Carta_Da_Valore(1) e ritorna "Asso".


Ci possono togliere tutto tranne la ragione e con questa possiamo ricostruire l'universo.
PM Quote
Avatar
coyote100 (Normal User)
Rookie


Messaggi: 50
Iscritto: 22/04/2013

Segnala al moderatore
Postato alle 11:08
Domenica, 01/09/2013
algoritmo ordinamento
Codice sorgente - presumibilmente VB.NET

  1. Dim i As Integer
  2.             Dim j As Integer
  3.  
  4.  
  5.  
  6.             For i = 0 To 13
  7.                 For j = i + 1 To 13
  8.                     If conteggioCARTE(i) < conteggioCARTE(j) Then
  9.                         ' swap the number in those two locations            
  10.  
  11.                         '  Since 10 > 9 we swap x  and  y                  
  12.  
  13.                         conteggioCARTE(i) = conteggioCARTE(i) + conteggioCARTE(j)
  14.                         conteggioCARTE(j) = conteggioCARTE(i) - conteggioCARTE(j)
  15.                         conteggioCARTE(i) = conteggioCARTE(i) - conteggioCARTE(j)
  16.                     End If
  17.                 Next j
  18.             Next i
  19.             For x = 0 To 13
  20.                 ListView2.Items.Add(conteggioCARTE(x))
  21.                 '  ListView1.Items(x).SubItems.Add(a(1, x)) ' uscita ordinamendo solo valori
  22.             Next x
  23.         End If







Codice sorgente - presumibilmente VB.NET

  1. Dim dictionary As New Dictionary(Of String, Integer)
  2.  
  3.  
  4.       dictionary.Add("Asso", 20)
  5.  
  6.  
  7.       dictionary.Add("Re", 15)


dictionary.Add("Asso", 20) il valore e predifinito in partenza, a me deve variare nel tempo

e poi come inserisco tutto nella
ListView1





PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo