begin process at 2012 02 11 05:51:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > JEU D'ECHEC / CHESSGAME

JEU D'ECHEC / CHESSGAME


 Information sur la source

Note :
9 / 10 - par 6 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Source .NET ( DotNet ) Classé sous :jeu, echec, chess, game, échec Niveau :Expert Date de création :06/06/2006 Date de mise à jour :30/05/2009 11:58:44 Vu / téléchargé :51 691 / 2 885

Auteur : Bidou

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (37)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
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-LIBR AIRIE-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...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 juin 2006 15:36:12 :
Prise en compte de la remarque de Nikoui : Affichage en couleur des cases où l'on peut se déplacer. Mise en place d'une AI qui utilise un WebService (pour l'instant, ça ne tourne pas dans un thread... prochaine version éven.)
10 juin 2006 09:21:37 :
Web service asynchrône. Corrections de bugs mineurs. Légère amélioration du code.
04 novembre 2008 19:53:04 :
Rien
30 mai 2009 11:58:48 :
Ajout lien nouvelle lib

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C#
Source avec Zip Source avec une capture Source .NET (Dotnet) CUBE-IT: PETIT JEU EN WPF
Source avec Zip Source avec une capture Source .NET (Dotnet) YOUTUBE VIEWER
Source avec Zip Source avec une capture Source .NET (Dotnet) COLOR WHEEL
Source avec Zip Source avec une capture Source .NET (Dotnet) PETIT EXEMPLE UTILISANT XAML ET WPF

 Sources de la même categorie

Source avec Zip Source avec une capture GÉNÉRATEUR DE PARTIES DE SUDOKU par MisterEpic
Source avec Zip GENERATEUR DE GRILLES DE SUDOKU RESOLUES par robx2391
Source avec Zip Source avec une capture Source .NET (Dotnet) JEU DE LA VIE par epineurien
Source avec Zip Source avec une capture MYCARDZINO par thebigboss
Source avec Zip Source .NET (Dotnet) [XNA] CULTURE ASTEROIDS par Chiheb2010

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) [SILVERLIGHT] UN JEU D'ÉCHECS UTILISANT L'ALGORITHME ALPHA/B... par loudadyassine
Source avec Zip Source .NET (Dotnet) CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C# par Bidou
Source avec Zip Source avec une capture Source .NET (Dotnet) MOTUS (JEU DE LETTRES) par Bidou
Source avec Zip Source .NET (Dotnet) ENCORE UN SERPENT par Horslemonde
Source avec Zip Source avec une capture Source .NET (Dotnet) DEMINEUR / MINESWEEPER par Bidou

Commentaires et avis

Commentaire de MorpionMx le 06/06/2006 18:27:34 administrateur CS

Va falloir du temps pour ecumer toute la source, mais en tout cas ca m'a l'air impeccable

Commentaire de Bidou le 06/06/2006 20:18:40 administrateur CS

Merci Mx! ;-)

Commentaire de bubbathemaster le 06/06/2006 22:58:41

Génial je suis en ce moment en train de coder jeu d'echec en 3D avec Managed DirectX (ouais bon j'essaye quoi :D ), et je voulais pas me prendre la tete avec tout ce qui est echecs pour me concentrer sur la 3D. Ta source me sera sans doute utile =)

Commentaire de Bidou le 06/06/2006 23:01:50 administrateur CS

Hé ben tant mieux, elle est là pour ça ;-)

Commentaire de Nikoui le 07/06/2006 14:44:13

Eh ben, belle source :) y'a une sacré base là, et si en plus tu rajoutes ce dont tu parles (en particulier le réseau..) ca sera surement utile à beaucoup de monde... Si je peux me permettre, une suggestion : lorsque tu détectes 'à la volée' si le pion peut être posé ou non, tu pourrais colorier la case visée d'une couleur indiquant si le coup est possible/interdit (genre vert/rouge), ça serait plus visible que le seul changement de curseur.

Commentaire de Bidou le 07/06/2006 19:02:06 administrateur CS

Remarque notée, j'essayerai de faire ça pour une prochaine mise à jour !
Merci.

Commentaire de bubbathemaster le 07/06/2006 20:22:12

Je viens de regarder en details également et bien félicitations, c'est vraiment très bien foutu, jusque dans le code source.
Continue comme ça ;-)
Au fait, tu t'es renseigné sur l'UCI ? http://en.wikipedia.org/wiki/Universal_Chess_Interface
C'est un standard de communication pour les jeux dechecs. Je ne pense pas le supporter dans un premier temps pour mon propre jeu d'echecs, mais si on me démontre par A+B que c'est un énorme plus, pourquoi pas :)

Commentaire de Bidou le 07/06/2006 20:26:26 administrateur CS

Non, je n'ai absolument pas regarder de ce côté là.
Par contre j'ai trouvé une AI sous forme de WebService, ça pourrait être intéressant de l'implémenter (en plus d'une AI local et de pouvoir faire qu'on puisse jouer en réseau).
Enfin, pour faire tout ça, y'a pas mal de travail encore.

Commentaire de MorpionMx le 08/06/2006 21:19:50 administrateur CS

Impeccable l'integration du web service.
Vraiment du tres bon boulot !

Commentaire de Bidou le 08/06/2006 21:25:39 administrateur CS

Oui, c'est plutôt sympa :-)
Reste encore l'AI local et la partie réseau...

Commentaire de kamalz le 08/06/2006 22:46:48

Tres bon effort, mais pourquoi les commentaires in english et un autre prob c'es qund on traverse avec le pion de l'autre cote il nous donne la possibilité de recuperer meme une autre rene pour jouer à 2!!

Commentaire de Bidou le 08/06/2006 22:52:41 administrateur CS

Pour les commentaires, je dois avouer que j'ai pris l'habitude de toujours tout mettre en Anglais. A ce sujet, je m'excuse pour les nombreuses fautes (j'arrête pas d'en corriger...).
Pour le pion, quand il arrive sur la case 1 respectivement 8, il peut se transformer en Cavalier, Fou, Dame ou Tour à choix...
On peut doit avoir, théoriquement, jusqu'à 9 dames pour le même joueur.

Commentaire de woot6768 le 21/06/2006 10:03:40

Salut,
Très bien ton jeu d'échec!
Il va me faloir du temps pour regarder tous ton code!
Mais en tout cas bravo...
Woot

Commentaire de Bidou le 21/06/2006 10:08:47 administrateur CS

Merchi ;-)

Commentaire de Nimmzo le 24/07/2006 11:50:23

Hello Bidou,
Comme alternative à UCI, il existe le protocole Winboard
pour faire fonctionner le module d'Echecs
dans l'IHM freeware Arena :
http://www.playwitharena.com/

Voir le code source C# 2.0 du freeware SharpChess :
http://sharpchess.com/

Commentaire de Bidou le 24/07/2006 12:14:46 administrateur CS

Salut,
Merci pour le lien (je connaissais pas).
Je vais un peu regarder le code source, ça à l'air pas mal plus complet que le mien... pour l'instant! ;-)

Commentaire de bougueddima le 02/12/2006 17:08:21

bien mais ça sera mieux si on ajoute la possibility de jouer en ligne --- bon courage

Commentaire de Bidou le 14/01/2007 21:29:05 administrateur CS

On peut jouer en ligne contre un webService, mais pas contre un autre humain...

Commentaire de Nitrite59 le 11/04/2007 12:06:03

Salut tout le monde, je debute donc voila, j'ai un probleme : comment on fait pour  faire fonctionner ce jeu ?? je sais pas comment faire :s je sais pas s'il faut compiler et si c'est ca, ou est le fichier principal ? merci a ceux qui vont m'aider.

Commentaire de Bidou le 11/04/2007 12:18:57 administrateur CS

C'est très simple: ouvrir le fichier sln avec Visual Studio (ou autre logiciel qui supporte ce type de fichier), puis ensuite:

- Soit le compiler et utiliser l'executable.
- Soit le démarrer en mode debug.

Commentaire de Nitrite59 le 11/04/2007 14:10:16

Je ne trouve pas visual studio, que des payants donc si tu as un lien pour avoir une version gratuite, je te serais trés reconnassant merci.

Commentaire de Bidou le 11/04/2007 14:13:09 administrateur CS

Une version express gratuite ici:
http://www.microsoft.com/france/msdn/vstudio/express/vcsharp/default.mspx

N'hésites à poster tes questions sur le forum...

Commentaire de Nitrite59 le 11/04/2007 14:15:02

Merci beaucoup bidou !

Commentaire de Nitrite59 le 11/04/2007 14:31:23

J'ai une folle envie d'etre le boulet du mois ! J'arrive a deboguer mais comment je fais pour sauvegarder sous un executable ? pour que je puis le mettre sur mon site. Merci de m'aider.

Commentaire de Bidou le 11/04/2007 14:39:44 administrateur CS

Si tu debug, c'est que l'exe est dejà crée :D
Tu te mets en mode release, cliques droit sur la solution (le projet), et ensuite Build.
L'exe est crée dans le répretoire bin/release de l'application (y'a aussi des DLLs).

Un lien sur ton site de cette page pourrait être sympa si tu ajoutes le programme.... ;-)

Commentaire de Nitrite59 le 11/04/2007 16:07:32

J'ai créé une installation disponible sur mon site avec le lien vers ici dans le menu démarrer :).

Commentaire de Bidou le 11/04/2007 18:16:30 administrateur CS

Sympa sauf que tu t'es trompé de lien, ça ne pointe pas sur mon jeu d'échec...
(Et en testant, je viens de voir que le webService est mort, pas cool, faudrait que je mette à jour)

Commentaire de Nitrite59 le 11/04/2007 18:23:51

J'ai remarqué aussi mais comment tu peux le savoir vu que tu ne connais pas le lien de mon site ^^

Commentaire de Bidou le 11/04/2007 18:28:13 administrateur CS

Il est dans ton profil, je l'ai trouvé à cet endroit ;-)

Autres choses, tu as mis pleins de fichiers inutiles dans ton archive. Normalement, seuls ChessAI.dll, ChessCtrl.dll, ChessGame.exe et ChessLib.dll sont nécessaires!

Commentaire de Nitrite59 le 11/04/2007 18:30:49

Je l'ai remarqué tout a l'heure mais j'avais pas envie de recommencer la création du setup, puis, pour quelques octets de plus, c'est pas la mort :DD

Commentaire de projetf le 18/06/2007 14:36:49

tout simplement parfait !

Commentaire de Bidou le 28/07/2007 15:17:01 administrateur CS

Merci ;-)

Commentaire de gbloch le 04/01/2008 08:47:06

Bonjour,

J'ai téléchargé le zip ce matin.
Pour une raison que je ne peux expliquer (je ne suis pas un geek), l'aide en ligne ne fonctionnait pas, créant en fait une erreur système.
J'ai donc modifié la ligne de code

Ancien code:
private void mnuAboutHelp_Click(object sender, EventArgs e)
{
  System.Diagnostics.Process.Start("http://www.iechecs.com");
}

Nouveau code:
private void mnuAboutHelp_Click(object sender, EventArgs e)
{
  System.Diagnostics.Process.Start("IExplore.exe","http://www.iechecs.com");
}

Il y avait peut-être une autre solution, mais je ne la connaissait pas.


Pour le reste, très chouette, je me régale ...
Beaucoup de commentaire, code très lisible ... etc ...

A plus

Commentaire de watabou le 31/03/2008 17:48:17 7/10

J'ai téléchargé le projet pour voir un peu, et je trouve vraiment que c'est du bon travail :)
Il y a certaines choses à revoir (la création des pièces dans le game.cs par ex.) et des petits bugs (par exemple lorsque tu test si une piece doit etre "freeze", tu met une condition incomplete :"PieceMovecontinue.cs => FreezePiece() =>
if (!(otherPiece is Queen || otherPiece is Bishop || (Math.Abs(X) == 1 && otherPiece is Pawn) "
ce qui fait que si avec un fou ou une dame,on se met juste derrière un pion qui doit etre "freeze" pour éviter un échec, et bien le pion peut tout de meme bouger (cool on peut manger le roi du coup xd) :)
perso j'ai changé pour : (!otherPiece.AvailablePositions.Contains(base.CurrentPosition)).

Sinon c'est vraiment bien détaillé et on comprend très rapidement, ce qui est assez rare pour être dit.
Merci beaucoup pour tout ce travail :)

Commentaire de loadseq le 15/01/2009 02:47:51

un travail bon structuré,felecitation.
bon, je sais pas si tu joue les echecs mais j ai battu ton programme par un simple coup de berger 3 fois consecutive tout en etant au niveau 5 !!!!

coups de berger :4 mouvements !!

Commentaire de Bidou le 15/01/2009 08:07:19 administrateur CS

Si tu avais regardé le code, tu aurais vu que l'ordi joue un coup au hasard ;-)
Si tu veux vraiment te mesurer à lui, règle "web-service" dans les options du jeu (en espérant qu'il soit toujours en fonction...)

Commentaire de pyvator le 30/06/2009 19:06:31 10/10

bonjour,

J'ai 13 ans je connais vb et c# et aussi asp.net et je cherche aussi a faire un jeu d'echec tes exemples mon enórmement aider.
et surtout CHAPEAU, j'en connais pas beaucoup des personne qui savent faire un jeux d'echec.

merci.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

lancement d'une appli [ par rintchu ] salut a tous,voila, je voudrais mettre dans mon programme un jeu secret comme ceux que l'on trouve dans Word ou Excel. Comment dois je faire pour reli Changer l'image d'un label ... [ par Baelorn ] Bonjour,je suis actuellement en train de réaliser un jeu en C# mode graphique et je rencontre un problème au niveau du changement de l'image d'un labe jeu vache taureau language c [ par cafou ] est ce que quelqu'un pourrait me donner la solution du jeu vache taureau en language cmerci d'avanceCAFOU Jeu de cartes en reseau [ par PeterG ] J'ai créer un jeu de Black Jack (2 joueur et +) avec visual studio dans mon cours de programmation 1, et j'aimerai pouvoir y jouer contre un ami chacu Jeu en réseau local [ par CMatt ] Bonjour à tous!J'ai développé un petit jeu en C# qui possède une "base de données" plutôt complexe, par ex. : - une classe Systeme contient un tabl Remoting et "sécurité" [ par CMatt ] Bonjour tout le monde!J'ai commencé à développer un jeu en temps réel et j'essaie d'implémenter un mode multijoueurs (pa Problème sous DIRECTX [ par Lord_ZanTe ] Bonjour,nous sommes étudiant et nous développons un jeu 3D sous DirectX, en C# dans le cadre d'un projet tuteuré.Nous arrivons à a Comment gerer input pour jeu en opengl ? [ par gimli123 ] Salut tout le monde ! J'aurai voulu savoir, comment me conseillez-vous de gérer les inputs (clavier/souri), si je veux faire un petit jeu en c#/c conditions [ par Kbitnik ] salut, je fais un jeu en c# ou je génére des nombre à chaque foi que j'appuie sur un bonton.et ainsi, un label ajoute a chaque fois son Poker client-serveur [ par malara ] Salut tout le monde,   J'ai un petit problème, c'est pourquoi j'ai besoin de l'expertise des membres de ce forum ... J'ai dév


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,017 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales