Retrouve les paires d'images cachées

Description

Petit jeu pour travailler sa mémoire visuelle.
Le jeu affiche 10 paires d'images durant une dizaine de secondes avant de les masquer.
A toi de les retrouver dans un minimum de temps.
Dans sa présentation actuelle, j'utilise des fichiers ICO mais on peut très bien utiliser
d'autres images (il faut toutefois faire attention à la taille de celle-ci).
Le programme utilise un Timer, charge des fichiers parmis une liste, effectue un triage de ces fichiers, se sert de la fonction Randomize.
'======================================================
Le code ci-dessous est le code du module que j'ai modifié en fonction des remarques qui m'ont été faites par Legamer et Derkin.

Source / Exemple :


Public ListeFichiers() As String
Public MyPath As String

Sub Main()

    Dim Num As Integer
    Dim i As Integer
    Dim j As Integer
    Dim Fichier As String
    Dim Interm As String
    

    MyPath = App.Path
If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\"
MyPath = MyPath & "images\"
'========================================================================
'Si MyPath ne termine pas par "\", l'ajoute
'En effet, lorsque je place le projet au niveau de C:,
'App.Path renvoie le chemin suivant "C:\".
'Par contre, lorsque le projet se trouve dans un dossier,
'App.Path renvoie le chemin de ce dossier MAIS SANS le "\" final
'C'est déjà ici que j'avais commis une erreur dans mon 1er projet,
'puisque je définissais MyPath ainsi MyPath = App.Path &"\images\"
'Or d'après ce que je viens de dire, MyPath pouvait donc prendre
'la valeur suivante "C:\\images"
'========================================================================
    
    'Récupère le nom des fichiers images
    '-----------------------------------
    Fichier = Dir(MyPath & "*.ICO", vbArchive)
If Fichier = "" Then
MsgBox "Aucun fichier de type *.ICO n'a été trouvé dans le répertoire spécifié:" _
& vbCr & vbCr & String(10, " ") & Left(MyPath, Len(MyPath) - 1) & vbCr & vbCr _
& "Veuillez vérifier que le répertoire et les fichiers en question existent.", vbCritical
End
End If
'========================================================================
'Deuxième erreur de ma part, liée d'ailleurs au point précédent.
'Puisque le dossier contient une erreur dans son chemin,
'la fonction Dir() sera bien incapable de trouver le moindre fichier
'dans ce dossier "inexistant", dès lors la boucle suivante n'aura pas lieu
'et ListeFichiers restera vide ;
'ce qui provoquera l'erreur "Indice en dehors de la plage" lors du tri
'des fichiers
'========================================================================

    Do While Fichier <> ""
        ReDim Preserve ListeFichiers(Num)
        ListeFichiers(Num) = Fichier
        Fichier = Dir
        Num = Num + 1
    Loop
    
    'Retrie alphabétiquement la liste des fichiers
    'parce qu'au départ j'utilisais des photos de personnes
    '-------------------------------------------------------
    'Je rajoute une gestion des erreurs au cas où...
    On Error GoTo Erreur
    For j = 0 To UBound(ListeFichiers)
        For i = 0 To UBound(ListeFichiers) - 1
            If ListeFichiers(i) > ListeFichiers(i + 1) Then
                Interm = ListeFichiers(i)
                ListeFichiers(i) = ListeFichiers(i + 1)
                ListeFichiers(i + 1) = Interm
            End If
        Next
    Next
    
    Form1.Show
        
    Exit Sub

Erreur:
    If Err = 9 Then
        MsgBox "Erreur inattendue dans le tri des fichiers" & vbCr & vbCr _
            & "L'application va se terminer.", vbCritical
    Else
        MsgBox "Erreur tout à fait inattendue : " & vbCr & vbCr _
                & "Erreur n°" & Err & " : " & Err.Description _
                & vbCr & vbCr _
                & "L'application va se terminer.", vbCritical
    End If
    End
End Sub

Conclusion :


Je sais que le jeux peut (et devrait même) être amélioré :
- prévoir un compteur des coups ratés;
- prévoir la possibilité de faire une nouvelle partie (ou de "relancer la donne");
- offrir la possibilité de se créer différents répertoires regroupant des images par thème...
Mais ça fait un moment que j'ai fait ça et je trouvais dommage de le laisser dormir sur mon PC.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.