Ciao, ti conviene usare l'oggetto Scripting.Dictionary
ti posto un esempio per i vari punti che hai elencato..
Per usare l'oggetto Scripting.Dictionary, devi inserire il riferimento, al tuo progetto, della libreria "Microsoft Scripting Runtime"codice:Dim carte As New Scripting.Dictionary Private Type tipoCarta tSeme As String tDescrizione As String End Type 'distingui il seme delle carte in: 'C=cuori; Q=quadri; F=fiori; P=picche; 'e siccome il seme deve essere univoco come chiave per l'oggetto dictionay 'passare il valore del seme così: 'C1 (asso di cuori), Q10 (10 di quadri), FK (re di fiori) ecc... 'come descrizione si può mettere quello che si vuole.. magari il nome esteso della carta.. Private Sub InserisciCarta(seme As String, descrizione As String) If Not carte.Exists(seme) Then carte.Add seme, descrizione End If End Sub Private Sub CancellaCarta(ByVal seme As String) carte.Remove seme End Sub Private Function ContaCarte() As Integer ContaCarte = carte.Count End Function Private Function DescrizioneCarta(ByVal seme As String) As String DescrizioneCarta = carte.Item(seme) End Function Private Function EstraiCarta() As tipoCarta Dim vettCarte Dim carta As Integer Randomize carta = Int(ContaCarte * Rnd) ' Genera un valore casuale compreso tra 0 e il numero di carte meno 1. vettCarte = carte.Keys EstraiCarta.tSeme = vettCarte(carta) EstraiCarta.tDescrizione = DescrizioneCarta(vettCarte(carta)) CancellaCarta (vettCarte(carta)) End Function 'esempio di applicazione Private Sub Command1_Click() Dim prova As tipoCarta MsgBox "totale carte=" & ContaCarte prova = EstraiCarta MsgBox prova.tSeme & " " & prova.tDescrizione End Sub Private Sub Form_Load() Dim i As Integer For i = 1 To 10 InserisciCarta "C" & i, "CARTA DI CUORI " & i Next InserisciCarta "CJ","CARTA DI CUORI J" InserisciCarta "CQ","CARTA DI CUORI Q" InserisciCarta "CK","CARTA DI CUORI K" End Sub
![]()

Rispondi quotando