Bonjour,
Je dois faire un jeu d'échec et je suis quelque peu callé devant 2 problèmes majeurs.
Premièrement celui de l'affichage, je n'ai jamais compris réellement les tenants et aboutissants des différantes manière d'afficher une image et j'ai utilisé la procédure que vous verrez dans le code. Pour ce qui est de l'explication rapide de mon jeu. J'ai défini une classe pour chaque type de pièce(en la faisant hériter d'une classe pièce), possèdant deux méthodes virtuelles Afficher, Deplacement. La seconde renvoyant un booléen après deux Mousedown pour dire si le déplacement voulu est bel et bien valide. flag gère le mousedown il passe a true si on a cliqué sur une pièce de la couleur qui doit bouger et cflag retenant la dernière couleur ayant effectuer un mouvement. Sahmat n'étant la que pour dire si nous ne sommes pas encore en échec et math.
Maintenant j'en viens à mes problèmes.
Lors du déboguage il survient 2 problèmes majeur. Le premier c'est que dès que l'évènement mousedown intervient toutes mes pièces disparaissent. J'utilise la méthode Invalidate pour forcer l'évènement Paint. Ou sont mes erreurs ? Dans l'évènement Paint, ou dans l'appel d'Invalidate. Je précise que chacune de mes pièces possède une pictureBox.
Le second problème est encore plus désagréable et incompréhensible et c'est pour cela que j'attends avec impatience votre aide ( je vous remercie d'ailleurs de lire mon appel au secours). Lorsque je démarre une nouvelle partie et que je fais un mousedown sur un pion blanc et que je fais un mouvement valide Le programme plante en m'envoyant NullReferenceException à la ligne de code suivante
Occupmat etant ma matrice de pièce(xx,yy) les coordonnées d'origine et (xxx,yyy) la case de destination.
if (Occupmat[xx, yy].Deplacement(xx, yy, xxx, yyy,Occupmat) == false)
Si lors du début de la partie je clique sur un pion noir. La meme NUllReferenceException survient lors de la ligne
(this.Occupmat[xx,yy].coul != cflag)
Ou est mon erreur? Merci d'avance à tout ceux qui sont arrivés jusqu'à ce stade de lecture car je dois dire que je suis totalement dans le brouillard
Bonne journée
Partager