Compare commits

..

7 Commits

39 changed files with 267 additions and 321 deletions

View File

@@ -6,18 +6,12 @@ but : game
OFILES = taille.o \ OFILES = taille.o \
menu.o \ menu.o \
grille.o \
nbjoueur.o \ nbjoueur.o \
nbjoueur2.o \
boutonJVJ.o \
jeu.o \
comportementJCJ.o \ comportementJCJ.o \
comportementJCIA.o \ comportementJCIA.o \
definirMaxXY.o \ definirMaxXY.o \
initialisation.o \ initialisation.o \
coordoner.o \ coordoner.o \
effacehaut.o \
verificationblock.o \
main.o main.o
@@ -27,33 +21,21 @@ CFLAGS = -Wall -ansi -pedantic
# CHAPITRE 3 : DEPENDANCES (REGLES IMPLICITES) # CHAPITRE 3 : DEPENDANCES (REGLES IMPLICITES)
menu.o : taille.h menu.h nbjoueur.h nbjoueur2.h boutonJVJ.h grille.h menu.o : taille.h menu.h nbjoueur.h
taille.o : taille.h jeu.h taille.o : taille.h
effacehaut.o : effacehaut.h coordoner.o : coordoner.h initialisation.h
coordoner.o : coordoner.h
verificationblock.o : verificationblock.h
initialisation.o : initialisation.h initialisation.o : initialisation.h
nbjoueur.o : nbjoueur.h nbjoueur.o : nbjoueur.h
comportementJCJ.o : comportementJCJ.h definirMaxXY.h initialisation.h coordoner.h effacehaut.h verificationblock.h comportementJCJ.o : comportementJCJ.h definirMaxXY.h initialisation.h coordoner.h
comportementJCIA.o : comportementJCIA.h definirMaxXY.h initialisation.h coordoner.h effacehaut.h verificationblock.h comportementJCIA.o : comportementJCIA.h definirMaxXY.h initialisation.h coordoner.h
boutonJVJ.o : boutonJVJ.h main.o : menu.h comportementJCJ.h comportementJCIA.h
nbjoueur2.o : nbjoueur2.h
grille.o : grille.h
jeu.o : jeu.h menu.h comportementJCJ.h comportementJCIA.h
main.o : jeu.h
# CHAPITRE 4 : DEPENDANCES AVEC COMMANDES # CHAPITRE 4 : DEPENDANCES AVEC COMMANDES

Binary file not shown.

View File

@@ -1,19 +0,0 @@
#include <graph.h>
/* Fonction qui permet de délimiter le clique de la souris pour le bouton de Joueur contre Joueur */
int boutonJVJ(){
int choix = 0, SourisX = 0, SourisY = 0;
while(choix == 0){ /* Boucle effectif tant que le joueur n'a pas fais de choix */
if (SourisCliquee()){ /* Détecte quand le joueur clique et met les coordonées du clique de SourisX et Souris Y */
SourisX = _X;
SourisY = _Y;
}
if(SourisX > 100 && SourisX < 250 && SourisY > 150 && SourisY < 200){
choix = 1; /* Quand le joueur clique dans l'emplacement de Joueur contre Joueur choix = 1 */
}else if(SourisX > 400 && SourisX < 550 && SourisY > 150 && SourisY < 200){
choix = 2; /* Quand le joueur cliqye dans l'emplacement de Joueur contre IA choix = 2 */
}
}
return choix; /* On retourne choix pour que le menu puisse le retourner a jeu.c pour faire la selection de l'ennemie */
}

View File

@@ -1,7 +0,0 @@
#ifndef BOUTONJVJ_H
#define BOUTONJVIA_H
int boutonJVJ();
#endif

View File

@@ -1,72 +1,77 @@
#include <graph.h> #include <graph.h>
#include <time.h> #include <time.h>
#include <stdio.h>
#include "definirMaxXY.h" #include "definirMaxXY.h"
#include "initialisation.h" #include "initialisation.h"
#include "coordoner.h" #include "coordoner.h"
#include "effacehaut.h"
#include "verificationblock.h"
int compJCIA(int taille){ int compJCIA(int taille){
int fin = 0, tabx = 0, taby = 0, tour = 0, initi = 0, SourisX = 0, SourisY = 0, initialiser = 0, inialea = 0; int fin = 0, tabx = 0, taby = 0, tour = 0, initi = 0, SourisX = 0, SourisY = 0, initialiser = 0;
int maxX = 0, maxY = 0, joueurx1 = 0, joueury1 = 0, joueurx2 = 0, joueury2 = 0, placer = 1; int maxX = 0, maxY = 0, joueurx1 = 0, joueury1 = 0, joueurx2 = 0, joueury2 = 0, placer = 1;
int emplacementcooX1 = 0, emplacementcooX2 = 0, emplacementcooY1 = 0, emplacementcooY2 = 0; int emplacementcooX1 = 0, emplacementcooX2 = 0, emplacementcooY1 = 0, emplacementcooY2 = 0;
int grille[taille+2][taille+2]; int grille[taille+2][taille+2];
int empblock[4] = {0, 0, 0, 0}, empperso[4] = {0, 0, 0, 0}; int empblock[4] = {0, 0, 0, 0}, empperso[4] = {0, 0, 0, 0};
maxX = DefMaxX(taille); srand(time(NULL));
maxX = DefMaxX(taille); /* Définie les positions maximum de la grille */
maxY = DefMaxY(taille); maxY = DefMaxY(taille);
for(tabx = 0; tabx < taille + 2; tabx++){ for(tabx = 0; tabx < taille + 2; tabx++){
for(taby = 0; taby < taille + 2; taby++){ for(taby = 0; taby < taille + 2; taby++){
grille[tabx][taby] = 0; grille[tabx][taby] = 0; /* Initialise le tableau a double dimension */
if(taby == 0 || taby == taille + 1 || tabx == 0 || tabx == taille + 1){ if(taby == 0 || taby == taille + 1 || tabx == 0 || tabx == taille + 1){
grille[tabx][taby] = 9; grille[tabx][taby] = 9;
} }
} }
} }
EcrireTexte(30, 40, "Joueur 1 choisissez l'emplacement de base du pion 1", 1); EcrireTexte(30, 40, "Joueur 1 choisissez l'emplacement de base du pion 1", 1);
while(initi == 0){ while(initi == 0){ /* Initialise l'emplacement du joueur 1 */
if(SourisCliquee()){ if(SourisCliquee()){
SourisX = _X; SourisX = _X;
SourisY = _Y; SourisY = _Y;
} }
if(initialiser == 0){ if(initialiser == 0){
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){ if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
ChargerSprite("pion1.png"); /* Change a l'index du tableau une valeur pour colision et affiche le sprote sur la case correspondante */
joueurx1 = initialisationX(SourisX, maxX, taille); ChargerSprite("./image/pion1.png");
joueurx1 = initialisationX(SourisX, maxX, taille); /* renvoie l'index de la case cliquee */
joueury1 = initialisationY(SourisY, maxY, taille); joueury1 = initialisationY(SourisY, maxY, taille);
emplacementcooX1 = coordonerX(SourisX); emplacementcooX1 = coordonerX(SourisX); /* renvoie les coordoner qui a été cliquee dans la grille */
emplacementcooY1 = coordonerY(SourisY); emplacementcooY1 = coordonerY(SourisY);
AfficherSprite(1, emplacementcooX1, emplacementcooY1); AfficherSprite(1, emplacementcooX1, emplacementcooY1);
grille[joueury1][joueurx1] = 1; grille[joueury1][joueurx1] = 1; /* Permet de changer a l'index cliquee la valeur pour la detection de colision */
initialiser = 0; initialiser++;
initi++; SourisX = 0;
SourisY = 0;
EffaceIA(); /* Clear l'affichage du haut */
EcrireTexte(30, 40, "Joueur 2 choisissez l'emplacement de base du pion 2", 1);
}
}else if (initialiser == 1){
/* Change a l'index du tableau une valeur pour colision et affiche le sprite sur la case correspondante */
SourisX = rand() % maxX;
SourisY = rand() % maxY; /* Voici l'IA */
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
ChargerSprite("./image/pion2.png");
joueurx2 = initialisationX(SourisX, maxX, taille); /* renvoi l'index de la case de la grille choisie pa l'IA */
joueury2 = initialisationY(SourisY, maxY, taille);
if(grille[joueury2][joueurx2] != 1){
emplacementcooX2 = coordonerX(SourisX); /* renvoie les coordonées de l'emplacement choisie par l'IA */
emplacementcooY2 = coordonerY(SourisY);
AfficherSprite(2, emplacementcooX2, emplacementcooY2);
grille[joueury2][joueurx2] = 2; /* change a l'index la valeur pour la colision */
initialiser++;
initi++;
}
SourisX = 0; SourisX = 0;
SourisY = 0; SourisY = 0;
} }
} }
} }
initialiser = 1; ChargerSprite("./image/croix1.png"); /* charge les images des blocks */
ChargerSprite("pion2.png"); ChargerSprite("./image/croix2.png");
while(initialiser == 1){
emplacementcooX2 = rand() % maxX + 95;
emplacementcooY2 = rand() % maxY - 12;
joueurx2 = initialisationX(emplacementcooX2, maxX, taille);
joueury2 = initialisationY(emplacementcooY2, maxY, taille);
printf("%d, %d\n", joueurx2, joueury2);
if(grille[joueury2][joueurx2] == 0){
AfficherSprite(2, emplacementcooX2, emplacementcooY2);
grille[joueury2][joueurx2] = 2;
initialiser++;
}
}
ChargerSprite("croix1.png");
ChargerSprite("croix2.png");
while(fin == 0){ while(fin == 0){
if(tour == 0){ if(tour == 0){
Efface(); EffaceIA(); /* efface l'affichage des tours */
EcrireTexte(30, 40, "Tour du joueur 1", 2); EcrireTexte(30, 40, "Tour du joueur 1", 2);
SourisX = 0; SourisX = 0;
SourisY = 0; SourisY = 0;
@@ -76,89 +81,87 @@ int compJCIA(int taille){
SourisY = _Y; SourisY = _Y;
} }
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso); VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso);
if(grille[joueury1+1][joueurx1] != 0 && grille[joueury1-1][joueurx1] != 0 && grille[joueury1+1][joueurx1+1] != 0 && grille[joueury1-1][joueurx1-1] != 0 && grille[joueury1][joueurx1+1] != 0 && grille[joueury1][joueurx1-1] != 0){ if(grille[joueury1+1][joueurx1-1] != 0 && grille[joueury1+1][joueurx1] != 0 && grille[joueury1+1][joueurx1+1] && grille[joueury1][joueurx1-1] != 0 && grille[joueury1][joueurx1+1] != 0 && grille[joueury1-1][joueurx1-1] != 0 && grille[joueury1-1][joueurx1] != 0 && grille[joueury1-1][joueurx1+1] != 0){
LibererSprite(1); LibererSprite(1);
LibererSprite(2); LibererSprite(2); /* verification des conditions de victoire */
LibererSprite(3); LibererSprite(3);
LibererSprite(4); LibererSprite(4);
return 2; return 3; /* arrete le programme et indique qui a gagner (le 3 car c'est contre l'IA) */
} }
if(empperso[0] != 0){ if(empperso[0] != 0){
if(grille[empperso[1]][empperso[0]] == 0 && (empperso[1] <= joueury1+1 && empperso[1] >= joueury1-1) && (empperso[0] <= joueurx1+1 && empperso[0] >= joueurx1-1)){ if(grille[empperso[1]][empperso[0]] == 0 && (empperso[1] <= joueury1+1 && empperso[1] >= joueury1-1) && (empperso[0] <= joueurx1+1 && empperso[0] >= joueurx1-1)){
grille[joueury1][joueurx1] = 0; grille[joueury1][joueurx1] = 0; /* Change l'emplacement précedent pour le rendre disponible */
ChoisirCouleurDessin(CouleurParNom("white")); ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(emplacementcooX1, emplacementcooY1, 40, 40); RemplirRectangle(emplacementcooX1, emplacementcooY1, 40, 40); /* Efface le spite a l'ancien emplacement */
ChoisirCouleurDessin(CouleurParNom("black")); ChoisirCouleurDessin(CouleurParNom("black"));
joueurx1 = empperso[0]; joueurx1 = empperso[0]; /* donne l'index de la grille par rapport au clique effectuer */
joueury1 = empperso[1]; joueury1 = empperso[1];
empperso[2] = coordonerX(SourisX); empperso[2] = coordonerX(SourisX); /* donne les coordonnés du clique sur la grille */
empperso[3] = coordonerY(SourisY); empperso[3] = coordonerY(SourisY);
grille[empperso[1]][empperso[0]] = 1; grille[empperso[1]][empperso[0]] = 1; /* change la valeur pour la colision */
AfficherSprite(1, empperso[2], empperso[3]); AfficherSprite(1, empperso[2], empperso[3]); /* Affiche le sprite a l'emplacement demander */
emplacementcooX1 = empperso[2]; emplacementcooX1 = empperso[2];
emplacementcooY1 = empperso[3]; emplacementcooY1 = empperso[3]; /* Recupère l'ancient index pour le supprimer plus tard */
placer = 0; placer = 0;
} }
} }
} }
empperso[0] = 0; empperso[0] = 0; /* change empperso[0] a 0 pour la confirmation que le joueur a bien changer une variable */
placer = 1; placer = 1;
tour++; tour++;
}else if(tour == 1){ }else if(tour == 1){
Efface(); EffaceIA(); /* Efface l'ancient emplacement du haut de l'affichage */
EcrireTexte(30, 40, "Joueur 1 place le bloc", 2); EcrireTexte(30, 40, "Joueur 1 place le bloc", 2);
SourisX = 0; SourisX = 0; /* Réinitialise les variables des souris pour refaire une SourisCliquee() */
SourisY = 0; SourisY = 0;
while(placer == 1){ while(placer == 1){
if(SourisCliquee()){ if(SourisCliquee()){
SourisX = _X; SourisX = _X;
SourisY = _Y; SourisY = _Y;
} } /* Prend les coordoner de la souris cliquee */
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock); VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock);
if(empblock[0] != 0){ if(empblock[0] != 0){
if(grille[empblock[1]][empblock[0]] == 0){ if(grille[empblock[1]][empblock[0]] == 0){
empblock[2] = coordonerX(SourisX); empblock[2] = coordonerX(SourisX); /* Fait en sorte d'avoir les coordonnées par rapport a la grille */
empblock[3] = coordonerY(SourisY); empblock[3] = coordonerY(SourisY);
grille[empblock[1]][empblock[0]] = 3; grille[empblock[1]][empblock[0]] = 3; /* change l'index de colision */
AfficherSprite(3, empblock[2], empblock[3]); AfficherSprite(3, empblock[2], empblock[3]); /* Affiche le sprite */
placer = 0; placer = 0;
} }
} }
} }
empblock[0] = 0; empblock[0] = 0; /* change empperso[0] a 0 pour la confirmation que le joueur a bien changer une variable */
placer = 1; placer = 1;
tour++; tour++;
}else if(tour == 2){ }else if(tour == 2){
Efface(); EffaceIA(); /* Efface l'affichage du haut de l'écran */
EcrireTexte(30, 40, "Tour du joueur 2", 2); EcrireTexte(30, 40, "Tour du joueur 2", 2);
SourisX = 0; SourisX = 0; /* remet a zero les variable Souris */
SourisY = 0; SourisY = 0;
while(placer == 1){ while(placer == 1){
if(SourisCliquee()){ SourisX = rand() % maxX; /* Le code de l'IA pour l'IA */
SourisX = _X; SourisY = rand() % maxY;
SourisY = _Y;
}
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso); VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso);
if(grille[joueury2+1][joueurx2] != 0 && grille[joueury2-1][joueurx2] != 0 && grille[joueury2+1][joueurx2+1] != 0 && grille[joueury2-1][joueurx2-1] != 0 && grille[joueury2][joueurx2+1] != 0 && grille[joueury2][joueurx2-1] != 0){ if(grille[joueury2+1][joueurx2-1] != 0 && grille[joueury2+1][joueurx2] != 0 && grille[joueury2+1][joueurx2+1] != 0 && grille[joueury2][joueurx2-1] != 0 && grille[joueury2][joueurx2+1] != 0 && grille[joueury2-1][joueurx2-1] != 0 && grille[joueury2-1][joueurx2] != 0 && grille[joueury2-1][joueurx2+1] != 0){
LibererSprite(1); LibererSprite(1);
LibererSprite(2); LibererSprite(2);
LibererSprite(3); LibererSprite(3); /* condition de perte pour l'IA */
LibererSprite(4); LibererSprite(4);
return 1; return 1; /* retourne 1 pour dire que le joueur 1 a gagner */
} }
if(empperso[0] != 0){ if(empperso[0] != 0){
if(grille[empperso[1]][empperso[0]] == 0 && (empperso[1] <= joueury2+1 && empperso[1] >= joueury2-1) && (empperso[0] <= joueurx2+1 && empperso[0] >= joueurx2-1)){ if(grille[empperso[1]][empperso[0]] == 0 && (empperso[1] <= joueury2+1 && empperso[1] >= joueury2-1) && (empperso[0] <= joueurx2+1 && empperso[0] >= joueurx2-1)){
grille[joueury2][joueurx2] = 0; grille[joueury2][joueurx2] = 0; /* met a l'index précedent a zero */
ChoisirCouleurDessin(CouleurParNom("white")); ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(emplacementcooX2, emplacementcooY2, 40, 40); RemplirRectangle(emplacementcooX2, emplacementcooY2, 40, 40); /* supprime le sprite de l'emplacement précedant */
ChoisirCouleurDessin(CouleurParNom("black")); ChoisirCouleurDessin(CouleurParNom("black"));
joueurx2 = empperso[0]; joueurx2 = empperso[0]; /* Change les anciennes donner par les nouvelles donner */
joueury2 = empperso[1]; joueury2 = empperso[1];
empperso[2] = coordonerX(SourisX); empperso[2] = coordonerX(SourisX); /* Donne les coordoner par rapport au coordoner donner par la souris et la grille */
empperso[3] = coordonerY(SourisY); empperso[3] = coordonerY(SourisY);
grille[empperso[1]][empperso[0]] = 2; grille[empperso[1]][empperso[0]] = 2; /* Change l'emplacement de la grille pour la colision */
AfficherSprite(2, empperso[2], empperso[3]); AfficherSprite(2, empperso[2], empperso[3]);
emplacementcooX2 = empperso[2]; emplacementcooX2 = empperso[2]; /* met le nouvelle emplacement dans l'ancien */
emplacementcooY2 = empperso[3]; emplacementcooY2 = empperso[3];
placer = 0; placer = 0;
} }
@@ -169,19 +172,17 @@ int compJCIA(int taille){
tour++; tour++;
}else if(tour == 3){ }else if(tour == 3){
Efface(); EffaceIA();
EcrireTexte(30, 40, "Joueur 2 place le bloc", 2); EcrireTexte(30, 40, "Joueur 2 place le bloc", 2);
SourisX = 0; SourisX = 0;
SourisY = 0; SourisY = 0;
while(placer == 1){ while(placer == 1){
if(SourisCliquee()){ SourisX = rand() % maxX; /* code de l'IA */
SourisX = _X; SourisY = rand() % maxY;
SourisY = _Y;
}
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock); VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock);
if(empblock[0] != 0){ if(empblock[0] != 0){
if(grille[empblock[1]][empblock[0]] == 0){ if(grille[empblock[1]][empblock[0]] == 0){
empblock[2] = coordonerX(SourisX); empblock[2] = coordonerX(SourisX); /* même chose que précedemment */
empblock[3] = coordonerY(SourisY); empblock[3] = coordonerY(SourisY);
grille[empblock[1]][empblock[0]] = 4; grille[empblock[1]][empblock[0]] = 4;
AfficherSprite(4, empblock[2], empblock[3]); AfficherSprite(4, empblock[2], empblock[3]);
@@ -194,5 +195,11 @@ int compJCIA(int taille){
tour = 0; tour = 0;
} }
} }
return 0; }
void EffaceIA(){
ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(0, 0, 650, 50); /* Fonction qui supprime l'affichage des tours */
ChoisirCouleurDessin(CouleurParNom("black"));
} }

View File

@@ -4,5 +4,6 @@
int compJCIA(int taille); int compJCIA(int taille);
void EffaceIA();
#endif #endif

View File

@@ -1,10 +1,9 @@
#include <graph.h> #include <graph.h>
#include "definirMaxXY.h" #include "definirMaxXY.h"
#include "initialisation.h" #include "initialisation.h"
#include "coordoner.h" #include "coordoner.h"
#include "effacehaut.h"
#include "verificationblock.h"
int compJCJ(int taille){ int compJCJ(int taille){
@@ -13,30 +12,30 @@ int compJCJ(int taille){
int emplacementcooX1 = 0, emplacementcooX2 = 0, emplacementcooY1 = 0, emplacementcooY2 = 0; int emplacementcooX1 = 0, emplacementcooX2 = 0, emplacementcooY1 = 0, emplacementcooY2 = 0;
int grille[taille+2][taille+2]; int grille[taille+2][taille+2];
int empblock[4] = {0, 0, 0, 0}, empperso[4] = {0, 0, 0, 0}; int empblock[4] = {0, 0, 0, 0}, empperso[4] = {0, 0, 0, 0};
maxX = DefMaxX(taille); maxX = DefMaxX(taille); /* Defini les maximum de X et Y */
maxY = DefMaxY(taille); maxY = DefMaxY(taille);
for(tabx = 0; tabx < taille + 2; tabx++){ for(tabx = 0; tabx < taille + 2; tabx++){
for(taby = 0; taby < taille + 2; taby++){ for(taby = 0; taby < taille + 2; taby++){
grille[tabx][taby] = 0; grille[tabx][taby] = 0; /* Defini la grille */
if(taby == 0 || taby == taille + 1 || tabx == 0 || tabx == taille + 1){ if(taby == 0 || taby == taille + 1 || tabx == 0 || tabx == taille + 1){
grille[tabx][taby] = 9; grille[tabx][taby] = 9;
} }
} }
} }
EcrireTexte(30, 40, "Joueur 1 choisissez l'emplacement de base du pion 1", 1); EcrireTexte(30, 40, "Joueur 1 choisissez l'emplacement de base du pion 1", 1);
while(initi == 0){ while(initi == 0){ /* Initialise la position des deux joueurs */
if(SourisCliquee()){ if(SourisCliquee()){ /* Recupère les coordonées de la souris */
SourisX = _X; SourisX = _X;
SourisY = _Y; SourisY = _Y;
} }
if(initialiser == 0){ if(initialiser == 0){
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){ if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
ChargerSprite("pion1.png"); ChargerSprite("./image/pion1.png"); /* Charge l'image, trouve l'index par la position de la souris ainsi que les coordonées */
joueurx1 = initialisationX(SourisX, maxX, taille); joueurx1 = initialisationX(SourisX, maxX, taille);
joueury1 = initialisationY(SourisY, maxY, taille); joueury1 = initialisationY(SourisY, maxY, taille);
emplacementcooX1 = coordonerX(SourisX); emplacementcooX1 = coordonerX(SourisX);
emplacementcooY1 = coordonerY(SourisY); emplacementcooY1 = coordonerY(SourisY);
AfficherSprite(1, emplacementcooX1, emplacementcooY1); AfficherSprite(1, emplacementcooX1, emplacementcooY1); /* Affiche le sprite */
grille[joueury1][joueurx1] = 1; grille[joueury1][joueurx1] = 1;
initialiser++; initialiser++;
SourisX = 0; SourisX = 0;
@@ -46,10 +45,10 @@ int compJCJ(int taille){
} }
}else if (initialiser == 1){ }else if (initialiser == 1){
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){ if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
ChargerSprite("pion2.png"); ChargerSprite("./image/pion2.png");
joueurx2 = initialisationX(SourisX, maxX, taille); joueurx2 = initialisationX(SourisX, maxX, taille);
joueury2 = initialisationY(SourisY, maxY, taille); joueury2 = initialisationY(SourisY, maxY, taille);
if(grille[joueury2][joueurx2] != 1){ if(grille[joueury2][joueurx2] != 1){ /* Si l'emplacement n'est pas déjà pris par l'user 1 */
emplacementcooX2 = coordonerX(SourisX); emplacementcooX2 = coordonerX(SourisX);
emplacementcooY2 = coordonerY(SourisY); emplacementcooY2 = coordonerY(SourisY);
AfficherSprite(2, emplacementcooX2, emplacementcooY2); AfficherSprite(2, emplacementcooX2, emplacementcooY2);
@@ -61,24 +60,24 @@ int compJCJ(int taille){
SourisY = 0; SourisY = 0;
} }
} }
} } /* Charge les sprites */
ChargerSprite("croix1.png"); ChargerSprite("./image/croix1.png");
ChargerSprite("croix2.png"); ChargerSprite("./image/croix2.png");
while(fin == 0){ while(fin == 0){
if(tour == 0){ if(tour == 0){ /* Tour du joueur 1 */
Efface(); Efface();
EcrireTexte(30, 40, "Tour du joueur 1", 2); EcrireTexte(30, 40, "Tour du joueur 1", 2);
SourisX = 0; SourisX = 0;
SourisY = 0; SourisY = 0;
while(placer == 1){ while(placer == 1){
if(SourisCliquee()){ if(SourisCliquee()){
SourisX = _X; SourisX = _X; /* Recupere les coordonnées de la souris X et Y */
SourisY = _Y; SourisY = _Y;
} }
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso); VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso);
if(grille[joueury1+1][joueurx1] != 0 && grille[joueury1-1][joueurx1] != 0 && grille[joueury1+1][joueurx1+1] != 0 && grille[joueury1-1][joueurx1-1] != 0 && grille[joueury1][joueurx1+1] != 0 && grille[joueury1][joueurx1-1] != 0){ if(grille[joueury1+1][joueurx1-1] != 0 && grille[joueury1+1][joueurx1] != 0 && grille[joueury1+1][joueurx1+1] != 0 && grille[joueury1][joueurx1-1] != 0 && grille[joueury1][joueurx1+1] != 0 && grille[joueury1-1][joueurx1-1] != 0 && grille[joueury1-1][joueurx1] != 0 && grille[joueury1-1][joueurx1+1] != 0){
LibererSprite(1); LibererSprite(1);
LibererSprite(2); LibererSprite(2); /* condition de victoire */
LibererSprite(3); LibererSprite(3);
LibererSprite(4); LibererSprite(4);
return 2; return 2;
@@ -87,15 +86,15 @@ int compJCJ(int taille){
if(grille[empperso[1]][empperso[0]] == 0 && (empperso[1] <= joueury1+1 && empperso[1] >= joueury1-1) && (empperso[0] <= joueurx1+1 && empperso[0] >= joueurx1-1)){ if(grille[empperso[1]][empperso[0]] == 0 && (empperso[1] <= joueury1+1 && empperso[1] >= joueury1-1) && (empperso[0] <= joueurx1+1 && empperso[0] >= joueurx1-1)){
grille[joueury1][joueurx1] = 0; grille[joueury1][joueurx1] = 0;
ChoisirCouleurDessin(CouleurParNom("white")); ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(emplacementcooX1, emplacementcooY1, 40, 40); RemplirRectangle(emplacementcooX1, emplacementcooY1, 40, 40); /* Suprime l'ancient perso pour le remplacer par un nouveau */
ChoisirCouleurDessin(CouleurParNom("black")); ChoisirCouleurDessin(CouleurParNom("black"));
joueurx1 = empperso[0]; joueurx1 = empperso[0]; /* Recupere les index du tableau par rapport au clique effectuer*/
joueury1 = empperso[1]; joueury1 = empperso[1];
empperso[2] = coordonerX(SourisX); empperso[2] = coordonerX(SourisX);
empperso[3] = coordonerY(SourisY); empperso[3] = coordonerY(SourisY); /* Recupere les coordoner pour les sprites */
grille[empperso[1]][empperso[0]] = 1; grille[empperso[1]][empperso[0]] = 1;
AfficherSprite(1, empperso[2], empperso[3]); AfficherSprite(1, empperso[2], empperso[3]);
emplacementcooX1 = empperso[2]; emplacementcooX1 = empperso[2]; /* Sauvegarde les anciennes coordoner pour supressions de sprite */
emplacementcooY1 = empperso[3]; emplacementcooY1 = empperso[3];
placer = 0; placer = 0;
} }
@@ -104,21 +103,21 @@ int compJCJ(int taille){
empperso[0] = 0; empperso[0] = 0;
placer = 1; placer = 1;
tour++; tour++;
}else if(tour == 1){ }else if(tour == 1){ /* Fonction qui place les blocs du joueur 1 */
Efface(); Efface();
EcrireTexte(30, 40, "Joueur 1 place le bloc", 2); EcrireTexte(30, 40, "Joueur 1 place le bloc", 2);
SourisX = 0; SourisX = 0;
SourisY = 0; SourisY = 0;
while(placer == 1){ while(placer == 1){
if(SourisCliquee()){ if(SourisCliquee()){
SourisX = _X; SourisX = _X; /* Recupere les coordonnées de la souris */
SourisY = _Y; SourisY = _Y;
} }
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock); VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock);
if(empblock[0] != 0){ if(empblock[0] != 0){
if(grille[empblock[1]][empblock[0]] == 0){ if(grille[empblock[1]][empblock[0]] == 0){
empblock[2] = coordonerX(SourisX); empblock[2] = coordonerX(SourisX);
empblock[3] = coordonerY(SourisY); empblock[3] = coordonerY(SourisY); /* Récupere les coordonnées et index pour le placement de bloc */
grille[empblock[1]][empblock[0]] = 3; grille[empblock[1]][empblock[0]] = 3;
AfficherSprite(3, empblock[2], empblock[3]); AfficherSprite(3, empblock[2], empblock[3]);
placer = 0; placer = 0;
@@ -128,7 +127,7 @@ int compJCJ(int taille){
empblock[0] = 0; empblock[0] = 0;
placer = 1; placer = 1;
tour++; tour++;
}else if(tour == 2){ }else if(tour == 2){ /* Tour du joueur 2 le code est le même que pour le joueur 1 mais avec des variables du joueur 2 */
Efface(); Efface();
EcrireTexte(30, 40, "Tour du joueur 2", 2); EcrireTexte(30, 40, "Tour du joueur 2", 2);
SourisX = 0; SourisX = 0;
@@ -139,7 +138,7 @@ int compJCJ(int taille){
SourisY = _Y; SourisY = _Y;
} }
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso); VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empperso);
if(grille[joueury2+1][joueurx2] != 0 && grille[joueury2-1][joueurx2] != 0 && grille[joueury2+1][joueurx2+1] != 0 && grille[joueury2-1][joueurx2-1] != 0 && grille[joueury2][joueurx2+1] != 0 && grille[joueury2][joueurx2-1] != 0){ if(grille[joueury2+1][joueurx2-1] != 0 && grille[joueury2+1][joueurx2] != 0 && grille[joueury2+1][joueurx2+1] != 0 && grille[joueury2][joueurx2-1] != 0 && grille[joueury2][joueurx2+1] != 0 && grille[joueury2-1][joueurx2-1] != 0 && grille[joueury2-1][joueurx2] != 0 && grille[joueury2-1][joueurx2+1]){
LibererSprite(1); LibererSprite(1);
LibererSprite(2); LibererSprite(2);
LibererSprite(3); LibererSprite(3);
@@ -167,7 +166,8 @@ int compJCJ(int taille){
empperso[0] = 0; empperso[0] = 0;
placer = 1; placer = 1;
tour++; tour++;
}else if(tour == 3){
}else if(tour == 3){ /* Place les blocs comme pour les blocs du joueur 2 */
Efface(); Efface();
EcrireTexte(30, 40, "Joueur 2 place le bloc", 2); EcrireTexte(30, 40, "Joueur 2 place le bloc", 2);
SourisX = 0; SourisX = 0;
@@ -195,3 +195,9 @@ int compJCJ(int taille){
} }
return 0; return 0;
} }
void Efface(){ /* Efface l'affichage du haut */
ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(0, 0, 650, 50);
ChoisirCouleurDessin(CouleurParNom("black"));
}

View File

@@ -4,5 +4,6 @@
int compJCJ(int taille); int compJCJ(int taille);
void Efface();
#endif #endif

View File

@@ -1,7 +1,9 @@
#include "initialisation.h"
int coordonerX(int SourisX){ int coordonerX(int SourisX){
int x = 0, z = 0; /* Retourne les coordoner précis de X pour l'affichage de l'image */ int x = 0, z = 0;
for(z = 50; z <= 500; z += 50){ for(z = 50; z <= 500; z += 50){
if(SourisX > z){ if(SourisX > z){ /* Récupère les coordonnées par rapport a l'emplacement du sprite */
x = z + 5; x = z + 5;
} }
} }
@@ -10,11 +12,23 @@ int coordonerX(int SourisX){
int coordonerY(int SourisY){ int coordonerY(int SourisY){
int x = 0, z = 0; /* Retourn les coordoner précis de Y pour l'affichage de l'image */ int x = 0, z = 0;
for(z = 100; z <= 550; z += 50){ for(z = 100; z <= 550; z += 50){
if(SourisY > z){ if(SourisY > z){ /* de même que le code mis en haut */
x = z + 5; x = z + 5;
} }
} }
return x; return x;
} }
void VerifBlock1(int SourisX, int SourisY, int maxX, int maxY, int taille, int* coordoner){
int placementX = 0, placementY = 0;
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
placementX = initialisationXbox(SourisX, maxX, taille); /* récupère l'index de la case selectionner par le joueur */
placementY = initialisationYbox(SourisY, maxY, taille);
}
coordoner[0] = placementX;
coordoner[1] = placementY;
}

View File

@@ -6,4 +6,6 @@ int coordonerX(int SourisX);
int coordonerY(int SourisY); int coordonerY(int SourisY);
void VerifBlock1(int SourisX, int SourisY, int maxX, int maxY, int taille, int* coordoner);
#endif #endif

View File

@@ -8,9 +8,11 @@
* 7 : x = 400 y = 450 * 7 : x = 400 y = 450
* 8 : x = 450 y = 500 * 8 : x = 450 y = 500
* 9 : x = 500 y = 550 * 9 : x = 500 y = 550
*
* Les deux codes permettent de définir la taille maximale en pixel
*/ */
int DefMaxX(int taille){ /* Retourne les coordonées maximale de X par rapport a la taille du tableau selectionner */ int DefMaxX(int taille){
int maxX = 0, x = 0, max = 200; int maxX = 0, x = 0, max = 200;
if(taille == 3){ if(taille == 3){
maxX = 200; maxX = 200;
@@ -24,7 +26,7 @@ int DefMaxX(int taille){ /* Retourne les coordonées maximale de X par rapport
return maxX; return maxX;
} }
int DefMaxY(int taille){ /* Retourne les coordonées maximale de Y par rapport a la taille du tableau selectionner */ int DefMaxY(int taille){
int maxY = 0, x = 0, max = 250; int maxY = 0, x = 0, max = 250;
for(x = 3; x < 10; x++){ for(x = 3; x < 10; x++){
if(taille == x){ if(taille == x){

View File

@@ -1,8 +0,0 @@
#include <graph.h>
void Efface(void){ /* Fonction de feignant qui me permet juste d'effacer le haut de l'affichage de la partie */
ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(0, 0, 650, 50);
ChoisirCouleurDessin(CouleurParNom("black"));
}

View File

@@ -1,7 +0,0 @@
#ifndef EFFACEHAUT_H
#define EFFACEHAUT_H
void Efface();
#endif

View File

@@ -1,27 +0,0 @@
#include <graph.h>
void Grille(int taille){
int bord = 0, x = 100, xx = 50, y = 100, yy = 100;
ChoisirCouleurDessin(CouleurParNom("Black"));
for(bord = 0; bord < taille; bord++){
DessinerSegment(50, 100, x, 100); /* Dessine le bord du haut de la grille */
x += 50;
}
x -= 50; /* Enlève le surplus de la fonction for */
for(bord = 0; bord <= taille; bord++){
DessinerSegment(50, 100, 50 , y); /* Dessine les barre latérale en fonction de la taille choisie */
DessinerSegment(x, 100, x, y);
y += 50;
}
y -= 50; /* Enlève le surplus de la fonction for */
DessinerSegment(50, y, x, y);
for(bord = 0; bord <= taille; bord++){
DessinerSegment(50, yy, x, yy); /* Dessine les barre horizontale de l'intérieur de la grille */
yy += 50;
}
for(bord = 0; bord <= taille; bord++){
DessinerSegment(xx, 100, xx, y); /* Dessine les barre verticale de l'intérieur de la grille */
xx += 50;
}
}

View File

@@ -1,9 +0,0 @@
#ifndef GRILLE_H
#define GRILLE_H
void Grille(int taille);
#endif

View File

Before

Width:  |  Height:  |  Size: 747 B

After

Width:  |  Height:  |  Size: 747 B

View File

Before

Width:  |  Height:  |  Size: 453 B

After

Width:  |  Height:  |  Size: 453 B

View File

Before

Width:  |  Height:  |  Size: 603 B

After

Width:  |  Height:  |  Size: 603 B

View File

Before

Width:  |  Height:  |  Size: 933 B

After

Width:  |  Height:  |  Size: 933 B

View File

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 522 B

View File

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 660 B

View File

Before

Width:  |  Height:  |  Size: 918 B

After

Width:  |  Height:  |  Size: 918 B

View File

Before

Width:  |  Height:  |  Size: 363 B

After

Width:  |  Height:  |  Size: 363 B

View File

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 366 B

View File

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

View File

Before

Width:  |  Height:  |  Size: 270 B

After

Width:  |  Height:  |  Size: 270 B

View File

@@ -1,25 +1,25 @@
int initialisationX(int SourisX, int maxX, int taille){ /* Code qui permet de retourner le numéro X de la case ou le joueur veux le pion de base */ int initialisationX(int SourisX, int maxX, int taille){
int casejoueur = 0, x = 0, y = 50, verou = 0; int casejoueur = 0, x = 0, y = 50, verou = 0;
for(x = 0; x <= taille; x++){ for(x = 0; x <= taille; x++){
if(SourisX >= 50 && SourisX <= maxX){ if(SourisX >= 50 && SourisX <= maxX){
if(SourisX <= y && verou == 0){ if(SourisX <= y && verou == 0){
casejoueur = x; casejoueur = x;
verou++; verou++;
} } /* code qui retourne l'index X de la case du joueur */
y += 50; y += 50;
} }
} }
return casejoueur; return casejoueur;
} }
int initialisationY(int SourisY, int maxY, int taille){ /* Code qui permet de retourner le numéro Y de la case ou le joueur veux le pion de base */ int initialisationY(int SourisY, int maxY, int taille){
int casejoueur = 0, x = 0, y = 100, verou = 0; int casejoueur = 0, x = 0, y = 100, verou = 0;
for(x = 0; x <= taille; x++){ for(x = 0; x <= taille; x++){
if(SourisY >= 100 && SourisY <= maxY){ if(SourisY >= 100 && SourisY <= maxY){
if(SourisY <= y && verou == 0){ if(SourisY <= y && verou == 0){
casejoueur = x; casejoueur = x;
verou++; verou++;
} } /* code qui retourne l'index Y de la case du joueur */
y += 50; y += 50;
} }
} }
@@ -28,13 +28,13 @@ int initialisationY(int SourisY, int maxY, int taille){ /* Code qui permet de
int initialisationXbox(int SourisX, int maxX, int taille){ /* Retourne X de la case du bloc que l'on veux placer */ int initialisationXbox(int SourisX, int maxX, int taille){
int caseblock = 0, x = 0, y = 50, verou = 0; int caseblock = 0, x = 0, y = 50, verou = 0;
for(x = 0; x <= taille; x++){ for(x = 0; x <= taille; x++){
if(SourisX >= 50 && SourisX <= maxX){ if(SourisX >= 50 && SourisX <= maxX){
if(SourisX <= y && verou == 0){ if(SourisX <= y && verou == 0){
caseblock = x; caseblock = x;
verou++; verou++; /* code qui retourne l'index X de la case du block */
} }
y += 50; y += 50;
} }
@@ -43,13 +43,13 @@ int initialisationXbox(int SourisX, int maxX, int taille){ /* Retourne X de la
} }
int initialisationYbox(int SourisY, int maxY, int taille){ /* Retourne Y de la case du bloc que l'on veux placer */ int initialisationYbox(int SourisY, int maxY, int taille){
int caseblock = 0, x = 0, y = 100, verou = 0; int caseblock = 0, x = 0, y = 100, verou = 0;
for(x = 0; x <= taille; x++){ for(x = 0; x <= taille; x++){
if(SourisY >= 100 && SourisY <= maxY){ if(SourisY >= 100 && SourisY <= maxY){
if(SourisY <= y && verou == 0){ if(SourisY <= y && verou == 0){
caseblock = x; caseblock = x;
verou++; verou++; /* code qui retourne l'index Y de la case du block */
} }
y += 50; y += 50;
} }

27
jeu.c
View File

@@ -1,27 +0,0 @@
#include <graph.h>
#include "menu.h"
#include "comportementJCJ.h"
#include "comportementJCIA.h"
int Jeu(){
int choix[2], taille = 0, victoire = 0;
Menu(choix); /* Affiche le menu */
taille = choix[1];
if(choix[0] == 1){ /* Si l'utilisateur choisie Player VS Player */
victoire = compJCJ(taille);
if(victoire == 1){ /* Si le joueur 1 a gagner alors retourner 1 */
return 1;
}else if(victoire == 2){
return 2; /* Si le joueur 2 a gagner alors retourner 2 */
}
}else if (choix[0] == 2){ /* Si l'utilisateur choisie Player VS IA */
compJCIA(taille);
if(victoire == 1){
return 1; /* Si le joueur 1 a gagner alors retourner 1 */
}else if(victoire == 3){
return 3; /* Si l'IA a gagner alors retourner 3 */
}
}
return 0;
}

8
jeu.h
View File

@@ -1,8 +0,0 @@
#ifndef JEU_H
#define JEU_H
int Jeu();
#endif

47
main.c
View File

@@ -1,44 +1,63 @@
#include <graph.h> #include <graph.h>
#include <stdlib.h> #include <stdlib.h>
#include "jeu.h"
#include "menu.h"
#include "comportementJCJ.h"
#include "comportementJCIA.h"
int main (void){ int main (void){
int victoire = 0, choix = 0, SourisX = 0, SourisY = 0; int victoire = 0, choix = 0, SourisX = 0, SourisY = 0;
InitialiserGraphique(); InitialiserGraphique();
CreerFenetre(50, 50, 700, 500); /* Initialise la fenetre puis lance le programme jeu.c qui lancera d'autre programme */ CreerFenetre(50, 50, 700, 500); /* Initialise la fenetre puis lance le programme jeu.c qui lancera d'autre programme */
while(1){ while(1){ /* Boucle infinie pour le jeu la seul façons d'arreter le jeu hors de la croix de la fenetre est de cliquer sur quitter une fois une partie fini */
choix = 0;
SourisX = 0; SourisX = 0;
SourisY = 0; SourisY = 0;
choix = 0;
victoire = 0;
EffacerEcran(CouleurParNom("white")); EffacerEcran(CouleurParNom("white"));
victoire = Jeu(); /* Récupération du numéro du vainceur */ victoire = Jeu(); /* Lance le jeu pour la première fois */
FermerGraphique(); FermerGraphique();
InitialiserGraphique(); InitialiserGraphique();
CreerFenetre(50, 50, 700, 500); CreerFenetre(50, 50, 700, 500);
while(choix == 0){ /* Création de la fenetre qui permet de rejouer ou de quitter */ while(choix == 0){
ChoisirCouleurDessin(CouleurParNom("black")); ChoisirCouleurDessin(CouleurParNom("black"));
DessinerRectangle(100, 100, 200, 50); DessinerRectangle(100, 100, 200, 50);
EcrireTexte(120, 135, "Rejouer ?", 2); EcrireTexte(120, 135, "Rejouer ?", 2); /* Affiche les bouttons pour rejouer ou alors quitter */
DessinerRectangle(400, 100, 200, 50); DessinerRectangle(400, 100, 200, 50);
EcrireTexte(420, 135, "Quitter ?", 2); EcrireTexte(420, 135, "Quitter ?", 2);
while(SourisCliquee()){ if(SourisCliquee()){
SourisX = _X; SourisX = _X;
SourisY = _Y; SourisY = _Y;
} }
if(SourisX <= 300 && SourisX >= 100 && SourisY <= 150 && SourisY >= 100){
choix++; /* Fonction qui dit juste que le joueur veux rejouer donc change la variable de la boucle while */
}else if(SourisX <= 600 && SourisX >= 400 && SourisY <= 150 && SourisY >= 100){
choix = 5;
}
if(victoire == 1){ if(victoire == 1){
EcrireTexte(200, 235, "Joueur 1 a gagner !", 2); EcrireTexte(200, 235, "Joueur 1 a gagner !", 2);
}else if (victoire == 2){ }else if (victoire == 2){
EcrireTexte(200, 235, "Joueur 2 a gagner !", 2); EcrireTexte(200, 235, "Joueur 2 a gagner !", 2); /* Affiche le gagnant */
}else if (victoire == 3){ }else if (victoire == 3){
EcrireTexte(200, 235, "L'IA a gagner !", 2); EcrireTexte(200, 235, "L'IA a gagner !", 2);
} /* Bouton pour quitter ou rejouer */ }
if(SourisX > 100 && SourisX < 300 && SourisY < 150 && SourisY > 100){ if(choix == 5){
choix++; FermerGraphique();
}else if (SourisX > 400 && SourisX < 600 && SourisY < 150 && SourisY > 100){ return EXIT_SUCCESS; /* Ferme le programme */
return EXIT_SUCCESS;
} }
} }
} }
} }
int Jeu(){
int choix[2], taille = 0, victoire = 0;
Menu(choix);
taille = choix[1];
if(choix[0] == 1){
victoire = compJCJ(taille);
}else if (choix[0] == 2){
victoire = compJCIA(taille);
}
return victoire;
}

51
menu.c
View File

@@ -2,9 +2,6 @@
#include "taille.h" #include "taille.h"
#include "nbjoueur.h" #include "nbjoueur.h"
#include "nbjoueur2.h"
#include "boutonJVJ.h"
#include "grille.h"
void Menu(int *retour) { void Menu(int *retour) {
@@ -39,3 +36,51 @@ void Menu(int *retour) {
retour[0] = choix; retour[0] = choix;
retour[1] = echotaille; retour[1] = echotaille;
} }
void Grille(int taille){
int bord = 0, x = 100, xx = 50, y = 100, yy = 100;
ChoisirCouleurDessin(CouleurParNom("Black"));
for(bord = 0; bord < taille; bord++){
DessinerSegment(50, 100, x, 100); /* Dessine le bord du haut de la grille */
x += 50;
}
x -= 50; /* Enlève le surplus de la fonction for */
for(bord = 0; bord <= taille; bord++){
DessinerSegment(50, 100, 50 , y); /* Dessine les barre latérale en fonction de la taille choisie */
DessinerSegment(x, 100, x, y);
y += 50;
}
y -= 50; /* Enlève le surplus de la fonction for */
DessinerSegment(50, y, x, y);
for(bord = 0; bord <= taille; bord++){
DessinerSegment(50, yy, x, yy); /* Dessine les barre horizontale de l'intérieur de la grille */
yy += 50;
}
for(bord = 0; bord <= taille; bord++){
DessinerSegment(xx, 100, xx, y); /* Dessine les barre verticale de l'intérieur de la grille */
xx += 50;
}
}
/* Fonction qui permet de délimiter le clique de la souris pour le bouton de Joueur contre Joueur */
int boutonJVJ(){
int choix = 0, SourisX = 0, SourisY = 0;
while(choix == 0){ /* Boucle effectif tant que le joueur n'a pas fais de choix */
if (SourisCliquee()){ /* Détecte quand le joueur clique et met les coordonées du clique de SourisX et Souris Y */
SourisX = _X;
SourisY = _Y;
}
if(SourisX > 100 && SourisX < 250 && SourisY > 150 && SourisY < 200){
choix = 1; /* Quand le joueur clique dans l'emplacement de Joueur contre Joueur choix = 1 */
}else if(SourisX > 400 && SourisX < 550 && SourisY > 150 && SourisY < 200){
choix = 2; /* Quand le joueur cliqye dans l'emplacement de Joueur contre IA choix = 2 */
}
}
return choix; /* On retourne choix pour que le menu puisse le retourner a jeu.c pour faire la selection de l'ennemie */
}

6
menu.h
View File

@@ -2,8 +2,10 @@
#define MENU_H #define MENU_H
void Menu(int *retour); void Menu(int *retour);
void Grille(int taille);
int boutonJCJ();
#endif #endif

View File

@@ -1,9 +1,12 @@
#include <graph.h> #include <graph.h>
/* /*
* Fonction qui permet de déssiner le bouton du Joueur contre Joueur * Fonction qui permet de déssiner le bouton du Joueur contre Joueur
*/ */
void nbjoueur(){ void nbjoueur(){
int x = 100, xx = 250, y = 150, l = 30, h = 30, angle1 = 20, angle2 = 30; int x = 100, xx = 250, y = 150, l = 30, h = 30, angle1 = 20, angle2 = 30;
ChoisirCouleurDessin(CouleurParNom("Black")); ChoisirCouleurDessin(CouleurParNom("Black"));
@@ -17,3 +20,24 @@ void nbjoueur(){
DessinerSegment(x - 8, y + 9, x - 8, y + 43); DessinerSegment(x - 8, y + 9, x - 8, y + 43);
DessinerSegment(xx + 6, y + 8, xx + 6, y + 43); DessinerSegment(xx + 6, y + 8, xx + 6, y + 43);
} }
/*
* Fonction qui permet de déssiner le bouton du joueur contre IA
*/
void nbjoueur2(){
int x = 400, xx = 550, y = 150, l = 30, h = 30, angle1 = 20, angle2 = 30;
ChoisirCouleurDessin(CouleurParNom("Black"));
DessinerSegment(x, y, xx, y);
DessinerSegment(x - 2, y + 50, xx, y + 50);
EcrireTexte(x + 10, y + 35, "J1 VS IA", 2);
DessinerArc(xx - 23, y - 3, l, h, angle1, angle2);
DessinerArc(x - 9, y - 2, l, h, angle1 + 100, angle2 + 10);
DessinerArc(xx - 23, y + 23, l, h, angle1 + 290, angle2);
DessinerArc(x - 9, y + 23, l, h, angle1 + 180, angle2);
DessinerSegment(x - 8, y + 9, x - 8, y + 43);
DessinerSegment(xx + 6, y + 8, xx + 6, y + 43);
}

View File

@@ -4,5 +4,6 @@
void nbjoueur(); void nbjoueur();
void nbjoueur2();
#endif #endif

View File

@@ -1,19 +0,0 @@
#include <graph.h>
/*
* Fonction qui permet de déssiner le bouton du joueur contre IA
*/
void nbjoueur2(){
int x = 400, xx = 550, y = 150, l = 30, h = 30, angle1 = 20, angle2 = 30;
ChoisirCouleurDessin(CouleurParNom("Black"));
DessinerSegment(x, y, xx, y);
DessinerSegment(x - 2, y + 50, xx, y + 50);
EcrireTexte(x + 10, y + 35, "J1 VS IA", 2);
DessinerArc(xx - 23, y - 3, l, h, angle1, angle2);
DessinerArc(x - 9, y - 2, l, h, angle1 + 100, angle2 + 10);
DessinerArc(xx - 23, y + 23, l, h, angle1 + 290, angle2);
DessinerArc(x - 9, y + 23, l, h, angle1 + 180, angle2);
DessinerSegment(x - 8, y + 9, x - 8, y + 43);
DessinerSegment(xx + 6, y + 8, xx + 6, y + 43);
}

View File

@@ -1,8 +0,0 @@
#ifndef NBJOUEUR2_H
#define NBJOUEUR2_H
void nbjoueur2();
#endif

View File

@@ -7,49 +7,49 @@ void AfficherSelectionBoutton(){
DessinerSegment(100, 200, 150, 200); DessinerSegment(100, 200, 150, 200);
DessinerSegment(100, 100, 100, 200); DessinerSegment(100, 100, 100, 200);
DessinerSegment(150, 100, 150, 200); DessinerSegment(150, 100, 150, 200);
ChargerSprite("3.png"); ChargerSprite("./image/3.png");
AfficherSprite(1, 100, 100); AfficherSprite(1, 100, 100);
DessinerSegment(200, 100, 250, 100); DessinerSegment(200, 100, 250, 100);
DessinerSegment(200, 200, 250, 200); DessinerSegment(200, 200, 250, 200);
DessinerSegment(200, 200, 200, 100); DessinerSegment(200, 200, 200, 100);
DessinerSegment(250, 200, 250, 100); DessinerSegment(250, 200, 250, 100);
ChargerSprite("4.png"); ChargerSprite("./image/4.png");
AfficherSprite(2, 200, 100); AfficherSprite(2, 200, 100);
DessinerSegment(300, 100, 350, 100); DessinerSegment(300, 100, 350, 100);
DessinerSegment(300, 200, 350, 200); DessinerSegment(300, 200, 350, 200);
DessinerSegment(300, 100, 300, 200); DessinerSegment(300, 100, 300, 200);
DessinerSegment(350, 100, 350, 200); DessinerSegment(350, 100, 350, 200);
ChargerSprite("5.png"); ChargerSprite("./image/5.png");
AfficherSprite(3, 300, 100); AfficherSprite(3, 300, 100);
DessinerSegment(400, 100, 450, 100); DessinerSegment(400, 100, 450, 100);
DessinerSegment(400, 200, 450, 200); DessinerSegment(400, 200, 450, 200);
DessinerSegment(400, 100, 400, 200); DessinerSegment(400, 100, 400, 200);
DessinerSegment(450, 100, 450, 200); DessinerSegment(450, 100, 450, 200);
ChargerSprite("6.png"); ChargerSprite("./image/6.png");
AfficherSprite(4, 400, 100); AfficherSprite(4, 400, 100);
DessinerSegment(500, 100, 550, 100); DessinerSegment(500, 100, 550, 100);
DessinerSegment(500, 200, 550, 200); DessinerSegment(500, 200, 550, 200);
DessinerSegment(500, 100, 500, 200); DessinerSegment(500, 100, 500, 200);
DessinerSegment(550, 100, 550, 200); DessinerSegment(550, 100, 550, 200);
ChargerSprite("7.png"); ChargerSprite("./image/7.png");
AfficherSprite(5, 500, 100); AfficherSprite(5, 500, 100);
DessinerSegment(100, 250, 150, 250); DessinerSegment(100, 250, 150, 250);
DessinerSegment(100, 350, 150, 350); DessinerSegment(100, 350, 150, 350);
DessinerSegment(100, 250, 100, 350); DessinerSegment(100, 250, 100, 350);
DessinerSegment(150, 250, 150, 350); DessinerSegment(150, 250, 150, 350);
ChargerSprite("8.png"); ChargerSprite("./image/8.png");
AfficherSprite(6, 100, 250); AfficherSprite(6, 100, 250);
DessinerSegment(200, 250, 250, 250); DessinerSegment(200, 250, 250, 250);
DessinerSegment(200, 350, 250, 350); DessinerSegment(200, 350, 250, 350);
DessinerSegment(200, 250, 200, 350); DessinerSegment(200, 250, 200, 350);
DessinerSegment(250, 250, 250, 350); DessinerSegment(250, 250, 250, 350);
ChargerSprite("9.png"); ChargerSprite("./image/9.png");
AfficherSprite(7, 200, 250); AfficherSprite(7, 200, 250);
} }

View File

@@ -1,14 +0,0 @@
#include <graph.h>
#include "initialisation.h"
void VerifBlock1(int SourisX, int SourisY, int maxX, int maxY, int taille, int* coordoner){
int placementX = 0, placementY = 0;
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
placementX = initialisationXbox(SourisX, maxX, taille);
placementY = initialisationYbox(SourisY, maxY, taille);
}
coordoner[0] = placementX;
coordoner[1] = placementY;
}

View File

@@ -1,7 +0,0 @@
#ifndef VERIFICATIONBLOCK_H
#define VERIFICATIONBLOCK_H
void VerifBlock1(int SourisX, int SourisY, int maxX, int maxY, int taille, int* coordoner);
#endif