tlemeillat
Messages postés26Date d'inscriptionjeudi 8 mars 2007StatutMembreDernière intervention17 mai 2007
-
17 avril 2007 à 22:11
cs_mafe
Messages postés1Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention24 mai 2007
-
24 mai 2007 à 15:24
je débute en vb et j'ai un petit pb sur un exo, si quelqu'un pouvait me donner quelques idées:
en fait il s'agit d'un damier avec 2 types d'agents, rouges et bleus, disposés aléatoirement sur le damier et qui vont se déplacer aléatoirement s'ils ne sont pas contents (si le nb de leurs voisins de couleur différente est supérieur à un certain seuil). Sur le damier, chaque agent (cellule) est entouré de 8 voisins.
Le but de l'exo est de voir qu'à la fin d'une itération, les agents de même couleur se regroupent, formant ainsi des "tâches" sur le damier.
mon blocage: je n'arrive pas à traduire en code le moment où je voudrais que les agents "pas contents" se rangent dans un tableau (invisible) et se "redispatchent" sur le damier initial sur une case où ils seraient "contents".
si quelqu'un pouvait m'aiguiller un peu se serait sympa -)
merci pour ta reponse, mais j'ai une question par rapport a l'exo de [auteurdetail.aspx?ID=1001034 tlemeillat] ,
j'ai esseye de voir le code, et j'ai mit sous vb6.0 ce que vous avez avancer ensemble, mais je trouve que il y a toujours un pronbleme au niveau des voisins satisfait, car le code fournit ca march bien mais pas pour les colones et les lignes sur les bord
car si j'ai bien compri, une des cases qui ce situe dan le premier colone, ses voisins sont celle du second colone et le ligne du haut et le ligne du bat et le dernier colone (et c'est la ou il affiche pas la bonne resultat) on a comm l'impression qu'il calcul par rapport a une colone cacher qu'on le voi pas.
Peut etre tu voi que je suis curieu :$ et je te redemande peut etre une question que tu a deja resolu avec [auteurdetail.aspx?ID =1001034 tlemeillat]
Mais je trouve que sont exo est interessant :)
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 21 mai 2007 à 09:55
Re,
Comme je te l'ai dit je ne garde pas les codes. mais je me souviens que lors de mes test j'avais ce problème. Peu être alors devrais tu améliorer la fonction qui cherche le nombre de voisins, et ajouter des condistions quant à la position de la cellule. (à savoir 1 ere et derniere ligne, 1 ere et derniere colonne)
cs_mafe
Messages postés1Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention24 mai 2007 24 mai 2007 à 15:24
salut!!!
j'ai le même programme à faire!!!
Bon voila j'ai travailler de mon coté et avec les informations que vous avez laissé sur le forum..
mais g un probléme avec la procédure rangement et déplacement..
je n'arrive pas à déplacer mes individus rouge et les bleus dans un tableau imaginaire puis les remettre dans le tableau à la suite(c'est à dire d'abord les bleu apres les rouges, ou inversement)
je laisse en gros ske j'ai fais et en regardant sur ce forum:
Private Sub Rangement()
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Dim Source As T_Agent
Dim Destination As T_Agent
Dim TmpCol As Integer
Dim TmpLig As Integer
Dim TmpCoul As Long
Dim
<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??>
<st1:state>
<st1:place>
ind
</st1:place>
</st1:state>
As Integer
Dim i As Integer
Dim j As Integer 'On Parcour une premiere fois
For i = 0 To UBound(LesInsatisfaits) - 1 'on parcours une seconde fois pour lui trouver 'une plase satisfaisante
For j = i To UBound(LesInsatisfaits)
Source = LesInsatisfaits(i)
Destination = LesInsatisfaits(j) 'SI les couleurs sont différentes
If (Source.T_Couleur <> Destination.T_Couleur) And Not Source.T_Deplacer And Not Destination.T_Deplacer Then 'On intervertit les agent sur le damier
agent(
<st1:state>
<st1:place>
ind
</st1:place>
</st1:state>
).BackColor = Source.T_Couleur
agent(
<st1:state>
<st1:place>
ind
</st1:place>
</st1:state>
).BackColor = Destination.T_Couleur
Exit For
End If
Next j
Next i
End Sub
'Private Sub deplacement()
'Dim i As Integer
'Dim j As Integer
'Dim couleurind As Integer
'Dim dimtemp As Integer
'Dim
<st1:state>
<st1:place>
Ind
</st1:place>
</st1:state>
As Integer
'Dim lig As Integer
'Dim col As Integer
'Dim temp(1 To 31, 1 To 31, 2) As Integer
'couleurind = 2
'For lig = 1 To dimterrain
'For col = 1 To dimterrain
'
<st1:state>
<st1:place>
Ind
</st1:place>
</st1:state>
= indice(col, lig)
'Ind = temp(i, j, 2) temp' sur cette ligne je ne comprend pas