Problème afficher par les warning régler en plus de pouvoir rejouer :)

This commit is contained in:
2024-11-19 13:36:11 +01:00
parent 194076b002
commit 52ad6e1bbb
18 changed files with 50 additions and 101 deletions

View File

@@ -1,52 +0,0 @@
Dans le code actuel il faut absolument 1 écran
un où l'on peut choisir la taille de la grille
puis on choisi si il y a un second joueur
Un écran où
un ou l'on peut jouer au jeu
et un où l'on a le gagnant et de choisir entre terminer le programme et commancer une nouvelle partie
dans une partie a un joueur il faudra implémenter un bot pour faire le J2
il faut bien diviser le projet en différent fichier pas plus de une fonction par fichier si possible (VRAIMENT IL FAUT LE FAIRE)
Voici un exemple de tableau pour la grille comme elle est a double entrer donc par exemple si le joueur demande une taille de plateu de 3 ca donnera
11111
10001
10001
10001
11111
car on prend en compte les bordure pour la detection des blocs par rapport au joueur
si il aurais pris 9:
11111111111
10000000001
10000000001
10000000001
10000000001
10000000001
10000000001
10000000001
10000000001
10000000001
11111111111
On fait taille du tableau +2 pour prendre en compte la bordure
création des fichier nbjoueur pour faire des boutton clicable pour sélectionner le nombre de joueur

View File

@@ -195,4 +195,5 @@ int compJCJ(int taille){
tour = 0; tour = 0;
} }
} }
return 0;
} }

View File

@@ -1,5 +1,5 @@
int coordonerX(int SourisX){ int coordonerX(int SourisX){
int x = 0, z = 0; int x = 0, z = 0; /* Retourne les coordoner précis de X pour l'affichage de l'image */
for(z = 50; z <= 500; z += 50){ for(z = 50; z <= 500; z += 50){
if(SourisX > z){ if(SourisX > z){
x = z + 5; x = z + 5;
@@ -10,7 +10,7 @@ int coordonerX(int SourisX){
int coordonerY(int SourisY){ int coordonerY(int SourisY){
int x = 0, z = 0; int x = 0, z = 0; /* Retourn les coordoner précis de Y pour l'affichage de l'image */
for(z = 100; z <= 550; z += 50){ for(z = 100; z <= 550; z += 50){
if(SourisY > z){ if(SourisY > z){
x = z + 5; x = z + 5;

View File

@@ -10,7 +10,7 @@
* 9 : x = 500 y = 550 * 9 : x = 500 y = 550
*/ */
int DefMaxX(int taille){ int DefMaxX(int taille){ /* Retourne les coordonées maximale de X par rapport a la taille du tableau selectionner */
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 +24,7 @@ int DefMaxX(int taille){
return maxX; return maxX;
} }
int DefMaxY(int taille){ int DefMaxY(int taille){ /* Retourne les coordonées maximale de Y par rapport a la taille du tableau selectionner */
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,7 +1,7 @@
#include <graph.h> #include <graph.h>
void Efface(void){ void Efface(void){ /* Fonction de feignant qui me permet juste d'effacer le haut de l'affichage de la partie */
ChoisirCouleurDessin(CouleurParNom("white")); ChoisirCouleurDessin(CouleurParNom("white"));
RemplirRectangle(0, 0, 650, 50); RemplirRectangle(0, 0, 650, 50);
ChoisirCouleurDessin(CouleurParNom("black")); ChoisirCouleurDessin(CouleurParNom("black"));

View File

@@ -8,13 +8,13 @@ void Grille(int taille){
DessinerSegment(50, 100, x, 100); /* Dessine le bord du haut de la grille */ DessinerSegment(50, 100, x, 100); /* Dessine le bord du haut de la grille */
x += 50; x += 50;
} }
x -= 50; /* Enlève le surplus de la fonction for */ x -= 50; /* Enlève le surplus de la fonction for */
for(bord = 0; bord <= taille; bord++){ for(bord = 0; bord <= taille; bord++){
DessinerSegment(50, 100, 50 , y); /* Dessine les barre latérale en fonction de la taille choisie */ DessinerSegment(50, 100, 50 , y); /* Dessine les barre latérale en fonction de la taille choisie */
DessinerSegment(x, 100, x, y); DessinerSegment(x, 100, x, y);
y += 50; y += 50;
} }
y -= 50; /* Enlève le surplus de la fonction for */ y -= 50; /* Enlève le surplus de la fonction for */
DessinerSegment(50, y, x, y); DessinerSegment(50, y, x, y);
for(bord = 0; bord <= taille; bord++){ for(bord = 0; bord <= taille; bord++){
DessinerSegment(50, yy, x, yy); /* Dessine les barre horizontale de l'intérieur de la grille */ DessinerSegment(50, yy, x, yy); /* Dessine les barre horizontale de l'intérieur de la grille */

View File

@@ -1,4 +1,4 @@
int initialisationX(int SourisX, int maxX, int taille){ 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 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){
@@ -12,7 +12,7 @@ int initialisationX(int SourisX, int maxX, int taille){
return casejoueur; return casejoueur;
} }
int initialisationY(int SourisY, int maxY, int taille){ 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 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){
@@ -28,7 +28,7 @@ int initialisationY(int SourisY, int maxY, int taille){
int initialisationXbox(int SourisX, int maxX, int taille){ int initialisationXbox(int SourisX, int maxX, int taille){ /* Retourne X de la case du bloc que l'on veux placer */
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){
@@ -43,7 +43,7 @@ int initialisationXbox(int SourisX, int maxX, int taille){
} }
int initialisationYbox(int SourisY, int maxY, int taille){ int initialisationYbox(int SourisY, int maxY, int taille){ /* Retourne Y de la case du bloc que l'on veux placer */
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){

15
jeu.c
View File

@@ -6,21 +6,22 @@
int Jeu(){ int Jeu(){
int choix[2], taille = 0, victoire = 0; int choix[2], taille = 0, victoire = 0;
Menu(choix); Menu(choix); /* Affiche le menu */
taille = choix[1]; taille = choix[1];
if(choix[0] == 1){ if(choix[0] == 1){ /* Si l'utilisateur choisie Player VS Player */
victoire = compJCJ(taille); victoire = compJCJ(taille);
if(victoire == 1){ if(victoire == 1){ /* Si le joueur 1 a gagner alors retourner 1 */
return 1; return 1;
}else if(victoire == 2){ }else if(victoire == 2){
return 2; return 2; /* Si le joueur 2 a gagner alors retourner 2 */
} }
}else if (choix[0] == 2){ }else if (choix[0] == 2){ /* Si l'utilisateur choisie Player VS IA */
compJCIA(taille); compJCIA(taille);
if(victoire == 1){ if(victoire == 1){
return 1; return 1; /* Si le joueur 1 a gagner alors retourner 1 */
}else if(victoire == 3){ }else if(victoire == 3){
return 3; return 3; /* Si l'IA a gagner alors retourner 3 */
} }
} }
return 0;
} }

32
main.c
View File

@@ -1,34 +1,42 @@
#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){
SourisX = 0;
SourisY = 0;
choix = 0;
victoire = 0;
EffacerEcran(CouleurParNom("white")); EffacerEcran(CouleurParNom("white"));
victoire = Jeu(); victoire = Jeu(); /* Récupération du numéro du vainceur */
printf("victoire : %d\n", victoire);
FermerGraphique(); FermerGraphique();
InitialiserGraphique(); InitialiserGraphique();
CreerFenetre(50, 50, 700, 500); CreerFenetre(50, 50, 700, 500);
while(choix == 0){ while(choix == 0){ /* Création de la fenetre qui permet de rejouer ou de quitter */
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);
DessinerRectangle(400, 100, 200, 50); DessinerRectangle(400, 100, 200, 50);
EcrireTexte(420, 135, "Quitter ?", 2); EcrireTexte(420, 135, "Quitter ?", 2);
if(victoire == 1){ while(SourisCliquee()){
EcrireTexte(300, 235, "Joueur 1 a gagner !", 2); SourisX = _X;
}else if (victoire == 2){ SourisY = _Y;
EcrireTexte(300, 235, "Joueur 2 a gagner !", 2);
} }
if(choix == 5){ if(victoire == 1){
EcrireTexte(200, 235, "Joueur 1 a gagner !", 2);
}else if (victoire == 2){
EcrireTexte(200, 235, "Joueur 2 a gagner !", 2);
}else if (victoire == 3){
EcrireTexte(200, 235, "L'IA a gagner !", 2);
} /* Bouton pour quitter ou rejouer */
if(SourisX > 100 && SourisX < 300 && SourisY < 150 && SourisY > 100){
choix++;
}else if (SourisX > 400 && SourisX < 600 && SourisY < 150 && SourisY > 100){
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
} }

2
menu.c
View File

@@ -7,7 +7,7 @@
#include "grille.h" #include "grille.h"
int Menu(int *retour) { void Menu(int *retour) {
int x = 50, y = 50, taille = -5, choix = 0, echotaille = 0, verrou = 0; /* initialisation des variable */ int x = 50, y = 50, taille = -5, choix = 0, echotaille = 0, verrou = 0; /* initialisation des variable */
couleur c = CouleurParNom("white"); couleur c = CouleurParNom("white");
while(choix == 0){ /* Condition pour que le menu s'arrête quand le joueur aura selectionner le nombre de joueur */ while(choix == 0){ /* Condition pour que le menu s'arrête quand le joueur aura selectionner le nombre de joueur */

2
menu.h
View File

@@ -4,6 +4,6 @@
int Menu(int *retour); void Menu(int *retour);
#endif #endif

View File

@@ -1,13 +1,10 @@
#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(){
int 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"));
DessinerSegment(x, y, xx, y); DessinerSegment(x, y, xx, y);

View File

@@ -2,7 +2,7 @@
#define NBJOUEUR_H #define NBJOUEUR_H
int nbjoueur(); void nbjoueur();
#endif #endif

View File

@@ -1,14 +1,10 @@
#include <graph.h> #include <graph.h>
/* /*
* Fonction qui permet de déssiner le bouton du joueur contre IA * Fonction qui permet de déssiner le bouton du joueur contre IA
*/ */
void nbjoueur2(){
int nbjoueur2(){
int x = 400, xx = 550, y = 150, l = 30, h = 30, angle1 = 20, angle2 = 30; int x = 400, xx = 550, y = 150, l = 30, h = 30, angle1 = 20, angle2 = 30;
ChoisirCouleurDessin(CouleurParNom("Black")); ChoisirCouleurDessin(CouleurParNom("Black"));
DessinerSegment(x, y, xx, y); DessinerSegment(x, y, xx, y);

View File

@@ -2,7 +2,7 @@
#define NBJOUEUR2_H #define NBJOUEUR2_H
int nbjoueur2(); void nbjoueur2();
#endif #endif

View File

@@ -82,7 +82,5 @@ int GererChoixTaille(){
taille = 9; taille = 9;
} }
} }
if(taille != 0){ return taille;
return taille; }
}
}

View File

@@ -3,7 +3,7 @@
#include "initialisation.h" #include "initialisation.h"
int VerifBlock1(int SourisX, int SourisY, int maxX, int maxY, int taille, int* coordoner){ void VerifBlock1(int SourisX, int SourisY, int maxX, int maxY, int taille, int* coordoner){
int placementX = 0, placementY = 0; int placementX = 0, placementY = 0;
if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){ if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){
placementX = initialisationXbox(SourisX, maxX, taille); placementX = initialisationXbox(SourisX, maxX, taille);

View File

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