Compare commits
2 Commits
main
...
bekkouch-p
Author | SHA1 | Date | |
---|---|---|---|
44cf461f97 | |||
7cced61b52 |
BIN
DEV1.1/SAE1.1/bleu.bmp
Normal file
BIN
DEV1.1/SAE1.1/bleu.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
DEV1.1/SAE1.1/blocage.bmp
Normal file
BIN
DEV1.1/SAE1.1/blocage.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
289
DEV1.1/SAE1.1/blocus.c
Normal file
289
DEV1.1/SAE1.1/blocus.c
Normal file
@ -0,0 +1,289 @@
|
||||
#include<graph.h>
|
||||
#include<stdio.h>
|
||||
#include<stdlib.h>
|
||||
#include <time.h>
|
||||
#include "blocus.h"
|
||||
|
||||
|
||||
#define posx 250
|
||||
#define posy 100
|
||||
#define taille_case 70
|
||||
|
||||
|
||||
|
||||
int main(void){
|
||||
|
||||
int case_click[9][9] = {0};
|
||||
int game = 1;
|
||||
int joueur = 1;
|
||||
int last_case_x_j1, last_case_y_j1;
|
||||
int last_case_x_j2, last_case_y_j2;
|
||||
int sprite = 0;
|
||||
int sprite2 = 0;
|
||||
int placement1 = 0;
|
||||
int placement2 = 0;
|
||||
int solo = 0;
|
||||
int multi = 0;
|
||||
int x = 0, y = 0, i, j;
|
||||
int mode_grille = 0;
|
||||
int grille = 0;
|
||||
int tx = 0, ty = 0;
|
||||
int case_x = 0, case_y = 0;
|
||||
int rouge;
|
||||
int bleu;
|
||||
int blocage;
|
||||
int gagnant = 0;
|
||||
int aleatoirex;
|
||||
int aleatoirey;
|
||||
int coordX, coordY;
|
||||
int blocX, blocY;
|
||||
int deplacementX, deplacementY;
|
||||
|
||||
|
||||
/* Pointeurs de fichiers pour les sprites */
|
||||
FILE *spriteRouge = fopen("rouge.bmp","r");
|
||||
FILE *spriteBleu = fopen("bleu.bmp","r");
|
||||
FILE *spriteBlocage = fopen("blocage.bmp","r");
|
||||
if(spriteRouge == NULL){
|
||||
printf("Le fichier 'rouge.bmp' est introuvable.\n");
|
||||
} else{
|
||||
printf("Le fichier 'rouge.bmp' est trouvé !\n");
|
||||
fclose(spriteRouge);
|
||||
}
|
||||
if(spriteBleu == NULL){
|
||||
printf("Le fichier 'bleu.bmp' est introuvable.\n");
|
||||
} else{
|
||||
printf("Le fichier 'bleu.bmp' est trouvé.\n");
|
||||
fclose(spriteBleu);
|
||||
}
|
||||
if(spriteBlocage == NULL){
|
||||
printf("Le fichier 'blocage.bmp' est introuvable.\n");
|
||||
} else{
|
||||
printf("Le fichier 'blocage.bmp' est trouvé.\n");
|
||||
fclose(spriteBlocage);
|
||||
}
|
||||
|
||||
|
||||
creer_menu(&solo,&multi,&mode_grille,&grille);
|
||||
initialiser_grille(grille);
|
||||
|
||||
/* Chargement des sprites du jeu*/
|
||||
ChargerImage("spriteBlocage", case_x*taille_case, case_y*taille_case,70,70, 70, 70);
|
||||
blocage = ChargerSprite("blocage.bmp");
|
||||
if(blocage == -1){
|
||||
printf("Erreur lors du chargement du sprite");}
|
||||
ChargerImage("spriteBleu", case_x*taille_case, case_y*taille_case,70,70, 70, 70);
|
||||
bleu = ChargerSprite("bleu.bmp");
|
||||
if(bleu == -1){
|
||||
printf("Erreur lors du chargement du sprite");}
|
||||
ChargerImage("spriteRouge", case_x*taille_case, case_y*taille_case,70,70, 70, 70);
|
||||
rouge = ChargerSprite("rouge.bmp");
|
||||
if(rouge == -1){
|
||||
printf("Erreur lors du chargement du sprite");}
|
||||
|
||||
|
||||
while(game==1){
|
||||
|
||||
while(placement1!=1 || placement2 != 1){
|
||||
|
||||
if(SourisCliquee()){
|
||||
x = _X;
|
||||
y = _Y;
|
||||
|
||||
case_x = x / taille_case;
|
||||
case_y = y / taille_case;
|
||||
|
||||
printf("case choisie : %d, %d\n", case_x, case_y);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Premier tour */
|
||||
|
||||
if(case_x < grille && case_y < grille && case_click[case_x][case_y] != 1) {
|
||||
|
||||
if(sprite == 0 && case_click[case_x][case_y] != 3){
|
||||
AfficherSprite(rouge, case_x*taille_case, case_y*taille_case);
|
||||
sprite = 1;
|
||||
last_case_x_j2 = case_x; /*j2 car il sera le deuxième à joueur sauf au placement pour pas le désavantager*/
|
||||
last_case_y_j2 = case_y;
|
||||
case_click[case_x][case_y]=2;
|
||||
if(solo == 1){
|
||||
CoordIA(grille, &coordX, &coordY);
|
||||
AfficherSprite(bleu, (coordX-1)*taille_case, (coordY-1)*taille_case);
|
||||
sprite2 =1;
|
||||
placement1 = 1;
|
||||
last_case_x_j1 = coordX-1;
|
||||
last_case_y_j1 = coordY-1;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
else if(multi == 1 && sprite2 == 0 && case_click[case_x][case_y] != 2){
|
||||
AfficherSprite(bleu, case_x*taille_case, case_y*taille_case);
|
||||
sprite2 = 1;
|
||||
placement2 = 1;
|
||||
last_case_x_j1 = case_x;
|
||||
last_case_y_j1 = case_y;
|
||||
case_click[case_x][case_y]=3;
|
||||
ChoisirCouleurDessin(CouleurParNom("blue")); /*Affichage de l'indication de tour pour le joueur rouge en début de partie*/
|
||||
RemplirRectangle(0,ty+1,tx,ty-100);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(case_click[case_x][case_y] !=1 && case_click[case_x][case_y] !=2 && sprite == 1 && sprite2 == 1 && placement1!=1 && estAdjacent(last_case_x_j1, last_case_y_j1, case_x, case_y)) {
|
||||
EffacerAncienSprite(last_case_x_j1*taille_case, last_case_y_j1*taille_case, taille_case, taille_case);
|
||||
case_click[last_case_x_j1][last_case_y_j1]=0;
|
||||
AfficherSprite(bleu, case_x*taille_case, case_y*taille_case);
|
||||
last_case_x_j1 = case_x; /*recupère la coordonnée*/
|
||||
last_case_y_j1 = case_y;
|
||||
placement1=1;
|
||||
case_click[case_x][case_y]=3;
|
||||
}
|
||||
else if(case_click[case_x][case_y] != 1 && case_click[case_x][case_y] !=3 && sprite == 1 && sprite2 == 1 && placement2!= 1 && estAdjacent(last_case_x_j2, last_case_y_j2, case_x, case_y)) {
|
||||
EffacerAncienSprite(last_case_x_j2*taille_case, last_case_y_j2*taille_case, taille_case, taille_case);
|
||||
case_click[last_case_x_j2][last_case_y_j2]=0;
|
||||
AfficherSprite(rouge, case_x*taille_case, case_y*taille_case);
|
||||
last_case_x_j2 = case_x;
|
||||
last_case_y_j2 = case_y;
|
||||
placement2=1;
|
||||
case_click[case_x][case_y]=2;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(SourisCliquee()){
|
||||
x = _X;
|
||||
y = _Y;
|
||||
|
||||
case_x = x / taille_case;
|
||||
case_y = y / taille_case;
|
||||
|
||||
printf("case choisie : %d, %d\n", case_x, case_y);
|
||||
|
||||
|
||||
if(case_x < grille && case_y < grille && case_click[case_x][case_y] != 1) {
|
||||
if(joueur == 1 && placement1 == 1 && case_click[case_x][case_y] != 1 && case_click[case_x][case_y]!=2 && case_click[case_x][case_y]!=3){
|
||||
AfficherSprite(blocage, case_x*taille_case+1, case_y*taille_case+1);
|
||||
case_click[case_x][case_y]=1;
|
||||
placement2-=1;
|
||||
ChoisirCouleurDessin(CouleurParNom("red"));
|
||||
RemplirRectangle(0,ty+1,tx,ty-100);
|
||||
if(solo == 1){
|
||||
|
||||
for (i = 0; i < grille; i++) {
|
||||
for (j = 0; j < grille; j++) {
|
||||
if (case_click[j][i] == 3 && (j + 1 >= grille || case_click[j + 1][i] != 0) &&
|
||||
(j - 1 < 0 || case_click[j - 1][i] != 0) &&
|
||||
(i + 1 >= grille || case_click[j][i + 1] != 0) &&
|
||||
(i - 1 < 0 || case_click[j][i - 1] != 0) &&
|
||||
(j + 1 >= grille || i + 1 >= grille || case_click[j + 1][i + 1] != 0) &&
|
||||
(j + 1 >= grille || i - 1 < 0 || case_click[j + 1][i - 1] != 0) &&
|
||||
(j - 1 < 0 || i + 1 >= grille || case_click[j - 1][i + 1] != 0) &&
|
||||
(j - 1 < 0 || i - 1 < 0 || case_click[j - 1][i - 1] != 0)) {
|
||||
printf("GG ROUGE\n");
|
||||
sleep(1);
|
||||
gagnant = 2;
|
||||
ecran_de_fin(gagnant);
|
||||
}
|
||||
}
|
||||
}
|
||||
do{
|
||||
do{
|
||||
DeplacementIAX(grille, &deplacementX);
|
||||
}while(last_case_x_j1+deplacementX < 0 || last_case_x_j1+deplacementX >= grille);
|
||||
do{
|
||||
DeplacementIAY(grille, &deplacementY);
|
||||
}while((last_case_y_j1+deplacementY < 0 || last_case_y_j1+deplacementY >= grille));
|
||||
}while(case_click[last_case_x_j1+deplacementX][last_case_y_j1+deplacementY] != 0 || (deplacementX == 0 && deplacementY == 0));
|
||||
EffacerAncienSprite(last_case_x_j1*taille_case, last_case_y_j1*taille_case, taille_case, taille_case);
|
||||
case_click[last_case_x_j1][last_case_y_j1]=0;
|
||||
AfficherSprite(bleu, (last_case_x_j1+deplacementX)*taille_case, (last_case_y_j1+deplacementY)*taille_case);
|
||||
last_case_x_j1 = last_case_x_j1 + deplacementX; /*recupère la coordonnée*/
|
||||
last_case_y_j1 = last_case_y_j1 + deplacementY;
|
||||
placement1=1;
|
||||
case_click[last_case_x_j1][last_case_y_j1]=3;
|
||||
|
||||
do{
|
||||
CoordBlocageIA(grille, &blocX, &blocY);
|
||||
}while(case_click[blocX-1][blocY-1] != 0);
|
||||
AfficherSprite(blocage, (blocX-1)*taille_case, (blocY-1)*taille_case);
|
||||
case_click[blocX-1][blocY-1] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
else if(joueur == -1 && placement2 == 1 && case_click[case_x][case_y] != 1 && case_click[case_x][case_y]!=2 && case_click[case_x][case_y]!=3){
|
||||
if(multi == 1){
|
||||
AfficherSprite(blocage, case_x*taille_case, case_y*taille_case);
|
||||
case_click[case_x][case_y]=1;
|
||||
placement1-=1;
|
||||
ChoisirCouleurDessin(CouleurParNom("blue"));
|
||||
RemplirRectangle(0,ty+1,tx,ty-100);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*Vérification si les joueurs peuvent encore bouger*/
|
||||
for (i = 0; i < grille; i++) {
|
||||
for (j = 0; j < grille; j++) {
|
||||
if (case_click[j][i] == 2 && (j + 1 >= grille || case_click[j + 1][i] != 0) &&
|
||||
(j - 1 < 0 || case_click[j - 1][i] != 0) &&
|
||||
(i + 1 >= grille || case_click[j][i + 1] != 0) &&
|
||||
(i - 1 < 0 || case_click[j][i - 1] != 0) &&
|
||||
(j + 1 >= grille || i + 1 >= grille || case_click[j + 1][i + 1] != 0) &&
|
||||
(j + 1 >= grille || i - 1 < 0 || case_click[j + 1][i - 1] != 0) &&
|
||||
(j - 1 < 0 || i + 1 >= grille || case_click[j - 1][i + 1] != 0) &&
|
||||
(j - 1 < 0 || i - 1 < 0 || case_click[j - 1][i - 1] != 0)) {
|
||||
printf("GG BLEU\n");
|
||||
sleep(1);
|
||||
gagnant = 1;
|
||||
ecran_de_fin(gagnant);
|
||||
}
|
||||
if (case_click[j][i] == 3 && (j + 1 >= grille || case_click[j + 1][i] != 0) &&
|
||||
(j - 1 < 0 || case_click[j - 1][i] != 0) &&
|
||||
(i + 1 >= grille || case_click[j][i + 1] != 0) &&
|
||||
(i - 1 < 0 || case_click[j][i - 1] != 0) &&
|
||||
(j + 1 >= grille || i + 1 >= grille || case_click[j + 1][i + 1] != 0) &&
|
||||
(j + 1 >= grille || i - 1 < 0 || case_click[j + 1][i - 1] != 0) &&
|
||||
(j - 1 < 0 || i + 1 >= grille || case_click[j - 1][i + 1] != 0) &&
|
||||
(j - 1 < 0 || i - 1 < 0 || case_click[j - 1][i - 1] != 0)) {
|
||||
printf("GG ROUGE\n");
|
||||
sleep(1);
|
||||
gagnant = 2;
|
||||
ecran_de_fin(gagnant);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if(multi == 1){
|
||||
/*Changement de joueur sauf lors des placements des pions*/
|
||||
|
||||
joueur=-(joueur);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*Fermeture des fichiers*/
|
||||
fclose(spriteRouge);
|
||||
fclose(spriteBleu);
|
||||
fclose(spriteBlocage);
|
||||
|
||||
}
|
23
DEV1.1/SAE1.1/blocus.h
Normal file
23
DEV1.1/SAE1.1/blocus.h
Normal file
@ -0,0 +1,23 @@
|
||||
#ifndef BLOCUS_H
|
||||
#define BLOCUS_H
|
||||
|
||||
#include <graph.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#define posx 250
|
||||
#define posy 100
|
||||
#define taille_case 70
|
||||
|
||||
void EffacerAncienSprite(int x_ancien, int y_ancien, int largeur, int hauteur);
|
||||
int estAdjacent(int x1, int y1, int x2, int y2);
|
||||
int ecran_de_fin(int gagnant);
|
||||
void creer_menu(int *solo, int *multi, int *mode_grille, int *grille);
|
||||
void initialiser_grille(int grille);
|
||||
void CoordIA(int grille, int *coordX, int *coordY);
|
||||
void CoordBlocageIA(int grille, int *blocX, int *blocY);
|
||||
void DeplacementIAX(int grille, int *deplacementX);
|
||||
void DeplacementIAY(int grille, int *deplacementY);
|
||||
|
||||
#endif /*BLOCUS_H*/
|
32
DEV1.1/SAE1.1/graphics.c
Normal file
32
DEV1.1/SAE1.1/graphics.c
Normal file
@ -0,0 +1,32 @@
|
||||
#include "blocus.h"
|
||||
|
||||
void EffacerAncienSprite(int x_ancien, int y_ancien, int largeur, int hauteur) {
|
||||
ChoisirCouleurDessin(CouleurParNom("white"));
|
||||
RemplirRectangle(x_ancien + 1, y_ancien + 1, largeur - 1, hauteur - 1);
|
||||
}
|
||||
|
||||
int ecran_de_fin(int gagnant) {
|
||||
FermerGraphique();
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(posx, posy, 400, 400);
|
||||
if (gagnant == 1) { /* 1 = bleu*/
|
||||
EcrireTexte(90, 100, "Le joueur bleu gagne", 1);
|
||||
} else if (gagnant == 2) { /* 2 = rouge*/
|
||||
EcrireTexte(90, 100, "Le joueur rouge gagne", 1);
|
||||
}
|
||||
DessinerRectangle(50, 150, 100, 50);
|
||||
DessinerRectangle(250, 150, 100, 50); /*Nouvelle fenetre avec boutons quitter et rejouer*/
|
||||
EcrireTexte(70, 175, "Rejouer", 1);
|
||||
EcrireTexte(270, 175, "Quitter", 1);
|
||||
while (1) {
|
||||
if (SourisCliquee()) {
|
||||
SourisPosition();
|
||||
if (_X >= 50 && _X <= 150 && _Y >= 150 && _Y <= 200) {
|
||||
FermerGraphique(); /*si coos clique = coos rectangle rejouer, fermer fenetre et relancer le jeu*/
|
||||
return main();
|
||||
} else if (_X >= 250 && _X <= 350 && _Y >= 150 && _Y <= 200) {
|
||||
FermerGraphique(); /*si coos clique = coos rectangle quitter, fermer fenetre*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
50
DEV1.1/SAE1.1/ia.c
Normal file
50
DEV1.1/SAE1.1/ia.c
Normal file
@ -0,0 +1,50 @@
|
||||
#include "blocus.h"
|
||||
|
||||
void CoordIA(int grille, int *coordX, int *coordY) {
|
||||
int aleatoirex, aleatoirey;
|
||||
srand(time(NULL));
|
||||
aleatoirex = rand();
|
||||
do {
|
||||
aleatoirex = aleatoirex / 4;
|
||||
} while (aleatoirex > grille);
|
||||
aleatoirey = rand();
|
||||
do {
|
||||
aleatoirey = aleatoirey / 4;
|
||||
} while (aleatoirey > grille);
|
||||
|
||||
*coordX = aleatoirex;
|
||||
*coordY = aleatoirey;
|
||||
}
|
||||
|
||||
void CoordBlocageIA(int grille, int *blocX, int *blocY) {
|
||||
int aleatoirex, aleatoirey;
|
||||
srand(time(NULL));
|
||||
aleatoirex = rand();
|
||||
do {
|
||||
aleatoirex = aleatoirex / 3;
|
||||
} while (aleatoirex > grille);
|
||||
aleatoirey = rand();
|
||||
do {
|
||||
aleatoirey = aleatoirey / 3;
|
||||
} while (aleatoirey > grille);
|
||||
*blocX = aleatoirex;
|
||||
*blocY = aleatoirey;
|
||||
}
|
||||
|
||||
void DeplacementIAX(int grille, int *deplacementX) {
|
||||
int aleatoirex;
|
||||
srand(time(NULL));
|
||||
do {
|
||||
aleatoirex = rand() % 3 - 1; /*Génère -1, 0 ou 1*/
|
||||
} while (aleatoirex > grille);
|
||||
*deplacementX = aleatoirex;
|
||||
}
|
||||
|
||||
void DeplacementIAY(int grille, int *deplacementY) {
|
||||
int aleatoirey;
|
||||
srand(time(NULL));
|
||||
do {
|
||||
aleatoirey = rand() % 3 - 1; /*Génère -1, 0 ou 1*/
|
||||
} while (aleatoirey > grille);
|
||||
*deplacementY = aleatoirey;
|
||||
}
|
33
DEV1.1/SAE1.1/makefile
Normal file
33
DEV1.1/SAE1.1/makefile
Normal file
@ -0,0 +1,33 @@
|
||||
CC = gcc
|
||||
CFLAGS = -ansi -pedantic -g
|
||||
OFILES = menu.o blocus.o utils.o graphics.o ia.o
|
||||
EXE = exe
|
||||
LIBS = -lgraph
|
||||
|
||||
install : $(EXE)
|
||||
|
||||
$(EXE) : $(OFILES)
|
||||
$(CC) $(CFLAGS) -o $(EXE) $(OFILES) $(LIBS)
|
||||
|
||||
blocus.o : blocus.h menu.c graphics.c utils.c ia.c
|
||||
|
||||
menu.o : blocus.h
|
||||
$(CC) $(CFLAGS) -c menu.c $(END)
|
||||
|
||||
graphics.o : blocus.h
|
||||
$(CC) $(CFLAGS) -c graphics.c $(END)
|
||||
|
||||
utils.o : blocus.h
|
||||
$(CC) $(CFLAGS) -c utils.c $(END)
|
||||
|
||||
ia.o : blocus.h
|
||||
$(CC) $(CFLAGS) -c ia.c $(END)
|
||||
|
||||
run : install
|
||||
./$(EXE)
|
||||
|
||||
clean :
|
||||
rm -r *.o
|
||||
|
||||
cleanall : clean
|
||||
rm -r $(EXE)
|
68
DEV1.1/SAE1.1/menu.c
Normal file
68
DEV1.1/SAE1.1/menu.c
Normal file
@ -0,0 +1,68 @@
|
||||
#include "blocus.h"
|
||||
|
||||
char* textes[] = {"3x3", "4x4", "5x5", "6x6", "7x7", "8x8", "9x9"}; /*Tableau pour grille*/
|
||||
|
||||
void creer_menu(int *solo, int *multi, int *mode_grille, int *grille) {
|
||||
int i;
|
||||
|
||||
InitialiserGraphique();
|
||||
CreerFenetre(posx,posy,500,500);
|
||||
EcrireTexte(200, 200, "Blocus", 2);
|
||||
sleep(1);
|
||||
EffacerEcran(CouleurParNom("white"));
|
||||
sleep(1);
|
||||
|
||||
DessinerRectangle(75, 75, 350, 100);
|
||||
DessinerRectangle(75, 250, 350, 100);
|
||||
|
||||
EcrireTexte(185, 135, "1 Joueur", 2);
|
||||
EcrireTexte(180, 310, "2 Joueurs", 2);
|
||||
|
||||
while (1) {
|
||||
if (SourisCliquee()) {
|
||||
SourisPosition();
|
||||
if (_X >= 75 && _X <= 425 && _Y >= 75 && _Y <= 175) { /*Si clique = rectangle 1 joueur*/
|
||||
EffacerEcran(CouleurParNom("white"));
|
||||
*solo = 1;
|
||||
*mode_grille = 1;
|
||||
break;
|
||||
} else if (_X >= 75 && _X <= 425 && _Y >= 250 && _Y <= 350) { /*Si clique = rectangle 2 joueurs*/
|
||||
EffacerEcran(CouleurParNom("white"));
|
||||
*multi = 1;
|
||||
*mode_grille = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (*mode_grille == 1) {
|
||||
EcrireTexte(125, 100, "Taille de la grille", 2);
|
||||
for (i = 0; i < 7; i++) {
|
||||
DessinerRectangle(45 + i * 60, 150, 50, 50); /*Tracer rectangles pour choisir taille grille*/
|
||||
EcrireTexte(45 + i * 60 + 15, 175, textes[i], 1); /*Ecris texte tableau dans rectangles*/
|
||||
}
|
||||
|
||||
while (*grille == 0) {
|
||||
if (SourisCliquee()) {
|
||||
SourisPosition();
|
||||
if (_Y >= 150 && _Y <= 200) { /*regarde si coordonnées clique = coos rectangle pour choisir taille grille*/
|
||||
if (_X >= 45 && _X <= 95) {
|
||||
*grille = 3;
|
||||
} else if (_X >= 105 && _X <= 155) {
|
||||
*grille = 4;
|
||||
} else if (_X >= 165 && _X <= 215) {
|
||||
*grille = 5;
|
||||
} else if (_X >= 225 && _X <= 275) {
|
||||
*grille = 6;
|
||||
} else if (_X >= 285 && _X <= 335) {
|
||||
*grille = 7;
|
||||
} else if (_X >= 345 && _X <= 395) {
|
||||
*grille = 8;
|
||||
} else if (_X >= 405 && _X <= 455) {
|
||||
*grille = 9;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
BIN
DEV1.1/SAE1.1/rouge.bmp
Normal file
BIN
DEV1.1/SAE1.1/rouge.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
24
DEV1.1/SAE1.1/utils.c
Normal file
24
DEV1.1/SAE1.1/utils.c
Normal file
@ -0,0 +1,24 @@
|
||||
#include "blocus.h"
|
||||
|
||||
int estAdjacent(int x1, int y1, int x2, int y2) { /*Fonction qui vérifie si deux cases sont adjacentes*/
|
||||
return (x1 == x2 + 1 && y1 == y2 + 1) || (x1 == x2 - 1 && y1 == y2 - 1) ||
|
||||
(x1 == x2 + 1 && y1 == y2 - 1) || (x1 == x2 - 1 && y1 == y2 + 1) ||
|
||||
(x1 == x2 + 1 && y1 == y2) || (x1 == x2 - 1 && y1 == y2) ||
|
||||
(x1 == x2 && y1 == y2 - 1) || (x1 == x2 && y1 == y2 + 1);
|
||||
}
|
||||
|
||||
void initialiser_grille(int grille) {
|
||||
int i, j;
|
||||
int ty = grille * taille_case; /*Taille en y de la grille choisie*/
|
||||
int tx = grille * taille_case; /*Taille en x de la grille choisie*/
|
||||
|
||||
FermerGraphique();
|
||||
InitialiserGraphique(); /* creation nouvelles fenetre aux dimensions de la grille choisie*/
|
||||
CreerFenetre(posx,posy,tx,ty+100); /*+100 pour indiquer tour joueur*/
|
||||
|
||||
for(i = 0; i < grille; i++){
|
||||
for(j = 0; j < grille; j++){ /*Tracer grille*/
|
||||
DessinerRectangle(j*taille_case, i*taille_case, taille_case, taille_case);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user