Master Mind ....

psy460 Messages postés 10 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 24 avril 2009 - 7 févr. 2009 à 22:25
psy460 Messages postés 10 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 24 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

merci

2 réponses

psy460 Messages postés 10 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 24 avril 2009
7 févr. 2009 à 22:29
les couleurs à faire glisser sur les boutons son les picturebox1 a 8, l'ordre des couleur correspond a celui dans le tableau de couleur
0
psy460 Messages postés 10 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 24 avril 2009
8 févr. 2009 à 23:30
personne n'as le courage de regarder ???

plz j'ai toujours pas réussi
0
Rejoignez-nous