Jeu d'echec / chessgame

Description

ChessGame / Jeu D'Echec en C#

REMARQUE: J'AI MIS UNE NOUVELLE LIBRAIRIE EN LIGNE QUI OFFRE BEAUCOUP PLUS DE FONCTIONNALITE ET QUI CORRIGE CERTAINS BUGS. TELECHARGEZ-LA ICI: http://www.csharpfr.com/codes/CHESS-GAME-CORE-LIBRAIRIE-JEU-ECHEC-CSHARP_50090.aspx

Etant donné qu'il n'y avait encore aucun jeu d'échec sur le site, je me suis lancé dans ce petit projet.
La mise au point n'est pas extrêmement complexe, mais il faut tout de même organiser un peu les choses pour ne pas s'y perdre.
J'ai essayé de documenter au maximum le code pour que ça soit le plus facile à comprendre.

Voilà ce qu'on trouve principalement dans cette source :

- Utilisation de GDI+ (principalement dans le projet ChessCtrl)
- Utilisation de Xml (sans sérialization pour une fois :D)(dans le projet ChessGame)
- Utilisation de l'héritage et de tout ce que ça implique (classe et méthode abstraite, etc)(dans le projet ChessLib)
- Event/Delegate
- Generics
- Drag & Drop
- Utilisation d'un Web Service (ici, pour gérer une AI distante)

Programmer un jeu d'échec, ce n'est pas une révolution (il en existe plein à droite et à gauche). La plupart des jeux que j'ai pu essayer, testent la validité d'une position lorsqu'on pose la pièce sur l'échiquier. Ce que mon programme fait (je précise que ce n'est pas une révolution, mais moins courant) c'est qu'il contrôle au fur et à mesure qu'on drag la pièce, si on peut la poser sur l'endroit actuel ou pas.
Le web service utilise la notation de Forsyth-Edwards pour l'état du jeu. Je l'ai pour l'instant un peu simplifié (j'ai supprimé la règle des 50 coups, et la prise en passant). Autrement dit, l'AI ne demandera jamais un match nul et ne fera jamais de prise en passant (mais l'utilisateur, peut le faire).

Conclusion :


J'ai mis une AI locale basique en place (joue des coups au bol), je pense utiliser l'algorithme Alpha-Beta pour faire quelques chose de correct quand j'aurai le temps.
Sinon, je pense aussi faire qu'on puisse jouer en réseau... Tout dépendera donc du temps que j'ai à dispositon...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.