ajout du code dans les fichier
This commit is contained in:
36
Makefile
36
Makefile
@@ -1,16 +1,16 @@
|
|||||||
# CHAPITRE 1 : BUT FINAL
|
# CHAPITRE 1 : BUT FINAL
|
||||||
|
|
||||||
but : game
|
but : jeu
|
||||||
|
|
||||||
# CHAPITRE 2 : VARIABLES
|
# CHAPITRE 2 : VARIABLES
|
||||||
|
|
||||||
OFILES = affichage.o \
|
OFILES = main.o \
|
||||||
Bloque_Jdeux.o \
|
menu.o \
|
||||||
Bloque_Jun.o \
|
board.o \
|
||||||
grille.o \
|
player.o \
|
||||||
Joueur_deux_pion.o \
|
graphics.o \
|
||||||
Joueur_un_pion.o \
|
ia.o \
|
||||||
main.o
|
game_logic.o
|
||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
|
|
||||||
@@ -18,19 +18,23 @@ CFLAGS = -Wall -ansi -pedantic -g -lgraph
|
|||||||
|
|
||||||
# CHAPITRE 3 : DEPENDANCES (REGLES IMPLICITES)
|
# 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
|
#CHAPITRE 4 : DEPENDANCES AVEC COMMANDES
|
||||||
@@ -41,7 +45,7 @@ game : $(OFILES)
|
|||||||
|
|
||||||
#CHAPITRE 5 : NETTOYAGE DES FICHIERS GENERES
|
#CHAPITRE 5 : NETTOYAGE DES FICHIERS GENERES
|
||||||
|
|
||||||
clean :
|
clear :
|
||||||
-rm -f $(OFILES) game
|
-rm -f $(OFILES) game
|
||||||
|
|
||||||
#CHAPITRE 6 : BUTS FACTICES
|
#CHAPITRE 6 : BUTS FACTICES
|
||||||
|
|||||||
10
ai.c
10
ai.c
@@ -0,0 +1,10 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include "ai.h"
|
||||||
|
#include "game_logic.h"
|
||||||
|
|
||||||
|
void tour_IA() {
|
||||||
|
/* Logique de l'IA pour choisir un mouvement*/
|
||||||
|
printf("IA joue son tour...\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
33
board.c
33
board.c
@@ -0,0 +1,33 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
32
game_logic.c
32
game_logic.c
@@ -0,0 +1,32 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
17
graphics.c
17
graphics.c
@@ -0,0 +1,17 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
35
main.c
35
main.c
@@ -0,0 +1,35 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#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*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
21
menu.c
21
menu.c
@@ -0,0 +1,21 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
34
player.c
34
player.c
@@ -0,0 +1,34 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user