Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569

    [VB6] Randomizzare gli elementi di un Array

    Io ho questo codice:
    codice:
    Private Sub Deal()
        Dim cards(1 To 52), i As Integer
        
        For i = 1 To 52
            cards(i) = i + 1
        Next i
        cards = Shuffle(cards)
        
        MsgBox cards(5)
    End Sub
    Si tratta di un esercizio di una guida che ho trovato su Internet.
    Shuffle è stata presa da: http://www.freevbcode.com/ShowCode.asp?ID=7399

    Il problema è: Perché mi esce questo errore?
    codice:
    Compile error:
    
    Type mismatch: array or user-defined type expected
    A volte la soluzione a un problema è sempre la più semplice...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quello non è codice VB6 ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    E come dovrei eseguire in VB6 una Shuffle corretta?
    A volte la soluzione a un problema è sempre la più semplice...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh, prova a tradurre quel codice da VB.NET a VB6 ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Credo che sia un po' non impossibile, ma improbabile che riesca: VB.NET e VB6 sono linguaggi differenti...
    A volte la soluzione a un problema è sempre la più semplice...

  6. #6
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Ho trovato questo:
    codice:
    Private Sub RandomizeArray()
    Dim i As Integer
    Dim j As Integer
    Dim tmp As Integer
    
        ' Randomize the array.
        Randomize
        For i = 1 To NumItems - 1
            ' Pick a random entry.
            j = Int((NumItems - i + 1) * Rnd + i)
    
            ' Swap the numbers.
            tmp = Numbers(i)
            Numbers(i) = Numbers(j)
            Numbers(j) = tmp
        Next i
    End Sub
    Fonte: http://www.vb-helper.com/howto_randomize_array.html

    Come posso tradurlo in funzione che accetta come parametro un Array?
    A volte la soluzione a un problema è sempre la più semplice...

  7. #7
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Ok, ho risolto
    codice:
    ' Dichiarazioni
    Private cards(1 To 52) As Integer
    
    ' Sub Deal
    Private Sub Deal()
        Dim i As Integer
        For i = 1 To 52
            cards(i) = i + 1
        Next i
        
        Shuffle
        MsgBox cards(5)
    End Sub
    
    'Shuffle
    Private Sub Shuffle()
        Dim i As Integer
        Dim j As Integer
        Dim tmp As Integer
    
        ' Randomize the array.
        Randomize
        For i = 1 To 52 - 1
            ' Pick a random entry.
            j = Int((52 - i + 1) * rnd + i)
    
            ' Swap the numbers.
            tmp = cards(i)
            cards(i) = cards(j)
            cards(j) = tmp
        Next i
    End Sub
    Non è una funzione, però modifica direttamente l'array
    A volte la soluzione a un problema è sempre la più semplice...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.