JEU DE DOMINO AVEC INTELLIGENCE ARTIFICIELLE (2 NIVEAU)

Signaler
Messages postés
288
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
13 juin 2008
-
Messages postés
17
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
8 décembre 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38670-jeu-de-domino-avec-intelligence-artificielle-2-niveau

Messages postés
17
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
8 décembre 2008

mon commentaire est a propos du jeu:belle réalisation
Messages postés
15
Date d'inscription
vendredi 17 septembre 2004
Statut
Membre
Dernière intervention
11 mai 2007

Le jeu est bien fait, l'IA marche bien.
Cependant la structure du programme est très très lourde.
Pour l'accelerer, les modifications à faire sont très importante.
En fait, cadriller la zone de jeu avec des ImageBox est la cause principale. Il faudrait utiliser les propriétés de la PictureBox 'domino_board'.
- Tu détectes les déplacements de la souris avec MouseMove et tu calcule sur quelle case est la souris. Tu utilise domino_board.Line pour définir le carré.
- Lorsque l'utilisateur place sa pièce, tu utilise domino_board.PaintPicture

Pense à mettre la propriété AutoRedraw de domino_board à True

Il y a aussi plus simple :
- à la place de :
For k 1 To tile.Count - 1: tile(k).BorderStyle 0: Next
If tile(Index).Picture 0 Then tile(Index).BorderStyle 1
tu met :
if Index <> IndSel then
tile(IndSel).BorderStyle = 0
If tile(Index).Picture 0 Then tile(Index).BorderStyle 1
IndSel = Index
End If

( Il faut déclarer IndSel en global )
Messages postés
288
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
13 juin 2008

Je crois que la solution la plus simple pour moi car je suis débutant est de me procurer un module .dll car je l'ai vu pour pouvoir utiliser VB6 avec ma version

Merci à tous pour votre aide et à bientôt.
Messages postés
292
Date d'inscription
samedi 25 février 2006
Statut
Membre
Dernière intervention
22 février 2009

Salut SDan, aparament le round n'existe pas en VB5 donc il faudrait que tu le créé. Tu peux faire par exemple:

'La fonction round retourne le nombre arrondi
public fonction Round(Nombre as integer) as integer
'Si le dernier chiffre est 4 ou inférieur on arrondi à la valeur inférieur
if right(nombre, 1) <= 4 then
'Prend la premiere partie du nombre, sans le dernier chiffre et met 0
round = left(nombre, len(nombre)-1) & 0
'Sinon on arrondi a la valeur supérieur
else
'Idem qu'en haut mais on incrémente l'avant dernier chiffre de un
round = left(nombre, len(nombre)-2) & mid(nombre, len(nombre) - 2, 1) & 0
end if

Bon voila je sais pas si c'est très claire, sa va buger(quand on incrémente de 1 il faut prévoire quand c'est 9 etc...) et je ne sais pas si il y a les fonction left, right, mid et len en VB5, dans ce cas faudrait faire du VB6 sa marchera surement ;)
Teste la fonction si tu veux et dis si sa marche!

@+
Afficher les 6 commentaires