[Visual Basic 05] Comparer des PictureBox

Résolu
Bonjour,

J'ai un problème avec Visual Basic, je suis en train de créer un morpion de 3 lignes sur 3 colonnes. Je jeu se joue sur un seul PC à 2 joueur et on considère que c'est chacun son tour. Le joueur clique sur une case, une image s'affiche, il laisse la souris au joueur 2, qui clique sur une autre case, une autre image s'affiche et ainsi de suite jusqu'à ce qu' une ligne contienne les même images verticalement, horizontalement ou en diagonale (il n'y a que des images, une pour le joueur 1 et une pour le joueur 2). Algorithmiquement parlant, ça donne quelque chose comme ça :
si pictureBox1 est égal à pictureBox2 et pictureBox2 est égal à picture box3 alors
afficher "vous avez gagné"

Le problème est que je n'arrive pas à comparer les pictureBox

Pouvez-vous m'aider ?

Merci d'avance.

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    tu mets les images dans le même répertoire et tu code en dur le contenu du PictureBox ensuite tu compares les chaînes (le chemin vers l'image)
    Option Explicit
    Dim spic1 As String, spic2 As String
    
    Private Sub Command1_Click()
        If spic1 = spic2 Then
            MsgBox "ok"
        Else
            MsgBox "pas ok"
        End If
    End Sub
    
    Private Sub Form_Load()
    
        spic1 = "C:\photo.JPG"
        spic2 = "C:\photo.JPG"
        
        pic1.Picture = LoadPicture(spic1)
        pic2.Picture = LoadPicture(spic2)
    End Sub
    lami20j
    1. Salut

      Merci pour ton conseil, j'ai aussi pensé pensé au tags sur les pictureBox non ? ensuite je compare si les tags sont identiques ?

      C'est bien aussi non ?
      1. Modérateur
        Re,

        oui mais avec tag ce n'est pas evident.

        Même si l'image est la même si les tag diffère alors ... et vice versa

        lami20j
        1. Voici le code que j'utilise quand je clique sur un pictureBox. Il ne peut pas y avoir confusion dans les images car selon la valeur de joueur, la valeur sera différente.

          Dim Joueur as boolean

          Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
          If joueur = False Then
          image1 = My.Resources.Angel
          PictureBox1.Image = image1
          PictureBox1.Tag = "J1"
          joueur = True
          Else
          image1 = My.Resources.Jacques_Chirac
          PictureBox1.Image = image1
          PictureBox1.Tag = "J2"
          joueur = False
          End If

          If PictureBox1.Tag = PictureBox2.Tag And PictureBox2.Tag = PictureBox3.Tag Or PictureBox1.Tag = PictureBox4.Tag And PictureBox4.Tag = PictureBox7.Tag Or PictureBox1.Tag = PictureBox5.Tag And PictureBox9.Tag Then
          Gagnant()
          End If
          1. Modérateur
            Re,

            ben, si ça marche alors le problème est résolu.

            lami20j