begin process at 2010 02 09 23:04:41
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C#

CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C#


 Information sur la source

Note :
Aucune note
Catégorie :API Source .NET ( DotNet ) Classé sous :Echec, Chess, Librairie, Game, Jeu Niveau :Expert Date de création :30/05/2009 Date de mise à jour :04/06/2009 09:14:28 Vu / téléchargé :3 482 / 211

Auteur : Bidou

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


 Description

Ceci est une librairie assez complète pour implémenter un jeu d'échec.
Fonctionnalités de cette librairie:

- Roque (petit/grand)
- Prise en passant
- Support de la notation FE
- Notation algébrique pour les coups
- Système pour mettre en place sa propre IA
- Promotion des pions
- Système de undo pour annuler le dernier coup joué
- Fin de partie (mat, pat)
- ... (à découvrir)

L'utilisation se veut très simple. Des événements sont à dispositions pour signaler les choses les plus importants (échec, fin de partie, promotion d'un pion, coup joué, etc). En plus d'un fichier d'aide chm l'exemple ci-dessous montre en gros comment ça marche.

Source

  • // Création du jeu avec 2 humains:
  • Board board = new Board(HumanPlayer.White, HumanPlayer.Black);
  • // Création du jeu avec 2 humains en disposant les pièces soit-même:
  • // Les noirs commencent en changeant le 2ème boolean
  • Player white = HumanPlayer.White;
  • Player black = new HumanPlayer("Bidou", PlayerColor.Black);
  • Board board = new Board(white, HumanPlayer.Black, false, true);
  • Piece.Create(new PiecePosition(7, 7), black, board, PieceType.King);
  • Piece.Create(new PiecePosition(5, 5), white, board, PieceType.King);
  • Piece.Create(new PiecePosition(2, 2), white, board, PieceType.Rook);
  • // Récupération de la notation FE
  • string FEN = board.GetFEN();
  • // Accéder à une pièce
  • Piece piece = board[5, 5];
  • // Déplacer une pièce
  • board.Move(piece, new PiecePosition(4, 4));
  • // Notation algébrique du dernier coup jouer
  • string alg = piece.AlgebraicNotation;
  • // Annule le dernier coup joué
  • board.Undo();
  • // La lib contient seulement une IA qui joue un coup au bol, mais on
  • // peut construire la sienne très facilement
  • public class MyIA : BaseAI
  • {
  • public MyIA() : base("Bidou AI", PlayerColor.Black, AILevel.Average)
  • {
  • }
  • public override void Play()
  • {
  • this.Board.Move(...);
  • }
  • }
  • MyIA myIa = new MyIA();
  • Board board = new Board(white, myIa);
   // Création du jeu avec 2 humains:
   Board board = new Board(HumanPlayer.White, HumanPlayer.Black);

   // Création du jeu avec 2 humains en disposant les pièces soit-même:
   // Les noirs commencent en changeant le 2ème boolean
   Player white = HumanPlayer.White;
   Player black = new HumanPlayer("Bidou", PlayerColor.Black);
   Board board = new Board(white, HumanPlayer.Black, false, true);
   Piece.Create(new PiecePosition(7, 7), black, board, PieceType.King);
   Piece.Create(new PiecePosition(5, 5), white, board, PieceType.King);
   Piece.Create(new PiecePosition(2, 2), white, board, PieceType.Rook);

   // Récupération de la notation FE
   string FEN = board.GetFEN();

   // Accéder à une pièce
   Piece piece = board[5, 5];

   // Déplacer une pièce
   board.Move(piece, new PiecePosition(4, 4));

   // Notation algébrique du dernier coup jouer
   string alg = piece.AlgebraicNotation;

   // Annule le dernier coup joué
   board.Undo();


   // La lib contient seulement une IA qui joue un coup au bol, mais on
   // peut construire la sienne très facilement
   public class MyIA : BaseAI
   {
      public MyIA() : base("Bidou AI", PlayerColor.Black, AILevel.Average)
      {
      }

      public override void Play()
      {
         this.Board.Move(...);
      }
   }

   MyIA myIa = new MyIA();
   Board board = new Board(white, myIa);

 Conclusion

Pour info, il y a 2 ans et demi j'avais déjà fait un jeu d'échec, mais il possède quelques bugs et surtout manque cruellement de fonctionnalité: http://www.csharpfr.com/codes/JEU-ECHEC-CHESSGAME_ 37989.aspx

Une idée serait de greffer ChessCore dans ce projet (en conservant l'interface graphique).
Mieux encore, faire une nouvelle interface en WPF et pourquoi pas la possibilité de jouer en réseau via WCF.
Avis aux amateurs qui ne se sont jamais lancé car ils ne connaissent pas bien les règles des échecs ou tout simplement parce qu'ils avaient pas envie d'écrire la lib de base!

Niveau performance j'ai pas trop testé, mais vraisemblablement qu'il doit y avoir beaucoup d'amélioratation à ce niveau...
Tous les commentaires sont les bienvenus

 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

04 juin 2009 09:14:30 :
description

 Sources du même auteur

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
Source avec Zip Source avec une capture Source .NET (Dotnet) MISE EN OEUVRE DE DESIGN PATTERN

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DE L'API VIRTUAL DISK IMAGE DE WINDOWS 7 par Willi
Source .NET (Dotnet) CHANGER LA RESOLUTION DE VOTRE ECRAN, UTILISATION DES API WI... par mechtaly
Source avec Zip Source .NET (Dotnet) CRÉER SON PROPRE DESIGNER COMME CELUI DE VISUAL STUDIO par ShareVB
Source avec Zip Source .NET (Dotnet) CSVSHARP. DLL D'IMPORT/EXPORT DE CONTENU AU FORMAT CSV par heriquet
Source avec Zip Source avec une capture Source .NET (Dotnet) INJECTER UNE DLL DANS UN PROCESSUS par Misugii

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) EBAUCHE D'UN MOTEUR 3D ISOMÉTRIQUE par ansizak
Source avec Zip Source avec une capture Source .NET (Dotnet) MOTUS (JEU DE LETTRES) par Bidou
Source avec Zip Source avec une capture Source .NET (Dotnet) JEU D'ECHEC / CHESSGAME 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 max12 le 13/06/2009 16:07:26 administrateur CS

Ce code est plein d'intérêt, mais je suis surpris qu'il n'y ait pas d'interface graphique, les tests étaient fait en console je présume :O

Si je m'amuse en peu en lui fabricant une interface WPF et une IA un peu moins pifométrique vous n'auriez pas d'objection ? :D

Commentaire de Bidou le 13/06/2009 20:59:49 administrateur CS

J'ai rapidement branché l'interface graphique que j'avais fait dans mon autre source (voire lien dans la partie conclusion). Mais de manière très approximative, juste pour pouvoir tester...

Concernant l'interface WPF, vas-y seulement, c'est là pour ça...
Pour la construction de l'IA, c'est expliqué ci-dessus comment procéder...

Commentaire de Bidou le 29/06/2009 11:25:48 administrateur CS

Alors, tu as pu faire quelque chose?

Commentaire de max12 le 30/06/2009 23:02:00 administrateur CS

Non :( J'ai pas eu le temps (ni de vacance), quand je pourrai m'y mettre je te promets de me faire signe :D

 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 Probleme de librairie [ par giorgio08 ] Bonjour a tous, dans mon applic C#, j ai été amené a créer des etats crystal report et ca fonctionne bien sur mon pc.Mais qd je veux le deployer sur u 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 librairie graphique c# [ par WhileCoyote ] Bonjour,Dans le cadre d'un projet scolaire je cherche une librairie graphique c# (open source) permettant de faire des histogrammes et des cammenbers. 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


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,624 sec (3)

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