Le projet est fini la il manque le rapport et quelque changement des fichiers pour qu'il n'y ait pas de fichier ou il n'y a qu'une seul fonction
This commit is contained in:
5
Makefile
5
Makefile
@@ -6,7 +6,6 @@ but : game
|
|||||||
|
|
||||||
OFILES = taille.o \
|
OFILES = taille.o \
|
||||||
menu.o \
|
menu.o \
|
||||||
grille.o \
|
|
||||||
nbjoueur.o \
|
nbjoueur.o \
|
||||||
nbjoueur2.o \
|
nbjoueur2.o \
|
||||||
boutonJVJ.o \
|
boutonJVJ.o \
|
||||||
@@ -27,7 +26,7 @@ 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 nbjoueur2.h boutonJVJ.h
|
||||||
|
|
||||||
taille.o : taille.h jeu.h
|
taille.o : taille.h jeu.h
|
||||||
|
|
||||||
@@ -49,8 +48,6 @@ boutonJVJ.o : boutonJVJ.h
|
|||||||
|
|
||||||
nbjoueur2.o : nbjoueur2.h
|
nbjoueur2.o : nbjoueur2.h
|
||||||
|
|
||||||
grille.o : grille.h
|
|
||||||
|
|
||||||
jeu.o : jeu.h menu.h comportementJCJ.h comportementJCIA.h
|
jeu.o : jeu.h menu.h comportementJCJ.h comportementJCIA.h
|
||||||
|
|
||||||
main.o : jeu.h
|
main.o : jeu.h
|
||||||
|
|||||||
@@ -1,6 +1,196 @@
|
|||||||
#include <graph.h>
|
#include <graph.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#include "definirMaxXY.h"
|
||||||
|
#include "initialisation.h"
|
||||||
|
#include "coordoner.h"
|
||||||
|
#include "effacehaut.h"
|
||||||
|
#include "verificationblock.h"
|
||||||
|
|
||||||
|
|
||||||
void compJCIA(int taille){
|
int compJCIA(int taille){
|
||||||
DessinerSegment(1, 1, 100, 100);
|
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 emplacementcooX1 = 0, emplacementcooX2 = 0, emplacementcooY1 = 0, emplacementcooY2 = 0;
|
||||||
|
int grille[taille+2][taille+2];
|
||||||
|
int empblock[4] = {0, 0, 0, 0}, empperso[4] = {0, 0, 0, 0};
|
||||||
|
maxX = DefMaxX(taille);
|
||||||
|
maxY = DefMaxY(taille);
|
||||||
|
for(tabx = 0; tabx < taille + 2; tabx++){
|
||||||
|
for(taby = 0; taby < taille + 2; taby++){
|
||||||
|
grille[tabx][taby] = 0;
|
||||||
|
if(taby == 0 || taby == taille + 1 || tabx == 0 || tabx == taille + 1){
|
||||||
|
grille[tabx][taby] = 9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EcrireTexte(30, 40, "Joueur 1 choisissez l'emplacement de base du pion 1", 1);
|
||||||
|
while(initi == 0){
|
||||||
|
if(SourisCliquee()){
|
||||||
|
SourisX = _X;
|
||||||
|
SourisY = _Y;
|
||||||
|
}
|
||||||
|
if(initialiser == 0){
|
||||||
|
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
|
||||||
|
ChargerSprite("pion1.png");
|
||||||
|
joueurx1 = initialisationX(SourisX, maxX, taille);
|
||||||
|
joueury1 = initialisationY(SourisY, maxY, taille);
|
||||||
|
emplacementcooX1 = coordonerX(SourisX);
|
||||||
|
emplacementcooY1 = coordonerY(SourisY);
|
||||||
|
AfficherSprite(1, emplacementcooX1, emplacementcooY1);
|
||||||
|
grille[joueury1][joueurx1] = 1;
|
||||||
|
initialiser++;
|
||||||
|
SourisX = 0;
|
||||||
|
SourisY = 0;
|
||||||
|
Efface();
|
||||||
|
EcrireTexte(30, 40, "Joueur 2 choisissez l'emplacement de base du pion 2", 1);
|
||||||
|
}
|
||||||
|
}else if (initialiser == 1){
|
||||||
|
SourisX = rand() % maxX;
|
||||||
|
SourisY = rand() % maxY;
|
||||||
|
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
|
||||||
|
ChargerSprite("pion2.png");
|
||||||
|
joueurx2 = initialisationX(SourisX, maxX, taille);
|
||||||
|
joueury2 = initialisationY(SourisY, maxY, taille);
|
||||||
|
if(grille[joueury2][joueurx2] != 1){
|
||||||
|
emplacementcooX2 = coordonerX(SourisX);
|
||||||
|
emplacementcooY2 = coordonerY(SourisY);
|
||||||
|
AfficherSprite(2, emplacementcooX2, emplacementcooY2);
|
||||||
|
grille[joueury2][joueurx2] = 2;
|
||||||
|
initialiser++;
|
||||||
|
initi++;
|
||||||
|
}
|
||||||
|
SourisX = 0;
|
||||||
|
SourisY = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ChargerSprite("croix1.png");
|
||||||
|
ChargerSprite("croix2.png");
|
||||||
|
while(fin == 0){
|
||||||
|
if(tour == 0){
|
||||||
|
Efface();
|
||||||
|
EcrireTexte(30, 40, "Tour du joueur 1", 2);
|
||||||
|
SourisX = 0;
|
||||||
|
SourisY = 0;
|
||||||
|
while(placer == 1){
|
||||||
|
if(SourisCliquee()){
|
||||||
|
SourisX = _X;
|
||||||
|
SourisY = _Y;
|
||||||
|
}
|
||||||
|
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){
|
||||||
|
LibererSprite(1);
|
||||||
|
LibererSprite(2);
|
||||||
|
LibererSprite(3);
|
||||||
|
LibererSprite(4);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
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)){
|
||||||
|
grille[joueury1][joueurx1] = 0;
|
||||||
|
ChoisirCouleurDessin(CouleurParNom("white"));
|
||||||
|
RemplirRectangle(emplacementcooX1, emplacementcooY1, 40, 40);
|
||||||
|
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||||
|
joueurx1 = empperso[0];
|
||||||
|
joueury1 = empperso[1];
|
||||||
|
empperso[2] = coordonerX(SourisX);
|
||||||
|
empperso[3] = coordonerY(SourisY);
|
||||||
|
grille[empperso[1]][empperso[0]] = 1;
|
||||||
|
AfficherSprite(1, empperso[2], empperso[3]);
|
||||||
|
emplacementcooX1 = empperso[2];
|
||||||
|
emplacementcooY1 = empperso[3];
|
||||||
|
placer = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
empperso[0] = 0;
|
||||||
|
placer = 1;
|
||||||
|
tour++;
|
||||||
|
}else if(tour == 1){
|
||||||
|
Efface();
|
||||||
|
EcrireTexte(30, 40, "Joueur 1 place le bloc", 2);
|
||||||
|
SourisX = 0;
|
||||||
|
SourisY = 0;
|
||||||
|
while(placer == 1){
|
||||||
|
if(SourisCliquee()){
|
||||||
|
SourisX = _X;
|
||||||
|
SourisY = _Y;
|
||||||
|
}
|
||||||
|
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock);
|
||||||
|
if(empblock[0] != 0){
|
||||||
|
if(grille[empblock[1]][empblock[0]] == 0){
|
||||||
|
empblock[2] = coordonerX(SourisX);
|
||||||
|
empblock[3] = coordonerY(SourisY);
|
||||||
|
grille[empblock[1]][empblock[0]] = 3;
|
||||||
|
AfficherSprite(3, empblock[2], empblock[3]);
|
||||||
|
placer = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
empblock[0] = 0;
|
||||||
|
placer = 1;
|
||||||
|
tour++;
|
||||||
|
}else if(tour == 2){
|
||||||
|
Efface();
|
||||||
|
EcrireTexte(30, 40, "Tour du joueur 2", 2);
|
||||||
|
SourisX = 0;
|
||||||
|
SourisY = 0;
|
||||||
|
while(placer == 1){
|
||||||
|
SourisX = rand() % maxX;
|
||||||
|
SourisY = rand() % maxY;
|
||||||
|
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){
|
||||||
|
LibererSprite(1);
|
||||||
|
LibererSprite(2);
|
||||||
|
LibererSprite(3);
|
||||||
|
LibererSprite(4);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
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)){
|
||||||
|
grille[joueury2][joueurx2] = 0;
|
||||||
|
ChoisirCouleurDessin(CouleurParNom("white"));
|
||||||
|
RemplirRectangle(emplacementcooX2, emplacementcooY2, 40, 40);
|
||||||
|
ChoisirCouleurDessin(CouleurParNom("black"));
|
||||||
|
joueurx2 = empperso[0];
|
||||||
|
joueury2 = empperso[1];
|
||||||
|
empperso[2] = coordonerX(SourisX);
|
||||||
|
empperso[3] = coordonerY(SourisY);
|
||||||
|
grille[empperso[1]][empperso[0]] = 2;
|
||||||
|
AfficherSprite(2, empperso[2], empperso[3]);
|
||||||
|
emplacementcooX2 = empperso[2];
|
||||||
|
emplacementcooY2 = empperso[3];
|
||||||
|
placer = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
empperso[0] = 0;
|
||||||
|
placer = 1;
|
||||||
|
tour++;
|
||||||
|
|
||||||
|
}else if(tour == 3){
|
||||||
|
Efface();
|
||||||
|
EcrireTexte(30, 40, "Joueur 2 place le bloc", 2);
|
||||||
|
SourisX = 0;
|
||||||
|
SourisY = 0;
|
||||||
|
while(placer == 1){
|
||||||
|
SourisX = rand() % maxX;
|
||||||
|
SourisY = rand() % maxY;
|
||||||
|
VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock);
|
||||||
|
if(empblock[0] != 0){
|
||||||
|
if(grille[empblock[1]][empblock[0]] == 0){
|
||||||
|
empblock[2] = coordonerX(SourisX);
|
||||||
|
empblock[3] = coordonerY(SourisY);
|
||||||
|
grille[empblock[1]][empblock[0]] = 4;
|
||||||
|
AfficherSprite(4, empblock[2], empblock[3]);
|
||||||
|
placer = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
empblock[0] = 0;
|
||||||
|
placer = 1;
|
||||||
|
tour = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
27
grille.c
27
grille.c
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
9
grille.h
9
grille.h
@@ -1,9 +0,0 @@
|
|||||||
#ifndef GRILLE_H
|
|
||||||
#define GRILLE_H
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Grille(int taille);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
20
main.c
20
main.c
@@ -1,19 +1,18 @@
|
|||||||
#include <graph.h>
|
#include <graph.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "jeu.h"
|
#include "jeu.h"
|
||||||
|
|
||||||
int main (void){
|
int main (void){
|
||||||
int victoire = 0, choix = 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){
|
||||||
|
choix = 0;
|
||||||
|
SourisX = 0;
|
||||||
|
SourisY = 0;
|
||||||
EffacerEcran(CouleurParNom("white"));
|
EffacerEcran(CouleurParNom("white"));
|
||||||
victoire = Jeu();
|
victoire = Jeu();
|
||||||
printf("victoire : %d\n", victoire);
|
|
||||||
FermerGraphique();
|
FermerGraphique();
|
||||||
InitialiserGraphique();
|
InitialiserGraphique();
|
||||||
CreerFenetre(50, 50, 700, 500);
|
CreerFenetre(50, 50, 700, 500);
|
||||||
@@ -23,10 +22,21 @@ int main (void){
|
|||||||
EcrireTexte(120, 135, "Rejouer ?", 2);
|
EcrireTexte(120, 135, "Rejouer ?", 2);
|
||||||
DessinerRectangle(400, 100, 200, 50);
|
DessinerRectangle(400, 100, 200, 50);
|
||||||
EcrireTexte(420, 135, "Quitter ?", 2);
|
EcrireTexte(420, 135, "Quitter ?", 2);
|
||||||
|
if(SourisCliquee()){
|
||||||
|
SourisX = _X;
|
||||||
|
SourisY = _Y;
|
||||||
|
}
|
||||||
|
if(SourisX <= 300 && SourisX >= 100 && SourisY <= 150 && SourisY >= 100){
|
||||||
|
choix++;
|
||||||
|
}else if(SourisX <= 600 && SourisX >= 400 && SourisY <= 150 && SourisY >= 100){
|
||||||
|
choix = 5;
|
||||||
|
}
|
||||||
if(victoire == 1){
|
if(victoire == 1){
|
||||||
EcrireTexte(300, 235, "Joueur 1 a gagner !", 2);
|
EcrireTexte(300, 235, "Joueur 1 a gagner !", 2);
|
||||||
}else if (victoire == 2){
|
}else if (victoire == 2){
|
||||||
EcrireTexte(300, 235, "Joueur 2 a gagner !", 2);
|
EcrireTexte(300, 235, "Joueur 2 a gagner !", 2);
|
||||||
|
}else if (victoire == 3){
|
||||||
|
EcrireTexte(300, 235, "L'IA a gagner !", 2);
|
||||||
}
|
}
|
||||||
if(choix == 5){
|
if(choix == 5){
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
|
|||||||
29
menu.c
29
menu.c
@@ -4,7 +4,6 @@
|
|||||||
#include "nbjoueur.h"
|
#include "nbjoueur.h"
|
||||||
#include "nbjoueur2.h"
|
#include "nbjoueur2.h"
|
||||||
#include "boutonJVJ.h"
|
#include "boutonJVJ.h"
|
||||||
#include "grille.h"
|
|
||||||
|
|
||||||
|
|
||||||
int Menu(int *retour) {
|
int Menu(int *retour) {
|
||||||
@@ -39,3 +38,31 @@ int 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user