From d5c2269de679ca3d395f7e8c6898a87d5e6b2bb6 Mon Sep 17 00:00:00 2001 From: Haffa Bakhouche Date: Thu, 21 Nov 2024 12:47:10 +0100 Subject: [PATCH] Ajouts de commentaires jeu.c --- jeu.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/jeu.c b/jeu.c index 65fb0df..429cdaf 100755 --- a/jeu.c +++ b/jeu.c @@ -18,8 +18,11 @@ struct EtatJeu initialiserJeu(int tailleGrille, int mode) { etat.joueur2.x = -1; etat.joueur2.y = -1; + /* Alloue la mémoire pour la grille de jeu */ etat.grille = malloc(tailleGrille * sizeof(int*)); + /* Pour chaque ligne de la grille */ for(i = 0; i < tailleGrille; i++) { + /* Alloue la mémoire pour la ligne et l'initialise à 0 */ etat.grille[i] = malloc(tailleGrille * sizeof(int)); memset(etat.grille[i], 0, tailleGrille * sizeof(int)); } @@ -38,15 +41,22 @@ int peutDeplacer(struct EtatJeu etatJeu, int joueur) { int i, j; int newX, newY; + /* Récupère la position du pion du joueur actuel */ pos = joueur == 1 ? etatJeu.joueur1 : etatJeu.joueur2; + /* Parcourt toutes les cases adjacentes (8 directions possibles) */ for(i = -1; i <= 1; i++) { for(j = -1; j <= 1; j++) { + /* Ignore la position actuelle du pion */ if(i == 0 && j == 0) continue; + /* Calcule les nouvelles coordonnées potentielles */ newX = pos.x + i; newY = pos.y + j; + /* Vérifie si la nouvelle position est : + 1. Dans les limites de la grille (>= 0 et < tailleGrille) + 2. Sur une case vide (== 0) */ if(newX >= 0 && newX < etatJeu.tailleGrille && newY >= 0 && newY < etatJeu.tailleGrille && etatJeu.grille[newY][newX] == 0) { @@ -70,6 +80,7 @@ void dessinerGrille(struct EtatJeu etatJeu) { EffacerEcran(CouleurParNom("white")); ChoisirCouleurDessin(CouleurParNom("black")); + /* Affiche le message en fonction de la phase du jeu */ if(etatJeu.phase == 0) { sprintf(message, "Joueur %d : Placez votre pion", etatJeu.tourJoueur); } else if(etatJeu.phase == 1) { @@ -79,14 +90,16 @@ void dessinerGrille(struct EtatJeu etatJeu) { } EcrireTexte(200, 30, message, 2); + /* Calcule la taille de chaque case de la grille */ tailleCase = (largeurFenetre - 2 * marge) / etatJeu.tailleGrille; if (tailleCase * etatJeu.tailleGrille > (hauteurFenetre - 2 * marge)) { tailleCase = (hauteurFenetre - 2 * marge) / etatJeu.tailleGrille; } - + /* Calcule la position de départ de la grille */ startX = (largeurFenetre - (tailleCase * etatJeu.tailleGrille)) / 2; startY = (hauteurFenetre - (tailleCase * etatJeu.tailleGrille)) / 2; + /* Pour chaque case de la grille */ for (i = 0; i < etatJeu.tailleGrille; i++) { for (j = 0; j < etatJeu.tailleGrille; j++) { int x = startX + (j * tailleCase);