From 318baf5274e98b140bac7f59e16795a22c7cc840 Mon Sep 17 00:00:00 2001 From: Tropicananass Date: Tue, 3 May 2016 19:23:11 +0200 Subject: [PATCH] fin de partie --- bin/hex | Bin 98664 -> 104480 bytes makefile | 2 +- src/action_plateau.c | 5 +- src/action_plateau.h | 2 +- src/affichage_menu_principal.c | 4 +- src/en_jeu.c | 4 +- src/testJeu.c | 93 +++++++++++++++++++++++++++++++++ src/testJeu.h | 9 ++++ 8 files changed, 112 insertions(+), 7 deletions(-) create mode 100644 src/testJeu.c create mode 100644 src/testJeu.h diff --git a/bin/hex b/bin/hex index 259f5dffbd0d60870716d2c9285a0433000792fc..24ee7ff386a996e0ee4760e80941dc1bbbc8cb77 100644 GIT binary patch delta 36057 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 diff --git a/makefile b/makefile index f47708e..659c19d 100644 --- a/makefile +++ b/makefile @@ -3,7 +3,7 @@ CFLAGS=-Wall -g -std=c99 -c #-lm `sdl-config --cflags --libs` -lSDL_ttf LDFLAGS=-std=c99 -lm `sdl-config --cflags --libs` -lSDL_ttf -lSDL_gfx -lSDL_mixer EXEC=bin/hex -SRC=src/hex.c src/affichage_plateau.c src/action_plateau.c src/affichage_menu_principal.c src/window.c src/param.c src/en_jeu.c src/menu_principal.c src/draw.c src/action_menu_principal.c src/sound.c +SRC=src/hex.c src/affichage_plateau.c src/action_plateau.c src/affichage_menu_principal.c src/window.c src/param.c src/en_jeu.c src/menu_principal.c src/draw.c src/action_menu_principal.c src/sound.c src/testJeu.c #$(wildcard src/*.c) OBJ=$(SRC:.c=.o) diff --git a/src/action_plateau.c b/src/action_plateau.c index ae7d15d..a343aaf 100644 --- a/src/action_plateau.c +++ b/src/action_plateau.c @@ -7,15 +7,18 @@ #include "affichage_plateau.h" #include "globals.h" #include "sound.h" +#include "testJeu.h" -void selection (plateau_t p, curseur_t c) +int selection (plateau_t p, curseur_t c) { if (0 <= c.x && c.x < NBSIDE && 0 <= c.y && c.y < NBSIDE && p->grid [c.x * NBSIDE + c.y] == 0) { p->grid [c.x * NBSIDE + c.y] = PLAYER(p->player); p->player = !p->player; Affiche_hexagon(p, c.x, c.y, PLAYER(p->player)); + return testGagne (p->grid, PLAYER(!p->player)); } + return 0; /*for (int x = 0; x < NBSIDE; ++x) { for (int y = 0; y < NBSIDE; ++y) diff --git a/src/action_plateau.h b/src/action_plateau.h index de10056..3def9ae 100644 --- a/src/action_plateau.h +++ b/src/action_plateau.h @@ -5,7 +5,7 @@ #include "globals.h" -void selection (plateau_t p, curseur_t c); +int selection (plateau_t p, curseur_t c); void deplacement (plateau_t p, SDL_Event* event, curseur_t* c); diff --git a/src/affichage_menu_principal.c b/src/affichage_menu_principal.c index 1f06617..6d31853 100644 --- a/src/affichage_menu_principal.c +++ b/src/affichage_menu_principal.c @@ -134,10 +134,10 @@ void Affiche_entry (menu_t m, char* entry, bool pointe) /* Menu options */ /* Interne */ -void print_arrow (SDL_Surface* window, bool side, ) +/*void print_arrow (SDL_Surface* window, bool side, ) { SDL_Surface* arrow = SDL_CreateRGBSurface (SDL_HWSURFACE, 2*m->r, 2*m->r, window->format->BitsPerPixel, 0, 0, 0, 0); -} +}*/ SDL_Rect cadre_options (SDL_Surface* window, int l) { diff --git a/src/en_jeu.c b/src/en_jeu.c index 1d461af..0b2be07 100644 --- a/src/en_jeu.c +++ b/src/en_jeu.c @@ -38,12 +38,12 @@ void en_jeu (SDL_Surface* window) plateau = actu_plateau(plateau); } else if (event.key.keysym.sym == SDLK_RETURN) - selection (plateau, c); + end = selection (plateau, c); else if (SDLK_UP <= event.key.keysym.sym && event.key.keysym.sym <= SDLK_LEFT) deplacement(plateau, &event, &c); break; case SDL_MOUSEBUTTONUP: - selection (plateau, c); + end = selection (plateau, c); break; case SDL_MOUSEMOTION: deplacement(plateau, &event, &c); diff --git a/src/testJeu.c b/src/testJeu.c new file mode 100644 index 0000000..346fb36 --- /dev/null +++ b/src/testJeu.c @@ -0,0 +1,93 @@ +#include "testJeu.h" + +#include "globals.h" + +static int taille_ligne = NBSIDE; + +int testRecursif(int *tab, int i, int J); + +int testCaseDessus(int *tab, int i, int J){ + if(tab[i+taille_ligne]==J && testRecursif(tab, i+taille_ligne,J)){//la seconde condition est testée uniquement si la première est vrai donc le testRecursifJ1 sera appelé ssi tab[i+taille_ligne]==J1 + return 1; + } + return 0; +} + +int testCaseDessous(int *tab, int i, int J){ + if(i/taille_ligne>0 && tab[i-taille_ligne]==J && testRecursif(tab, i-taille_ligne,J)){ + return 1; + } + return 0; +} + +int testCaseG(int *tab, int i, int J){ + if(i%taille_ligne!=0){ + if(tab[i-1]==J && testRecursif(tab, i-1, J)){ + return 1; + } + if(tab[i+taille_ligne-1]==J && testRecursif(tab, i+taille_ligne-1, J)){ + return 1; + } + } + return 0; +} + +int testCaseD(int *tab, int i, int J){ + if(i%taille_ligne!=taille_ligne-1){ + if(i/taille_ligne>0 && tab[i-taille_ligne+1]==J && testRecursif(tab, i-taille_ligne+1, J)){ + return 1; + } + if(tab[i+1]==J && testRecursif(tab, i+1, J)){ + return 1; + } + } + return 0; +} + +int testRecursif(int *tab, int i, int J){// ne peut être appelée qu'avec un indice ou il y a un pion du joueur 1 (J1) + tab[i]=tab[i]+2; + if(J==J1){ + if(i/taille_ligne==taille_ligne-1){ + return 1; + } + return testCaseDessus(tab,i,J) || testCaseG(tab,i,J) || testCaseD(tab,i,J) || testCaseDessous(tab,i,J); + } + else{ + if(i%taille_ligne==taille_ligne-1){ + return 1; + } + return testCaseD(tab,i,J) || testCaseDessus(tab,i,J) || testCaseDessous(tab,i,J) || testCaseG(tab,i,J); + } +} + + +int testGagne(int *tab, int J){ + int i=0, a=0; + if(J==J1){ + while(!a && iJ2){ + tab[i]=tab[i]-2; + } + } + return a; +} + + + diff --git a/src/testJeu.h b/src/testJeu.h new file mode 100644 index 0000000..b51d064 --- /dev/null +++ b/src/testJeu.h @@ -0,0 +1,9 @@ +#include +#include + +//enum Joueur{CASEVIDE,J1,J2}; + + +/* 1 si J gagne 0 sinon */ + +int testGagne(int *tab, int J);