426 lines
24 KiB
C
426 lines
24 KiB
C
|
/* Leni Boscher * Tanguy Domergue */
|
||
|
|
||
|
#include<stdio.h>
|
||
|
#include<stdlib.h>
|
||
|
#include<graph.h>
|
||
|
#include<time.h>
|
||
|
#include<unistd.h>
|
||
|
#include"regles.h"
|
||
|
#include"plateau.h"
|
||
|
#include"menu.h"
|
||
|
#include"main.h"
|
||
|
|
||
|
/* Main */
|
||
|
|
||
|
|
||
|
|
||
|
int plateau(int dim, int nb_joueurs) {
|
||
|
taille = dim;
|
||
|
decalage = ((TAILLE_WINDOW-DIMENSIONS)/2);
|
||
|
srand(time(NULL));
|
||
|
couple pion;
|
||
|
couple indice;
|
||
|
int jouer=1;
|
||
|
int tailleCase = DIMENSIONS/taille;
|
||
|
int i;
|
||
|
int j;
|
||
|
couleur c;
|
||
|
int win=0;
|
||
|
|
||
|
tab=malloc((taille+2)*sizeof(tile));
|
||
|
for(i=0;i<taille+2;i++){
|
||
|
tab[i]=malloc((taille+2)*sizeof(tile));
|
||
|
}
|
||
|
|
||
|
InitialiserGraphique();
|
||
|
CreerFenetre(10,10,TAILLE_WINDOW,TAILLE_WINDOW);
|
||
|
for(i=0;i<taille;i++) {
|
||
|
DessinerSegment(decalage+(tailleCase)*i,decalage,decalage+(tailleCase)*i,DIMENSIONS+decalage);
|
||
|
for(j=0;j<taille;j++) { /* Cette boucle stocke dans le tableau des cases les coordonnées du coin haut gauche de chaques cases */
|
||
|
tab[i+1][j+1].coord.x = decalage+(tailleCase)*i;
|
||
|
tab[i+1][j+1].coord.y = decalage+(tailleCase)*j;
|
||
|
tab[i+1][j+1].etat = 0;
|
||
|
}
|
||
|
DessinerSegment(decalage,decalage+(tailleCase)*i,DIMENSIONS+decalage,decalage+(tailleCase)*i);
|
||
|
}
|
||
|
DessinerSegment(decalage+(tailleCase)*i+1,decalage,decalage+(tailleCase)*i+1,DIMENSIONS+decalage);
|
||
|
DessinerSegment(decalage,decalage+(tailleCase)*i+1,DIMENSIONS+decalage,decalage+(tailleCase)*i+1);
|
||
|
|
||
|
|
||
|
/* initialisation du tableau de l'etat des bordures */
|
||
|
|
||
|
for(i=0;i<taille+2;i++) {
|
||
|
tab[i][0].etat = -1;
|
||
|
tab[0][i].etat = -1;
|
||
|
tab[taille+1][i].etat = -1;
|
||
|
tab[i][taille+1].etat = -1;
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Placer les premiers pions */
|
||
|
if (nb_joueurs==2) {
|
||
|
jouer=1;
|
||
|
while (1) {
|
||
|
if (SourisCliquee()==1) {
|
||
|
SourisPosition();
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
if (caseVerif(indice)==1) {
|
||
|
if (jouer==1) {
|
||
|
if (taille==3) /* Cette succession de if adapte la taille de l'image des pions bleus aux dimensions choisies par l'utilisateur :
|
||
|
* Il y a 7 dimensions possibles, et 7 images différentes pour chaques dimensions */
|
||
|
ChargerImage("./img/pion_bleu3.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==4)
|
||
|
ChargerImage("./img/pion_bleu4.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==5)
|
||
|
ChargerImage("./img/pion_bleu5.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==6)
|
||
|
ChargerImage("./img/pion_bleu6.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==7)
|
||
|
ChargerImage("./img/pion_bleu7.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==8)
|
||
|
ChargerImage("./img/pion_bleu8.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==9)
|
||
|
ChargerImage("./img/pion_bleu9.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
} else if (jouer==3){
|
||
|
if (taille==3) /* Cette succession de if adapte la taille de l'image des pions oranges aux dimensions choisies par l'utilisateur :
|
||
|
* Il y a 7 dimensions possibles, et 7 images différentes pour chaques dimensions */
|
||
|
ChargerImage("./img/pion_orange3.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==4)
|
||
|
ChargerImage("./img/pion_orange4.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==5)
|
||
|
ChargerImage("./img/pion_orange5.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==6)
|
||
|
ChargerImage("./img/pion_orange6.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==7)
|
||
|
ChargerImage("./img/pion_orange7.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==8)
|
||
|
ChargerImage("./img/pion_orange8.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==9)
|
||
|
ChargerImage("./img/pion_orange9.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2); }
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
if(jouer==3) break;
|
||
|
jouer=3;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
/* Tours de jeu, les joueurs déplacent chacun un pion, puis placent une croix, à tours de rôle */
|
||
|
jouer=1;
|
||
|
while (1) {
|
||
|
while(SourisCliquee()==1) {
|
||
|
if(jouer==1) {
|
||
|
SourisPosition();
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
pion = chercherPion(jouer);
|
||
|
if ((caseVerif(indice)==1 && (deplacAdj(indice, pion)==1))) {
|
||
|
tab[pion.x][pion.y].etat = 0;
|
||
|
CopierZone(0, 0, tab[pion.x][pion.y].coord.x+1, tab[pion.x][pion.y].coord.y+1, tailleCase-2, tailleCase-2, tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1);
|
||
|
c=CouleurParNom("white");
|
||
|
ChoisirCouleurDessin(c);
|
||
|
RemplirRectangle(tab[pion.x][pion.y].coord.x+1, tab[pion.x][pion.y].coord.y+1, tailleCase-2, tailleCase-2);
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer++;
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
if(winCondition(chercherPion(1), chercherPion(3))==1) {
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(jouer==2) {
|
||
|
SourisPosition();
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
if ((caseVerif(indice)==1)) {
|
||
|
if (taille==3) /* Cette succession de if adapte la taille de l'image des croix bleues aux dimensions choisies par l'utilisateur :
|
||
|
* Il y a 7 dimensions possibles, et 7 images différentes pour chaques dimensions */
|
||
|
ChargerImage("./img/croix_bleue3.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==4)
|
||
|
ChargerImage("./img/croix_bleue4.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==5)
|
||
|
ChargerImage("./img/croix_bleue5.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==6)
|
||
|
ChargerImage("./img/croix_bleue6.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==7)
|
||
|
ChargerImage("./img/croix_bleue7.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==8)
|
||
|
ChargerImage("./img/croix_bleue8.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==9)
|
||
|
ChargerImage("./img/croix_bleue9.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer++;
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(winCondition(chercherPion(1), chercherPion(3))==1) {
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(jouer==3) {
|
||
|
SourisPosition();
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
pion = chercherPion(jouer);
|
||
|
if (caseVerif(indice)==1 && deplacAdj(indice, pion)==1) {
|
||
|
tab[pion.x][pion.y].etat = 0;
|
||
|
CopierZone(0, 0, tab[pion.x][pion.y].coord.x+1, tab[pion.x][pion.y].coord.y+1, tailleCase-2, tailleCase-2, tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1);
|
||
|
c=CouleurParNom("white");
|
||
|
ChoisirCouleurDessin(c);
|
||
|
RemplirRectangle(tab[pion.x][pion.y].coord.x+1, tab[pion.x][pion.y].coord.y+1, tailleCase-2, tailleCase-2);
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer++;
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
if(winCondition(chercherPion(1), chercherPion(3))==1) {
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(jouer==4) {
|
||
|
SourisPosition();
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
if (caseVerif(indice)==1) {
|
||
|
if (taille==3) /* Cette succession de if adapte la taille de l'image des croix oranges aux dimensions choisies par l'utilisateur :
|
||
|
* Il y a 7 dimensions possibles, et 7 images différentes pour chaques dimensions */
|
||
|
ChargerImage("./img/croix_orange3.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==4)
|
||
|
ChargerImage("./img/croix_orange4.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==5)
|
||
|
ChargerImage("./img/croix_orange5.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==6)
|
||
|
ChargerImage("./img/croix_orange6.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==7)
|
||
|
ChargerImage("./img/croix_orange7.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==8)
|
||
|
ChargerImage("./img/croix_orange8.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==9)
|
||
|
ChargerImage("./img/croix_orange9.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer = 1;
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(winCondition(chercherPion(1), chercherPion(3))==1) {
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if(nb_joueurs==1) {
|
||
|
jouer=1;
|
||
|
while (1) {
|
||
|
if (SourisCliquee()==1) {
|
||
|
SourisPosition();
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
if (caseVerif(indice)==1) {
|
||
|
if (jouer==1) {
|
||
|
if (taille==3) /* Cette succession de if adapte la taille de l'image des pions bleus aux dimensions choisies par l'utilisateur :
|
||
|
* Il y a 7 dimensions possibles, et 7 images différentes pour chaques dimensions */
|
||
|
ChargerImage("./img/pion_bleu3.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==4)
|
||
|
ChargerImage("./img/pion_bleu4.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==5)
|
||
|
ChargerImage("./img/pion_bleu5.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==6)
|
||
|
ChargerImage("./img/pion_bleu6.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==7)
|
||
|
ChargerImage("./img/pion_bleu7.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==8)
|
||
|
ChargerImage("./img/pion_bleu8.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==9)
|
||
|
ChargerImage("./img/pion_bleu9.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2); tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer=3;
|
||
|
if(jouer==3) break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
while (1) {
|
||
|
if (jouer==3) {
|
||
|
_X=((rand()%DIMENSIONS)+decalage);
|
||
|
_Y=((rand()%DIMENSIONS)+decalage);
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
if (caseVerif(indice)==1) {
|
||
|
if (jouer==3) {
|
||
|
usleep(500000);
|
||
|
if (taille==3) /* Cette succession de if adapte la taille de l'image des pions oranges aux dimensions choisies par l'utilisateur :
|
||
|
* Il y a 7 dimensions possibles, et 7 images différentes pour chaques dimensions */
|
||
|
ChargerImage("./img/pion_orange3.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==4)
|
||
|
ChargerImage("./img/pion_orange4.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==5)
|
||
|
ChargerImage("./img/pion_orange5.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==6)
|
||
|
ChargerImage("./img/pion_orange6.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==7)
|
||
|
ChargerImage("./img/pion_orange7.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==8)
|
||
|
ChargerImage("./img/pion_orange8.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==9)
|
||
|
ChargerImage("./img/pion_orange9.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2); tab[indice.x][indice.y].etat=jouer;
|
||
|
if(jouer==3) break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
AfficherTableau();
|
||
|
|
||
|
/* Tours de jeu, les joueurs déplacent chacun un pion, puis placent une croix, à tours de rôle */
|
||
|
jouer=1;
|
||
|
while (1) {
|
||
|
while(SourisCliquee()==1) {
|
||
|
if(jouer==1) {
|
||
|
SourisPosition();
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
pion = chercherPion(jouer);
|
||
|
if ((caseVerif(indice)==1 && (deplacAdj(indice, pion)==1))) {
|
||
|
tab[pion.x][pion.y].etat = 0;
|
||
|
CopierZone(0, 0, tab[pion.x][pion.y].coord.x+1, tab[pion.x][pion.y].coord.y+1, tailleCase-2, tailleCase-2, tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1);
|
||
|
c=CouleurParNom("white");
|
||
|
ChoisirCouleurDessin(c);
|
||
|
RemplirRectangle(tab[pion.x][pion.y].coord.x+1, tab[pion.x][pion.y].coord.y+1, tailleCase-2, tailleCase-2);
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer++;
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
if(winCondition(chercherPion(1), chercherPion(3))==1) {
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(jouer==2) {
|
||
|
SourisPosition();
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
if ((caseVerif(indice)==1)) {
|
||
|
if (taille==3) /* Cette succession de if adapte la taille de l'image des croix bleues aux dimensions choisies par l'utilisateur :
|
||
|
* Il y a 7 dimensions possibles, et 7 images différentes pour chaques dimensions */
|
||
|
ChargerImage("./img/croix_bleue3.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==4)
|
||
|
ChargerImage("./img/croix_bleue4.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==5)
|
||
|
ChargerImage("./img/croix_bleue5.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==6)
|
||
|
ChargerImage("./img/croix_bleue6.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==7)
|
||
|
ChargerImage("./img/croix_bleue7.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==8)
|
||
|
ChargerImage("./img/croix_bleue8.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==9)
|
||
|
ChargerImage("./img/croix_bleue9.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer++;
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if(winCondition(chercherPion(1), chercherPion(3))==1) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
while (jouer==3) {
|
||
|
if(jouer==3) {
|
||
|
_X=((rand()%DIMENSIONS)+decalage);
|
||
|
_Y=((rand()%DIMENSIONS)+decalage);
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
pion = chercherPion(jouer);
|
||
|
if (caseVerif(indice)==1 && deplacAdj(indice, pion)==1) {
|
||
|
usleep(1000000);
|
||
|
tab[pion.x][pion.y].etat = 0;
|
||
|
CopierZone(0, 0, tab[pion.x][pion.y].coord.x+1, tab[pion.x][pion.y].coord.y+1, tailleCase-2, tailleCase-2, tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1);
|
||
|
c=CouleurParNom("white");
|
||
|
ChoisirCouleurDessin(c);
|
||
|
RemplirRectangle(tab[pion.x][pion.y].coord.x+1, tab[pion.x][pion.y].coord.y+1, tailleCase-2, tailleCase-2);
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer++;
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
if(winCondition(chercherPion(1), chercherPion(3))==1) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
while(jouer==4){
|
||
|
if(jouer==4) {
|
||
|
_X=((rand()%DIMENSIONS)+decalage);
|
||
|
_Y=((rand()%DIMENSIONS)+decalage);
|
||
|
indice = calculIndice(_X, _Y);
|
||
|
if (caseVerif(indice)==1) {
|
||
|
usleep(1000000);
|
||
|
if (taille==3) /* Cette succession de if adapte la taille de l'image des croix oranges aux dimensions choisies par l'utilisateur :
|
||
|
* Il y a 7 dimensions possibles, et 7 images différentes pour chaques dimensions */
|
||
|
ChargerImage("./img/croix_orange3.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==4)
|
||
|
ChargerImage("./img/croix_orange4.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==5)
|
||
|
ChargerImage("./img/croix_orange5.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==6)
|
||
|
ChargerImage("./img/croix_orange6.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==7)
|
||
|
ChargerImage("./img/croix_orange7.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==8)
|
||
|
ChargerImage("./img/croix_orange8.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
if (taille==9)
|
||
|
ChargerImage("./img/croix_orange9.png", tab[indice.x][indice.y].coord.x+1, tab[indice.x][indice.y].coord.y+1 , 0, 0, tailleCase-2, tailleCase-2);
|
||
|
tab[indice.x][indice.y].etat=jouer;
|
||
|
jouer = 1;
|
||
|
|
||
|
AfficherTableau();
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
if(winCondition(chercherPion(1), chercherPion(3))==1) {
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
for(i=0;i<taille+2;i++) {
|
||
|
free(tab[i]);
|
||
|
}
|
||
|
free(tab);
|
||
|
|
||
|
while(1){
|
||
|
if (SourisCliquee()){
|
||
|
FermerGraphique();
|
||
|
main();
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
return 0;
|
||
|
|
||
|
}
|