From 2ff95242ab4d9a6dafd1a709ce306b7f80109214 Mon Sep 17 00:00:00 2001 From: abraham Date: Thu, 24 Oct 2024 12:51:17 +0200 Subject: [PATCH] ajout du code dans les fichier --- Makefile | 36 ++++++++++++++++++++---------------- ai.c | 10 ++++++++++ board.c | 33 +++++++++++++++++++++++++++++++++ game_logic.c | 32 ++++++++++++++++++++++++++++++++ graphics.c | 17 +++++++++++++++++ main.c | 35 +++++++++++++++++++++++++++++++++++ menu.c | 21 +++++++++++++++++++++ player.c | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 202 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index eca27fc..57c0d51 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,16 @@ # CHAPITRE 1 : BUT FINAL -but : game +but : jeu # CHAPITRE 2 : VARIABLES -OFILES = affichage.o \ - Bloque_Jdeux.o \ - Bloque_Jun.o \ - grille.o \ - Joueur_deux_pion.o \ - Joueur_un_pion.o \ - main.o +OFILES = main.o \ + menu.o \ + board.o \ + player.o \ + graphics.o \ + ia.o \ + game_logic.o CC = gcc @@ -18,19 +18,23 @@ CFLAGS = -Wall -ansi -pedantic -g -lgraph # CHAPITRE 3 : DEPENDANCES (REGLES IMPLICITES) -affichage.o : main.h -Bloque_Jdeux.o : Bloque_Jun.h grille.h -Bloque_Jun.o : Bloque_Jdeux.h grille.h +main.o: main.c menu.h game_logic.h graphics.h board.h player.h -grille.o : main.h +menu.o: menu.c menu.h graphics.h -Joueur_deux_pion.o : grille.h Bloque_Jun.h Bloque_Jun.h +board.o: board.c board.h player.h game_logic.h + +player.o: player.c player.h board.h + +graphics.o: graphics.c graphics.h + +ia.o: ia.c ia.h game_logic.h board.h + +game_logic.o: game_logic.c game_logic.h board.h player.h -Joueur_un_pion.o : grille.h Bloque_Jun.h Bloque_Jdeux.h -main.o : affichage.h Bloque_Jdeux.h Bloque_Jun.h grille.h Joueur_deux_pion.h Joueur_un_pion.h #CHAPITRE 4 : DEPENDANCES AVEC COMMANDES @@ -41,7 +45,7 @@ game : $(OFILES) #CHAPITRE 5 : NETTOYAGE DES FICHIERS GENERES -clean : +clear : -rm -f $(OFILES) game #CHAPITRE 6 : BUTS FACTICES diff --git a/ai.c b/ai.c index e69de29..4dde54a 100644 --- a/ai.c +++ b/ai.c @@ -0,0 +1,10 @@ +#include +#include +#include "ai.h" +#include "game_logic.h" + +void tour_IA() { + /* Logique de l'IA pour choisir un mouvement*/ + printf("IA joue son tour...\n"); +} + diff --git a/board.c b/board.c index e69de29..d343e66 100644 --- a/board.c +++ b/board.c @@ -0,0 +1,33 @@ +#include +#include +#include "board.h" +#include "graphics.h" + +static int grille[9][9]; /* Grille de 9x9 au maximum*/ + +void initialiser_grille(int taille) { + int i, j; /* Déclaration des variables*/ + + /* Initialise la grille à la taille donnée et la vide*/ + for (i = 0; i < taille; i++) { + for (j = 0; j < taille; j++) { + grille[i][j] = 0; + } + } +} + +void afficher_grille() { + /* Affichage de la grille*/ + printf("Affichage de la grille...\n"); +} + +int est_case_libre(int x, int y) { + /* Vérifie si une case est libre*/ + return grille[x][y] == 0; +} + +void condamner_case(int x, int y) { + /* Condamne une case*/ + grille[x][y] = -1; +} + diff --git a/game_logic.c b/game_logic.c index e69de29..af8db53 100644 --- a/game_logic.c +++ b/game_logic.c @@ -0,0 +1,32 @@ +#include +#include +#include "game_logic.h" +#include "board.h" +#include "player.h" + +static int joueur_courant = 1; + +void initialiser_jeu(int taille_grille) { + /* Initialisation du jeu*/ + initialiser_grille(taille_grille); + initialiser_joueurs(); + printf("Jeu initialisé avec une grille de taille %d.\n", taille_grille); +} + +void tour_joueur() { + /* Gère le tour du joueur courant*/ + printf("Tour du joueur %d.\n", joueur_courant); + joueur_courant = (joueur_courant == 1) ? 2 : 1; +} + +int jeu_termine() { + /* Retourne 1 si le jeu est terminé, 0 sinon*/ + printf("Vérification si le jeu est terminé...\n"); + return 0; +} + +int partie_avec_IA() { + /* Retourne 1 si le jeu est contre une IA*/ + return 1; +} + diff --git a/graphics.c b/graphics.c index e69de29..2f14c11 100644 --- a/graphics.c +++ b/graphics.c @@ -0,0 +1,17 @@ +#include +#include +#include "graphics.h" +#include "graph.h" + +void dessiner_case(int x, int y, couleur c) { + /* Dessin d'une case*/ + RemplirRectangle(x * 50, y * 50, 50, 50); + printf("Case dessinée à la position (%d, %d).\n", x, y); +} + +void afficher_joueur(int x, int y, couleur c) { + /* Affichage d'un joueur*/ + RemplirArc(x * 50, y * 50, 50, 50, 0, 360); + printf("Joueur dessiné à la position (%d, %d).\n", x, y); +} + diff --git a/main.c b/main.c index e69de29..ba5c5aa 100644 --- a/main.c +++ b/main.c @@ -0,0 +1,35 @@ +#include +#include +#include "menu.h" +#include "game_logic.h" +#include "graphics.h" +#include "board.h" +#include "player.h" + +int main() { + int taille_grille; /*Déclaration des variables*/ + int initialisation_reussie; + + /*Initialisation graphique et des composants du jeu*/ + initialisation_reussie = InitialiserGraphique(); + if (!initialisation_reussie) { + fprintf(stderr, "Erreur lors de l'initialisation graphique.\n"); + return EXIT_FAILURE; /*Erreur critique, on termine le programme*/ + } + + taille_grille = afficher_menu(); /* Fonction du menu pour choisir la taille du jeu*/ + initialiser_jeu(taille_grille); /* Initialise la grille et les joueurs*/ + + while (!jeu_termine()) { /* Boucle de jeu principale*/ + tour_joueur(); /* Gestion d'un tour de joueur*/ + if (partie_avec_IA()) { + tour_IA(); /* Si un seul joueur, l'IA joue son tour*/ + } + } + + afficher_gagnant(); /* Affiche le gagnant et permet de rejouer ou quitter*/ + FermerGraphique(); + + return EXIT_SUCCESS; /* Programme terminé avec succès*/ +} + diff --git a/menu.c b/menu.c index e69de29..72660c9 100644 --- a/menu.c +++ b/menu.c @@ -0,0 +1,21 @@ +#include +#include +#include "menu.h" +#include "graphics.h" + +int afficher_menu() { + int taille; /* Déclaration des variables*/ + int resultat_scanf; + + /* Code pour afficher le menu avec des options de taille de grille*/ + printf("Sélectionnez la taille de la grille (entre 3 et 9) :\n"); + resultat_scanf = scanf("%d", &taille); + + if (resultat_scanf != 1 || taille < 3 || taille > 9) { + fprintf(stderr, "Erreur : taille de grille invalide.\n"); + return EXIT_FAILURE; /* Erreur dans la saisie*/ + } + + return taille; +} + diff --git a/player.c b/player.c index e69de29..7cb3897 100644 --- a/player.c +++ b/player.c @@ -0,0 +1,34 @@ +#include +#include +#include "player.h" +#include "board.h" + +typedef struct { + int x, y; /* Position du pion*/ +} Joueur; + +static Joueur joueur1, joueur2; + +void initialiser_joueurs() { + /* Initialisation des joueurs*/ + joueur1.x = 0; + joueur1.y = 0; + joueur2.x = 1; + joueur2.y = 1; + printf("Joueurs initialisés.\n"); +} + +void deplacer_joueur(Joueur *j, int nouvelle_x, int nouvelle_y) { + if (est_case_libre(nouvelle_x, nouvelle_y)) { + j->x = nouvelle_x; + j->y = nouvelle_y; + printf("Le joueur a été déplacé.\n"); + } else { + printf("Case non libre, impossible de déplacer le joueur.\n"); + } +} + +Joueur* obtenir_joueur(int numero) { + return (numero == 1) ? &joueur1 : &joueur2; +} +