coyote100 (Normal User)
Rookie
Messaggi: 50
Iscritto: 22/04/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
|
|
lollo 97 (Member)
Rookie
Messaggi: 50
Iscritto: 27/06/2011
|
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 |
Enum Carte
Asso = 20
Re = 15
Regina = 15
'tutte quelle che vuoi..
End Enum
|
se invece proprio vuoi usare un array,allora fai cosi
Codice sorgente - presumibilmente C# / VB.NET |
Dim Carte(15) As Int
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 |
Ultima modifica effettuata da lollo 97 il 31/08/2013 alle 16:43 |
|
coyote100 (Normal User)
Rookie
Messaggi: 50
Iscritto: 22/04/2013
|
ok grazie per la risposta, ora valuto quale usare
|
|
coyote100 (Normal User)
Rookie
Messaggi: 50
Iscritto: 22/04/2013
|
Codice sorgente - presumibilmente C# / VB.NET |
Dim Carte(15) As Int
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.
|
|
Snogar (Normal User)
Pro
Messaggi: 145
Iscritto: 09/01/2012
|
Guardati la classe Hashtable c'è tutto quello che ti serve.
|
|
lollo 97 (Member)
Rookie
Messaggi: 50
Iscritto: 27/06/2011
|
Allora per quello hai proprio bisogno della classe Dictionary :
Codice sorgente - presumibilmente VB.NET |
|
|
vankraster (Member)
Rookie
Messaggi: 32
Iscritto: 05/11/2010
|
Postato originariamente da coyote100:
Codice sorgente - presumibilmente C# / VB.NET |
Dim Carte(15) As Int
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# |
private string Nome_Carta_Da_Valore(Int32 ValoreCarta){ switch (ValoreCarta) { case 1: return "Asso"; break; case 2: return "Due"; break; ..... Così via ci metti tutti i numeri... default: return "Valore Non Valido"; break; } }
|
Cosi tu puoi richiamare la funzione Nome_Carta_Da_Valore(1) e ritorna "Asso". |
|
vankraster (Member)
Rookie
Messaggi: 32
Iscritto: 05/11/2010
|
Postato originariamente da coyote100:
Codice sorgente - presumibilmente C# / VB.NET |
Dim Carte(15) As Int
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# |
private string Nome_Carta_Da_Valore(Int32 ValoreCarta){ switch (ValoreCarta) { case 1: return "Asso"; break; case 2: return "Due"; break; ..... Così via ci metti tutti i numeri... default: return "Valore Non Valido"; break; } }
|
Cosi tu puoi richiamare la funzione Nome_Carta_Da_Valore(1) e ritorna "Asso". |
|
coyote100 (Normal User)
Rookie
Messaggi: 50
Iscritto: 22/04/2013
|
algoritmo ordinamento
Codice sorgente - presumibilmente VB.NET |
Dim i As Integer Dim j As Integer For i = 0 To 13 For j = i + 1 To 13 If conteggioCARTE(i) < conteggioCARTE(j) Then ' swap the number in those two locations ' Since 10 > 9 we swap x and y conteggioCARTE(i) = conteggioCARTE(i) + conteggioCARTE(j) conteggioCARTE(j) = conteggioCARTE(i) - conteggioCARTE(j) conteggioCARTE(i) = conteggioCARTE(i) - conteggioCARTE(j) End If Next j Next i For x = 0 To 13 ListView2.Items.Add(conteggioCARTE(x)) ' ListView1.Items(x).SubItems.Add(a(1, x)) ' uscita ordinamendo solo valori Next x End If
|
Codice sorgente - presumibilmente VB.NET |
dictionary.Add("Asso", 20) il valore e predifinito in partenza, a me deve variare nel tempo
e poi come inserisco tutto nella
ListView1
|
|