Bonjour, je rencontre quelques problèmes dans mon programme car quelques lignes de codes ne semble pas être juste. J'essaye de rendre invisible mon bouton JOUER tant que toutes les couleurs du jeu ne sont pas toutes trouvés. Aussi je n'arrive pas à rendre visible le tableau1 (gris) quand j'appuie sur le bouton JOUER (c'est à dire réinitialiser le jeu). Merci pour vôtre aidehttp://forum-images.hardware.fr/icones/message/icon7.gif.
Public Class Form1 Inherits System.Windows.Forms.Form Dim tableau1(5, 5) As Button Dim tableau2(5, 5) As Button Dim i, j, k, l As Integer Dim ibouton1, jbouton1, ibouton2, jbouton2 As Integer Dim clicbouton2 As Boolean = False Dim couleur As Boolean = True
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Size = New Size(850, 700) Me.StartPosition = FormStartPosition.CenterScreen
For i As Integer = 0 To 5 For j As Integer = 0 To 5 tableau1(i, j) = New Button tableau1(i, j).Visible = True Me.Controls.Add(tableau1(i, j))
Dim button1 As Color = tableau2(i, j).BackColor tableau2(i, j).BackColor = tableau2(value1, value2).BackColor tableau2(value1, value2).BackColor = button1
Next Next JOUER.Visible = False If couleur = True Then JOUER.Visible = True End If End Sub
Private Sub tableau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim coord() As String ' Variable que restera à True si toutes ' les couleurs ont été trouvées
coord = Split(sender.tag, ";" )
' Si c'est le premier bouton qu'on clic If clicbouton2 = False Then ' On récupère les coordonnées ibouton1 = CInt(coord(0)) jbouton1 = CInt(coord(1))
' On rend invisible le bouton gris tableau1(ibouton1, jbouton1).Visible = False
' On met cette variable à True pour dire que le ' prochain clic sera celui du 2° bouton clicbouton2 = True
' C'est le clic sur le deuxième bouton ElseIf clicbouton2 = True Then
' Avec les 2 boucles For, on désactive ' le clic sur un autre bouton jusqu'à ce ' que les boutons soit vérifiés et correct ' soit qu'ils sont pas correct et remis en ' gris For nb1 As Integer = 0 To 5 For nb2 As Integer = 0 To 5 tableau1(nb1, nb2).Enabled = False Next Next ' On récupère les coordonnées ibouton2 = CInt(coord(0)) jbouton2 = CInt(coord(1))
' On rend invisible le bouton gris tableau1(ibouton2, jbouton2).Visible = False
' Si les couleurs entre le 1° bouton cliqué et le 2° bouton sont identiques If tableau2(ibouton1, jbouton1).BackColor = tableau2(ibouton2, jbouton2).BackColor Then ' On ne fait rien ' On remet juste clicbouton2 à False ' pour dire que le prochain clic sera de ' nouveau le 1° bouton clicbouton2 = False Else ' Les couleurs ne sont pas identiques
' Création d'une attente de 2 secondes hbwait(500)
' On affiche de nouveau les 2 boutons gris tableau1(ibouton1, jbouton1).Visible = True tableau1(ibouton2, jbouton2).Visible = True
' On remet juste clicbouton2 à False ' pour dire que le prochain clic sera de ' nouveau le 1° bouton clicbouton2 = False End If End If
' Avec les 2 boucles For, on réactive ' le clic sur un autre bouton For nb1 As Integer = 0 To 5 For nb2 As Integer = 0 To 5 tableau1(nb1, nb2).Enabled = True Next Next
' Avec ces 2 boucles, on teste si toutes les couleurs ' ont été trouvées si ce n'est pas le cas, la variable ' colorsfound passe à False For nb1 As Integer = 0 To 3 For nb2 As Integer = 0 To 3 If tableau1(nb1, nb2).Visible = True Then couleur = False End If Next Next
If couleur = True Then MsgBox("Félicitation, vous avez gagné!" ) End If
End Sub
Friend Sub hbwait(ByVal ms_to_wait As Long) Dim endwait As Double endwait = Environment.TickCount + ms_to_wait While Environment.TickCount < endwait System.Threading.Thread.Sleep(1) Application.DoEvents() End While End Sub
Private Sub JOUER_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles JOUER.Click For i As Integer = 0 To 5 For j As Integer = 0 To 5 Randomize() Dim value1 As Integer = CInt(Int((6 * Rnd()))) Dim value2 As Integer = CInt(Int((6 * Rnd())))
Dim button1 As Color = tableau2(i, j).BackColor tableau2(i, j).BackColor = tableau2(value1, value2).BackColor tableau2(value1, value2).BackColor = button1
Next Next If couleur = True Then tableau2(i, j).Visible = False End If End Sub End Class
Marsh Posté le 27-01-2009 à 17:55:56
Bonjour, je rencontre quelques problèmes dans mon programme car quelques lignes de codes ne semble pas être juste. J'essaye de rendre invisible mon bouton JOUER tant que toutes les couleurs du jeu ne sont pas toutes trouvés. Aussi je n'arrive pas à rendre visible le tableau1 (gris) quand j'appuie sur le bouton JOUER (c'est à dire réinitialiser le jeu). Merci pour vôtre aidehttp://forum-images.hardware.fr/icones/message/icon7.gif.
Public Class Form1
Inherits System.Windows.Forms.Form
Dim tableau1(5, 5) As Button
Dim tableau2(5, 5) As Button
Dim i, j, k, l As Integer
Dim ibouton1, jbouton1, ibouton2, jbouton2 As Integer
Dim clicbouton2 As Boolean = False
Dim couleur As Boolean = True
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Size = New Size(850, 700)
Me.StartPosition = FormStartPosition.CenterScreen
For i As Integer = 0 To 5
For j As Integer = 0 To 5
tableau1(i, j) = New Button
tableau1(i, j).Visible = True
Me.Controls.Add(tableau1(i, j))
tableau1(i, j).Tag = i.ToString + ";" + j.ToString
AddHandler tableau1(i, j).Click, AddressOf tableau_Click
tableau1(i, j).Top = i * 100
tableau1(i, j).Left = j * 100
tableau1(i, j).Width = 90
tableau1(i, j).Height = 90
tableau1(i, j).BackColor = Color.Gray
Next
Next
For i As Integer = 0 To 5
For j As Integer = 0 To 5
tableau2(i, j) = New Button
tableau2(i, j).Visible = True
Me.Controls.Add(tableau2(i, j))
tableau2(i, j).Top = i * 100
tableau2(i, j).Left = j * 100
tableau2(i, j).Width = 90
tableau2(i, j).Height = 90
Next
Next
tableau2(0, 0).BackColor = Color.Yellow
tableau2(0, 1).BackColor = Color.Yellow
tableau2(0, 2).BackColor = Color.Blue
tableau2(0, 3).BackColor = Color.Blue
tableau2(0, 4).BackColor = Color.Red
tableau2(0, 5).BackColor = Color.Red
tableau2(1, 0).BackColor = Color.White
tableau2(1, 1).BackColor = Color.White
tableau2(1, 2).BackColor = Color.Black
tableau2(1, 3).BackColor = Color.Black
tableau2(1, 4).BackColor = Color.DarkMagenta
tableau2(1, 5).BackColor = Color.DarkMagenta
tableau2(2, 0).BackColor = Color.Maroon
tableau2(2, 1).BackColor = Color.Maroon
tableau2(2, 2).BackColor = Color.Orange
tableau2(2, 3).BackColor = Color.Orange
tableau2(2, 4).BackColor = Color.Cyan
tableau2(2, 5).BackColor = Color.Cyan
tableau2(3, 0).BackColor = Color.Green
tableau2(3, 1).BackColor = Color.Green
tableau2(3, 2).BackColor = Color.HotPink
tableau2(3, 3).BackColor = Color.HotPink
tableau2(3, 4).BackColor = Color.DarkKhaki
tableau2(3, 5).BackColor = Color.DarkKhaki
tableau2(4, 0).BackColor = Color.Violet
tableau2(4, 1).BackColor = Color.Violet
tableau2(4, 2).BackColor = Color.DarkGray
tableau2(4, 3).BackColor = Color.DarkGray
tableau2(4, 4).BackColor = Color.DarkRed
tableau2(4, 5).BackColor = Color.DarkRed
tableau2(5, 0).BackColor = Color.Honeydew
tableau2(5, 1).BackColor = Color.Honeydew
tableau2(5, 2).BackColor = Color.DeepSkyBlue
tableau2(5, 3).BackColor = Color.DeepSkyBlue
tableau2(5, 4).BackColor = Color.Fuchsia
tableau2(5, 5).BackColor = Color.Fuchsia
For i As Integer = 0 To 5
For j As Integer = 0 To 5
Randomize()
Dim value1 As Integer = CInt(Int((6 * Rnd())))
Dim value2 As Integer = CInt(Int((6 * Rnd())))
Dim button1 As Color = tableau2(i, j).BackColor
tableau2(i, j).BackColor = tableau2(value1, value2).BackColor
tableau2(value1, value2).BackColor = button1
Next
Next
JOUER.Visible = False
If couleur = True Then
JOUER.Visible = True
End If
End Sub
Private Sub tableau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim coord() As String
' Variable que restera à True si toutes
' les couleurs ont été trouvées
coord = Split(sender.tag, ";" )
' Si c'est le premier bouton qu'on clic
If clicbouton2 = False Then
' On récupère les coordonnées
ibouton1 = CInt(coord(0))
jbouton1 = CInt(coord(1))
' On rend invisible le bouton gris
tableau1(ibouton1, jbouton1).Visible = False
' On met cette variable à True pour dire que le
' prochain clic sera celui du 2° bouton
clicbouton2 = True
' C'est le clic sur le deuxième bouton
ElseIf clicbouton2 = True Then
' Avec les 2 boucles For, on désactive
' le clic sur un autre bouton jusqu'à ce
' que les boutons soit vérifiés et correct
' soit qu'ils sont pas correct et remis en
' gris
For nb1 As Integer = 0 To 5
For nb2 As Integer = 0 To 5
tableau1(nb1, nb2).Enabled = False
Next
Next
' On récupère les coordonnées
ibouton2 = CInt(coord(0))
jbouton2 = CInt(coord(1))
' On rend invisible le bouton gris
tableau1(ibouton2, jbouton2).Visible = False
' Si les couleurs entre le 1° bouton cliqué et le 2° bouton sont identiques
If tableau2(ibouton1, jbouton1).BackColor = tableau2(ibouton2, jbouton2).BackColor Then
' On ne fait rien
' On remet juste clicbouton2 à False
' pour dire que le prochain clic sera de
' nouveau le 1° bouton
clicbouton2 = False
Else
' Les couleurs ne sont pas identiques
' Création d'une attente de 2 secondes
hbwait(500)
' On affiche de nouveau les 2 boutons gris
tableau1(ibouton1, jbouton1).Visible = True
tableau1(ibouton2, jbouton2).Visible = True
' On remet juste clicbouton2 à False
' pour dire que le prochain clic sera de
' nouveau le 1° bouton
clicbouton2 = False
End If
End If
' Avec les 2 boucles For, on réactive
' le clic sur un autre bouton
For nb1 As Integer = 0 To 5
For nb2 As Integer = 0 To 5
tableau1(nb1, nb2).Enabled = True
Next
Next
' Avec ces 2 boucles, on teste si toutes les couleurs
' ont été trouvées si ce n'est pas le cas, la variable
' colorsfound passe à False
For nb1 As Integer = 0 To 3
For nb2 As Integer = 0 To 3
If tableau1(nb1, nb2).Visible = True Then
couleur = False
End If
Next
Next
If couleur = True Then
MsgBox("Félicitation, vous avez gagné!" )
End If
End Sub
Friend Sub hbwait(ByVal ms_to_wait As Long)
Dim endwait As Double
endwait = Environment.TickCount + ms_to_wait
While Environment.TickCount < endwait
System.Threading.Thread.Sleep(1)
Application.DoEvents()
End While
End Sub
Private Sub JOUER_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles JOUER.Click
For i As Integer = 0 To 5
For j As Integer = 0 To 5
Randomize()
Dim value1 As Integer = CInt(Int((6 * Rnd())))
Dim value2 As Integer = CInt(Int((6 * Rnd())))
Dim button1 As Color = tableau2(i, j).BackColor
tableau2(i, j).BackColor = tableau2(value1, value2).BackColor
tableau2(value1, value2).BackColor = button1
Next
Next
If couleur = True Then
tableau2(i, j).Visible = False
End If
End Sub
End Class