psy460
Messages postés10Date d'inscriptionmercredi 14 janvier 2009StatutMembreDernière intervention24 avril 2009
-
7 févr. 2009 à 22:25
psy460
Messages postés10Date d'inscriptionmercredi 14 janvier 2009StatutMembreDernière intervention24 avril 2009
-
8 févr. 2009 à 23:30
j'ai commencer a faire un master mind, le code génère une combinaison aléatoire, j'ai déjà fais quelques autres fonctions, n'y faite pas attention il ne servent pas au niveau de mon problème ;
j'ai fait des carrés de couleur différente correspondant au couleur existante dans le jeu bien sur , à chaque essais, on créé X instance de boutons, avec X= nombre de "pion" par combinaison. je pensais utiliser le glisse déplacer des carrés de couleur (picturesbox) sur les boutons pour leur attribuer la couleur des picturesbox en "backgroundcolor"
le problème c'est que mes picturesbox restent fixe, impossible de les bouger :s
je ne sais pas comment m'y prendre
Public Class MasterMind
Public couleur(8) As Color 'tableau contenant les couleurs des "pions"
Public inconnu As New Integer 'nombre représentant la longueur de la combinaison a trouver
Public colors As New Integer ' nombre de couleur disponible pour generer la solution
Public unique As New Boolean 'indique si on peut avoir plusieur fois la meme couleur dans une combinaison
Public alea As New Integer 'entier qu'on utilisera en temps que nombre aléatoire
Public couleuruse(8) As Boolean ' indique si une couleur a deja été utilisé pour generer la solution
Public sol(8) As Color ' tableau de couleur contenant la solution
Public soluce(8) As Button 'bouton dans les quels on placera les couleur de la solution a l'affichage de la solution
Public ligne(8) As Button 'bouton sur les quels l'utilisateur placera les couleurs qu'il veut proposer
Dim premier As Boolean = True 'vrai si c'est la premiere fois que l'on affiche la solution
Dim j As Integer ' compteur de tentative
Public Sub validerDiff()
If colors < inconnu Then
colors = inconnu
MsgBox("pas assez de couleur pour ne pas avoir de doublons, " & Chr(13) & "le nombre de couleur à été ajusté au nombre d'inconnues")
End If
End Sub
Public Sub initialiserSol() 'generateur de combinaison aleatoire
If unique Then
For i = 1 To inconnu
Do
Randomize()
alea = CInt(Rnd() * colors + 1)
Loop While (couleuruse(alea) = True)
sol(i) = couleur(alea)
couleuruse(alea) = True
Next
Else
For i = 0 To inconnu
sol(i) = couleur(alea)
couleuruse(alea) = True
Next
End If
For i = 1 To 8
couleuruse(i) = False
Next
alea = 0
End Sub
Public Sub nouvelleligne()
For i = 1 To inconnu
ligne(i) = New Button
ligne(i).Parent = panel1
ligne(i).Left = (i * 5) + (i - 1) * 50
ligne(i).Width = 50
ligne(i).Top = 450 - ((j * 5) + (j - 1) * 50)
ligne(i).Height = 50
ligne(i).Visible = True
Next
End Sub
Private Sub NouveauJeu_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles NouveauJeu.Click
validerDiff() ' si la combinaison ne peut pas avoir de doublons et que le nombre de couleurs utilisable est inferieur au nombre d'inconnu,
initialiserSol() 'il vas y avoir un probleme ^^
j = 1 ' compteur de tentatives
nouvelleligne() 'on creer une nouvelle ligne
Label2.Text = j
End Sub
Private Sub MasterMind_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
couleur(1) = Color.Maroon
couleur(2) = Color.White
couleur(3) = Color.Blue ' initialisation du tableau de couleur
couleur(4) = Color.Red
couleur(5) = Color.Yellow
couleur(6) = Color.Green
couleur(7) = Color.Orange
couleur(8) = Color.Black
inconnu = 5 'valeur par default (enregistrée dans un fichier de configuration pour que l'uttilisateur puisse modifier
colors = 7 ' les valeurs)
unique = True
For i = 1 To colors
couleuruse(i) = False
If colors < 5 Then
PictureBox5.Visible = False 'suivant le nombre de couleur utilisable pour generer la solution on cache celle qui sont inutiles
PictureBox6.Visible = False
PictureBox7.Visible = False
PictureBox8.Visible = False
ElseIf colors < 6 Then
PictureBox6.Visible = False
PictureBox7.Visible = False
PictureBox8.Visible = False
ElseIf colors < 7 Then
PictureBox7.Visible = False
PictureBox8.Visible = False
ElseIf colors < 8 Then
PictureBox8.Visible = False
End If
Next
End Sub
'affichage de la solution
Private Sub Solution_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Solution.Click
Dim pannel As New Panel()
If premier Then
For i = 1 To inconnu
soluce(i) = New Button()
soluce(i).BackColor = sol(i)
soluce(i).Parent = Panel
soluce(i).Left = (i * 5) + (i - 1) * 50
soluce(i).Width = 50
soluce(i).Top = 5
soluce(i).Height = 50
soluce(i).Visible = True
premier = False
Next
Else
For i = 1 To inconnu
soluce(i).BackColor = sol(i)
Next
End If
End Sub
End Class