IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

32 images générées aléatoirement (sans les voir)


Sujet :

VBA

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 5
    Points
    5
    Par défaut 32 images générées aléatoirement (sans les voir)
    Bonjour à tous,
    j'ai codé avec l'aide d'un ami le fait de générer 32 cartes de manière aléatoire.
    Cependant, cette distribution est visible, c'est-à-dire que le joueur jouant au memmory(jeu consistant à rerouver des paires) voit pas les cartes et non le dos des cartes. Je vous contacte pour vous demander de l'aide sur ce dernier point. Je ne sais pas comment effectuer cette distribution aléatoire tout en laissant sur le plateau de jeu le dos des cartes (image: fichier bmp), sachant qu'ensuite lorsque le joueur clique sur une des cartes il trouve une carte qui a été distribué aléatoirement précédemment. Je vous ai ajouté ci-dessous le code pour mieux comprendre:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    Private Sub cmd_Distribuer_Click()
     
    Dim chemin As String
     
    Dim TableauAffectation(1 To 16) As Integer
     
    ReDim TabImages(1 To 32) As Object
    Set TabImages(1) = Image1
    Set TabImages(2) = Image2
    Set TabImages(3) = Image3
    Set TabImages(4) = Image4
    Set TabImages(5) = Image5
    Set TabImages(6) = Image6
    Set TabImages(7) = Image7
    Set TabImages(8) = Image8
    Set TabImages(9) = Image9
    Set TabImages(10) = Image10
    Set TabImages(11) = Image11
    Set TabImages(12) = Image12
    Set TabImages(13) = Image13
    Set TabImages(14) = Image14
    Set TabImages(15) = Image15
    Set TabImages(16) = Image16
    Set TabImages(17) = Image17
    Set TabImages(18) = Image18
    Set TabImages(19) = Image19
    Set TabImages(20) = Image20
    Set TabImages(21) = Image21
    Set TabImages(22) = Image22
    Set TabImages(23) = Image23
    Set TabImages(24) = Image24
    Set TabImages(25) = Image25
    Set TabImages(26) = Image26
    Set TabImages(27) = Image27
    Set TabImages(28) = Image28
    Set TabImages(29) = Image29
    Set TabImages(30) = Image30
    Set TabImages(31) = Image31
    Set TabImages(32) = Image32
     
    For a = 1 To 32
     
        Do
     
            NbrAléatoire = Int((16 * Rnd) + 1) 'nbre aléatoire entre 1 et 16
     
            If TableauAffectation(NbrAléatoire) < 2 Then
                TableauAffectation(NbrAléatoire) = TableauAffectation(NbrAléatoire) + 1
                TableauCartes(a) = NbrAléatoire
                Exit Do
            End If
     
        Loop
     
    Next
     
    For a = 1 To 32
        chemin = (ThisWorkbook.Path + "\" + CStr(TableauCartes(a)) + ".bmp")
        TabImages(a).PictureSizeMode = fmPictureSizeModeStretch
        TabImages(a).AutoSize = False
        TabImages(a).Picture = LoadPicture(chemin)
    Next
     
     
    End Sub
    PS: Je suis débutant

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu as essayé, ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For a = 1 To 32
        chemin = (ThisWorkbook.Path + "\" + CStr(TableauCartes(a)) + ".bmp")
        TabImages(a).PictureSizeMode = fmPictureSizeModeStretch
        TabImages(a).AutoSize = False
        TabImages(a).Picture = LoadPicture(chemin)
        TabImages(a).visible = false
    Next

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 5
    Points
    5
    Par défaut afficher une autre image (la même 32 fois)
    Merci pour ta réponse, mais une fois avoir fait cela est-ce que je peut afficher 32 fois l'image du dos des cartes, en conservant tout de même la répartition aléatoire des cartes?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Oui, il suffit de faire le contraire sans toucher à leurs positions.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Tu vas sûrement penser que je suis lourd et nul, mais je n'ai pas bien compris ta dernière réponse (qu'est-ce que tu inverses?,..).

    Plutôt qu'entends-tu par faire le contraire?

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub RendreVisible()
    Dim TableauAffectation(1 To 16) As Integer
     
    ReDim TabImages(1 To 32) As Object
    Set TabImages(1) = Image1
    Set TabImages(2) = Image2
    Set TabImages(3) = Image3
         '...
         '...
         '...
    Set TabImages(32) = Image32
     
    For a = 1 To 32
         TabImages(a).visible = True
    Next

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 5
    Points
    5
    Par défaut 32 cartes aléatoires
    Je pense qu'on ne sait pas bien compris, en fait je souhaiterais qu'en début de partie le joueur ne voit que le dos des cartes. Cependant, la répartition se fait quand même ("en mémoire") lorsque le joueur appuie sur le bouton de lancement. Ce que je vais te dire va peut-être paraître étrange mais en fait c'est comme si dans la picture box il y avait 2 images : l'une n'est pas visible au début (cartes classique(coeur ,pique.....) qui ont été placées aléatoirement lors du clic sur le bouton de lancement), l'autre le dos de la carte qui est visible au début et jusqu'à ce que le joueur clique sur cette image.

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'aurais dû y penser. Et c'est bien pourquoi je t'avais conseillé d'utiliser un userform.
    Si tu peux me convaincre de l'intérêt de placer tes cartes sur une feuille de calculs plutôt que sur un userform, je regarderai ce qu'on peut faire...
    Une question va t'être posée : D'où sorte les images ? De quelle boîte à outils ? Dessin ou formulaire ?
    Si c'est dessin, tu peux affecter une macro à chaque image
    Si c'est formulaire, tu as accès au code en cliquant deux fois sur l'image.
    Bon courage

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 5
    Points
    5
    Par défaut 32 cartes sans les voir
    Et bien, j'ai demandé à mon prof et il m'a dit qu'il était préférable de faire le jeu sur feuille de calcul, il m'a exactement dit que j'alais me compliquer la vie en faisant cela sur userform sans me donner les raisons. Sinon les images sont des fichiers bitmap situées dans le même dossier que le fichier excel du jeu.

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    salut
    j'ai pas tout compris mais dans l'ensemble
    1 tu place les cartes
    2 tu place un dos de carte qui masque la carte
    3 le joueur clique et tu demasque la carte
    pourquoi ne pas
    mémoriser les position pour chaque valeur de carte
    placer les dos sur rien
    quand le joueur clique masquer le dos et charger la carte correspondante a cette position
    et hop ni vu ni connu, j'tembrouille

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je pense plus pratique de placer le dos en premier plan de l'image et de masquer le dos sur click sur le dos.
    Je t'ai posé la question
    D'où sortent les images ? De quelle boîte à outils ? Dessin ou formulaire ?
    Ta réponse nous éclairerait.
    Quelque soit la manière, chacune des images aura dans son click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Imagen.visible = false
    DoEvents
    PS - où imagen sera le dos de la carte. Le dos masqué, on voit la carte

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/04/2011, 15h17
  2. [XL-2003] Consultation d'images sans les inserer
    Par Binou_le_débutant dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2011, 16h38
  3. Réponses: 7
    Dernier message: 08/02/2010, 22h02
  4. Réponses: 12
    Dernier message: 15/06/2009, 15h27
  5. Lire les pixels de grandes images sans les ouvrir
    Par psicot dans le forum Multimédia
    Réponses: 1
    Dernier message: 16/04/2007, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo