Un jeu de dames classique implémenté en C utilisant la bibliothèque SDL2 pour l'interface graphique.
- Implémentation des règles classiques des dames françaises
- Plateau de jeu 8x8
- Interface graphique conviviale avec SDL2
- Déplacement des pions en diagonale
- Transformation en dame lorsqu'un pion atteint le bord opposé
- Gestion de la prise des pions adverses
Pour compiler et exécuter ce jeu, vous aurez besoin de :
- Un compilateur C (GCC recommandé)
- Les bibliothèques SDL2 et SDL2_ttf
- Make (optionnel, pour utiliser le Makefile)
sudo apt-get install gcc make libsdl2-dev libsdl2-ttf-devsudo dnf install gcc make SDL2-devel SDL2_ttf-develbrew install sdl2 sdl2_ttfIl est recommandé d'utiliser MSYS2 pour installer les dépendances nécessaires.
makegcc -o jeu_de_dames *.c -lSDL2 -lSDL2_ttf -lm./jeu_de_damesjeu_de_dames.h: Définitions et prototypes des fonctions- Fichiers d'implémentation contenant :
- Fonctions d'initialisation du jeu
- Fonctions d'affichage du plateau
- Fonctions pour vérifier les mouvements valides
- Fonctions pour effectuer les mouvements
- Fonctions pour vérifier la fin de la partie
- Fonctions d'interface graphique avec SDL2
- Programme principal (main)
- Lancez le jeu
- Cliquez sur un pion de votre couleur pour le sélectionner
- Cliquez sur une case de destination valide pour déplacer le pion
- Les prises sont effectuées en sautant par-dessus un pion adverse
- Lorsqu'un pion atteint la dernière rangée opposée, il devient une dame
// Structure pour représenter une position sur le damier
typedef struct {
int ligne;
int colonne;
} Position;
// Structure pour représenter un mouvement
typedef struct {
Position debut;
Position fin;
} Mouvement;
// Structure pour le jeu
typedef struct {
int plateau[TAILLE][TAILLE]; // Représentation du plateau de jeu
int joueurActuel; // 1 pour blanc, 2 pour noir
bool partieTerminee; // Indique si la partie est terminée
Position pieceSel; // Position de la pièce sélectionnée
} JeuDeDames;- Règles complètes avec prise obligatoire et prises multiples
- Fonction d'annulation du dernier coup
- Sauvegarde et chargement de partie
- Adversaire IA avec plusieurs niveaux de difficulté
- Animations pour les mouvements des pions
- Effets sonores
- Menu principal et écran de configuration
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.
- Forkez le projet
- Créez votre branche de fonctionnalité (
git checkout -b feature/nouvelle-fonctionnalite) - Committez vos changements (
git commit -m 'Ajout d'une nouvelle fonctionnalité') - Poussez vers la branche (
git push origin feature/nouvelle-fonctionnalite) - Ouvrez une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Votre Nom - votre-username