Correction d'un beug et ajout de commentaire plus organisation de code
| @@ -1,6 +1,7 @@ | ||||
| #include <graph.h> | ||||
| #include <time.h> | ||||
|  | ||||
|  | ||||
| #include "definirMaxXY.h" | ||||
| #include "initialisation.h" | ||||
| #include "coordoner.h" | ||||
| @@ -13,49 +14,51 @@ int compJCIA(int taille){ | ||||
| 	int grille[taille+2][taille+2]; | ||||
| 	int empblock[4] = {0, 0, 0, 0}, empperso[4] = {0, 0, 0, 0}; | ||||
| 	srand(time(NULL)); | ||||
| 	maxX = DefMaxX(taille); | ||||
| 	maxX = DefMaxX(taille);		/* Définie les positions maximum de la grille */ | ||||
| 	maxY = DefMaxY(taille); | ||||
| 	for(tabx = 0; tabx < taille + 2; tabx++){ | ||||
| 		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){ | ||||
| 				grille[tabx][taby] = 9; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	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()){ | ||||
| 			SourisX = _X; | ||||
| 			SourisY = _Y; | ||||
| 		} | ||||
| 		if(initialiser == 0){ | ||||
| 			if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){ | ||||
| 				ChargerSprite("pion1.png"); | ||||
| 				joueurx1 = initialisationX(SourisX, maxX, taille); | ||||
| 				/* Change a l'index du tableau une valeur pour colision et affiche le sprote sur la case correspondante */ | ||||
| 				ChargerSprite("./image/pion1.png"); | ||||
| 				joueurx1 = initialisationX(SourisX, maxX, taille);	/* renvoie l'index de la case cliquee */ | ||||
| 				joueury1 = initialisationY(SourisY, maxY, taille); | ||||
| 				emplacementcooX1 = coordonerX(SourisX); | ||||
| 				emplacementcooX1 = coordonerX(SourisX);		/* renvoie les coordoner qui a été cliquee dans la grille */ | ||||
| 				emplacementcooY1 = coordonerY(SourisY); | ||||
| 				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++; | ||||
| 				SourisX = 0; | ||||
| 				SourisY = 0; | ||||
| 				EffaceIA(); | ||||
| 				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; | ||||
| 			SourisY = rand() % maxY;	/* Voici l'IA */ | ||||
| 			if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){ | ||||
| 				ChargerSprite("pion2.png"); | ||||
| 				joueurx2 = initialisationX(SourisX, maxX, taille); | ||||
| 				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); | ||||
| 					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; | ||||
| 					grille[joueury2][joueurx2] = 2;			/* change a l'index la valeur pour la colision */ | ||||
| 					initialiser++; | ||||
| 					initi++; | ||||
| 				} | ||||
| @@ -64,11 +67,11 @@ int compJCIA(int taille){ | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	ChargerSprite("croix1.png"); | ||||
| 	ChargerSprite("croix2.png"); | ||||
| 	ChargerSprite("./image/croix1.png");	/* charge les images des blocks */ | ||||
| 	ChargerSprite("./image/croix2.png"); | ||||
| 	while(fin == 0){ | ||||
| 		if(tour == 0){ | ||||
| 			EffaceIA(); | ||||
| 			EffaceIA();	/* efface l'affichage des tours */ | ||||
| 			EcrireTexte(30, 40, "Tour du joueur 1", 2); | ||||
| 			SourisX = 0; | ||||
| 			SourisY = 0; | ||||
| @@ -78,87 +81,87 @@ int compJCIA(int taille){ | ||||
| 					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){ | ||||
| 				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(2); | ||||
| 					LibererSprite(2);	/* verification des conditions de victoire */ | ||||
| 					LibererSprite(3); | ||||
| 					LibererSprite(4); | ||||
| 					return 3; | ||||
| 					return 3;		/* arrete le programme et indique qui a gagner (le 3 car c'est contre l'IA) */ | ||||
| 				} | ||||
| 				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; | ||||
| 						grille[joueury1][joueurx1] = 0;		/* Change l'emplacement précedent pour le rendre disponible */ | ||||
| 						ChoisirCouleurDessin(CouleurParNom("white")); | ||||
| 						RemplirRectangle(emplacementcooX1, emplacementcooY1, 40, 40); | ||||
| 						RemplirRectangle(emplacementcooX1, emplacementcooY1, 40, 40);	/* Efface le spite a l'ancien emplacement */ | ||||
| 						ChoisirCouleurDessin(CouleurParNom("black")); | ||||
| 						joueurx1 = empperso[0]; | ||||
| 						joueurx1 = empperso[0];		/* donne l'index de la grille par rapport au clique effectuer */ | ||||
| 						joueury1 = empperso[1]; | ||||
| 						empperso[2] = coordonerX(SourisX); | ||||
| 						empperso[2] = coordonerX(SourisX);	/* donne les coordonnés du clique sur la grille */ | ||||
| 						empperso[3] = coordonerY(SourisY); | ||||
| 						grille[empperso[1]][empperso[0]] = 1; | ||||
| 						AfficherSprite(1, empperso[2], empperso[3]); | ||||
| 						grille[empperso[1]][empperso[0]] = 1;	/* change la valeur pour la colision */ | ||||
| 						AfficherSprite(1, empperso[2], empperso[3]);	/* Affiche le sprite a l'emplacement demander */ | ||||
| 						emplacementcooX1 = empperso[2]; | ||||
| 						emplacementcooY1 = empperso[3]; | ||||
| 						emplacementcooY1 = empperso[3];		/* Recupère l'ancient index pour le supprimer plus tard */ | ||||
| 						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; | ||||
| 			tour++; | ||||
| 		}else if(tour == 1){ | ||||
| 			EffaceIA(); | ||||
| 			EffaceIA();		/* Efface l'ancient emplacement du haut de l'affichage */ | ||||
| 			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; | ||||
| 			while(placer == 1){ | ||||
| 				if(SourisCliquee()){ | ||||
| 					SourisX = _X; | ||||
| 					SourisY = _Y; | ||||
| 				} | ||||
| 				}		/* Prend les coordoner de la souris cliquee */ | ||||
| 				VerifBlock1(SourisX, SourisY, maxX, maxY, taille, empblock); | ||||
| 				if(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); | ||||
| 						grille[empblock[1]][empblock[0]] = 3; | ||||
| 						AfficherSprite(3, empblock[2], empblock[3]); | ||||
| 						grille[empblock[1]][empblock[0]] = 3;	/* change l'index de colision */ | ||||
| 						AfficherSprite(3, empblock[2], empblock[3]);	/* Affiche le sprite */ | ||||
| 						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; | ||||
| 			tour++; | ||||
| 		}else if(tour == 2){ | ||||
| 			EffaceIA(); | ||||
| 			EffaceIA();		/* Efface l'affichage du haut de l'écran */ | ||||
|                         EcrireTexte(30, 40, "Tour du joueur 2", 2); | ||||
|                         SourisX = 0; | ||||
|                         SourisX = 0;		/* remet a zero les variable Souris */ | ||||
|                         SourisY = 0; | ||||
|                         while(placer == 1){ | ||||
|                                 SourisX = rand() % maxX; | ||||
|                                 SourisX = rand() % maxX;	/* Le code de l'IA pour l'IA */ | ||||
|                                 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){ | ||||
| 				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(2); | ||||
| 					LibererSprite(3); | ||||
| 					LibererSprite(3);	/* condition de perte pour l'IA */ | ||||
| 					LibererSprite(4); | ||||
| 					return 1; | ||||
| 					return 1;		/* retourne 1 pour dire que le joueur 1 a gagner */ | ||||
| 				} | ||||
|                                 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; | ||||
|                                                 grille[joueury2][joueurx2] = 0;		/* met a l'index précedent a zero */ | ||||
|                                                 ChoisirCouleurDessin(CouleurParNom("white")); | ||||
|                                                 RemplirRectangle(emplacementcooX2, emplacementcooY2, 40, 40); | ||||
|                                                 RemplirRectangle(emplacementcooX2, emplacementcooY2, 40, 40);	/* supprime le sprite de l'emplacement précedant */ | ||||
|                                                 ChoisirCouleurDessin(CouleurParNom("black")); | ||||
|                                                 joueurx2 = empperso[0]; | ||||
|                                                 joueurx2 = empperso[0];			/* Change les anciennes donner par les nouvelles donner */ | ||||
|                                                 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); | ||||
|                                                 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]); | ||||
|                                                 emplacementcooX2 = empperso[2]; | ||||
|                                                 emplacementcooX2 = empperso[2];		/* met le nouvelle emplacement dans l'ancien */ | ||||
|                                                 emplacementcooY2 = empperso[3]; | ||||
|                                                 placer = 0; | ||||
|                                         } | ||||
| @@ -174,12 +177,12 @@ int compJCIA(int taille){ | ||||
| 			SourisX = 0; | ||||
| 			SourisY = 0; | ||||
| 			while(placer == 1){ | ||||
| 				SourisX = rand() % maxX; | ||||
| 				SourisX = rand() % maxX;		/* code de l'IA */ | ||||
| 				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[2] = coordonerX(SourisX);	/* même chose que précedemment */ | ||||
| 						empblock[3] = coordonerY(SourisY); | ||||
| 						grille[empblock[1]][empblock[0]] = 4; | ||||
| 						AfficherSprite(4, empblock[2], empblock[3]); | ||||
| @@ -197,6 +200,6 @@ int compJCIA(int taille){ | ||||
|  | ||||
| void EffaceIA(){ | ||||
| 	ChoisirCouleurDessin(CouleurParNom("white")); | ||||
| 	RemplirRectangle(0, 0, 650, 50); | ||||
| 	RemplirRectangle(0, 0, 650, 50);			/* Fonction qui supprime l'affichage des tours */ | ||||
| 	ChoisirCouleurDessin(CouleurParNom("black")); | ||||
| } | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| #define COMPORTEMENTJCIA_H | ||||
|  | ||||
|  | ||||
| void compJCIA(int taille); | ||||
| int compJCIA(int taille); | ||||
|  | ||||
| void EffaceIA(); | ||||
|  | ||||
|   | ||||
| @@ -12,30 +12,30 @@ int compJCJ(int taille){ | ||||
|         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); | ||||
| 	maxX = DefMaxX(taille);			/* Defini les maximum de X et Y */ | ||||
| 	maxY = DefMaxY(taille); | ||||
| 	for(tabx = 0; tabx < taille + 2; tabx++){ | ||||
| 		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){ | ||||
| 				grille[tabx][taby] = 9; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	EcrireTexte(30, 40, "Joueur 1 choisissez l'emplacement de base du pion 1", 1); | ||||
| 	while(initi == 0){ | ||||
| 		if(SourisCliquee()){ | ||||
| 	while(initi == 0){		/* Initialise la position des deux joueurs */ | ||||
| 		if(SourisCliquee()){	/* Recupère les coordonées de la souris */ | ||||
| 			SourisX = _X; | ||||
| 			SourisY = _Y; | ||||
| 		} | ||||
| 		if(initialiser == 0){ | ||||
| 			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); | ||||
| 				joueury1 = initialisationY(SourisY, maxY, taille); | ||||
| 				emplacementcooX1 = coordonerX(SourisX); | ||||
| 				emplacementcooY1 = coordonerY(SourisY); | ||||
| 				AfficherSprite(1, emplacementcooX1, emplacementcooY1); | ||||
| 				AfficherSprite(1, emplacementcooX1, emplacementcooY1);	/* Affiche le sprite */ | ||||
| 				grille[joueury1][joueurx1] = 1; | ||||
| 				initialiser++; | ||||
| 				SourisX = 0; | ||||
| @@ -45,10 +45,10 @@ int compJCJ(int taille){ | ||||
| 			} | ||||
| 		}else if (initialiser == 1){ | ||||
| 			if(SourisX >= 50 && SourisX <= maxX && SourisY >= 100 && SourisY <= maxY){ | ||||
| 				ChargerSprite("pion2.png"); | ||||
| 				ChargerSprite("./image/pion2.png"); | ||||
| 				joueurx2 = initialisationX(SourisX, maxX, 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); | ||||
| 					emplacementcooY2 = coordonerY(SourisY); | ||||
| 					AfficherSprite(2, emplacementcooX2, emplacementcooY2); | ||||
| @@ -60,24 +60,24 @@ int compJCJ(int taille){ | ||||
| 				SourisY = 0; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	ChargerSprite("croix1.png"); | ||||
| 	ChargerSprite("croix2.png"); | ||||
| 	}					/* Charge les sprites */ | ||||
| 	ChargerSprite("./image/croix1.png"); | ||||
| 	ChargerSprite("./image/croix2.png"); | ||||
| 	while(fin == 0){ | ||||
| 		if(tour == 0){ | ||||
| 		if(tour == 0){		/* Tour du joueur 1 */ | ||||
| 			Efface(); | ||||
| 			EcrireTexte(30, 40, "Tour du joueur 1", 2); | ||||
| 			SourisX = 0; | ||||
| 			SourisY = 0; | ||||
| 			while(placer == 1){ | ||||
| 				if(SourisCliquee()){ | ||||
| 					SourisX = _X; | ||||
| 					SourisX = _X;	/* Recupere les coordonnées de la souris X et Y */ | ||||
| 					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){ | ||||
| 				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(2); | ||||
| 					LibererSprite(2);		/* condition de victoire */ | ||||
| 					LibererSprite(3); | ||||
| 					LibererSprite(4); | ||||
| 					return 2; | ||||
| @@ -86,7 +86,7 @@ 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)){ | ||||
| 						grille[joueury1][joueurx1] = 0; | ||||
| 						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")); | ||||
| 						joueurx1 = empperso[0]; | ||||
| 						joueury1 = empperso[1]; | ||||
| @@ -138,7 +138,7 @@ int compJCJ(int taille){ | ||||
|                                         SourisY = _Y; | ||||
|                                 } | ||||
|                                 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(2); | ||||
| 					LibererSprite(3); | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
| int coordonerX(int SourisX){ | ||||
| 	int x = 0, z = 0; | ||||
| 	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; | ||||
| 		} | ||||
| 	} | ||||
| @@ -14,7 +14,7 @@ int coordonerX(int SourisX){ | ||||
| int coordonerY(int SourisY){ | ||||
| 	int x = 0, z = 0; | ||||
| 	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; | ||||
| 		} | ||||
| 	} | ||||
| @@ -25,7 +25,7 @@ int coordonerY(int SourisY){ | ||||
| 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); | ||||
|                 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; | ||||
|   | ||||
| @@ -8,6 +8,8 @@ | ||||
|  * 7 : x = 400 y = 450 | ||||
|  * 8 : x = 450 y = 500 | ||||
|  * 9 : x = 500 y = 550 | ||||
|  * | ||||
|  * Les deux codes permettent de définir la taille maximale en pixel | ||||
|  */ | ||||
|  | ||||
| int DefMaxX(int taille){ | ||||
|   | ||||
| Before Width: | Height: | Size: 747 B After Width: | Height: | Size: 747 B | 
| Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 453 B | 
| Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 603 B | 
| Before Width: | Height: | Size: 933 B After Width: | Height: | Size: 933 B | 
| Before Width: | Height: | Size: 522 B After Width: | Height: | Size: 522 B | 
| Before Width: | Height: | Size: 660 B After Width: | Height: | Size: 660 B | 
| Before Width: | Height: | Size: 918 B After Width: | Height: | Size: 918 B | 
| Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 363 B | 
| Before Width: | Height: | Size: 366 B After Width: | Height: | Size: 366 B | 
| Before Width: | Height: | Size: 267 B After Width: | Height: | Size: 267 B | 
| Before Width: | Height: | Size: 270 B After Width: | Height: | Size: 270 B | 
| @@ -5,7 +5,7 @@ int initialisationX(int SourisX, int maxX, int taille){ | ||||
| 			if(SourisX <= y && verou == 0){ | ||||
| 				casejoueur = x; | ||||
| 				verou++; | ||||
| 			} | ||||
| 			}		/* code qui retourne l'index X de la case du joueur */ | ||||
| 			y += 50; | ||||
| 		} | ||||
| 	} | ||||
| @@ -19,7 +19,7 @@ int initialisationY(int SourisY, int maxY, int taille){ | ||||
| 			if(SourisY <= y && verou == 0){ | ||||
| 				casejoueur = x; | ||||
| 				verou++; | ||||
| 			} | ||||
| 			}		/* code qui retourne l'index Y de la case du joueur */ | ||||
| 			y += 50; | ||||
| 		} | ||||
| 	} | ||||
| @@ -34,7 +34,7 @@ int initialisationXbox(int SourisX, int maxX, int taille){ | ||||
| 		if(SourisX >= 50 && SourisX <= maxX){ | ||||
| 			if(SourisX <= y && verou == 0){ | ||||
| 				caseblock = x; | ||||
| 				verou++; | ||||
| 				verou++;	/* code qui retourne l'index X de la case du block */ | ||||
| 			} | ||||
| 			y += 50; | ||||
| 		} | ||||
| @@ -49,7 +49,7 @@ int initialisationYbox(int SourisY, int maxY, int taille){ | ||||
| 		if(SourisY >= 100 && SourisY <= maxY){ | ||||
| 			if(SourisY <= y && verou == 0){ | ||||
| 				caseblock = x; | ||||
| 				verou++; | ||||
| 				verou++;	/* code qui retourne l'index Y de la case du block */ | ||||
| 			} | ||||
| 			y += 50; | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										17
									
								
								main.c
									
									
									
									
									
								
							
							
						
						| @@ -10,19 +10,19 @@ int main (void){ | ||||
| 	int victoire = 0, choix = 0, SourisX = 0, SourisY = 0; | ||||
| 	InitialiserGraphique(); | ||||
| 	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; | ||||
| 		SourisY = 0; | ||||
| 		EffacerEcran(CouleurParNom("white")); | ||||
| 		victoire = Jeu(); | ||||
| 		victoire = Jeu();		/* Lance le jeu pour la première fois */ | ||||
| 		FermerGraphique(); | ||||
| 		InitialiserGraphique(); | ||||
| 		CreerFenetre(50, 50, 700, 500); | ||||
| 		while(choix == 0){ | ||||
| 			ChoisirCouleurDessin(CouleurParNom("black")); | ||||
| 			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); | ||||
| 			EcrireTexte(420, 135, "Quitter ?", 2); | ||||
| 			if(SourisCliquee()){ | ||||
| @@ -30,21 +30,20 @@ int main (void){ | ||||
| 				SourisY = _Y; | ||||
| 			} | ||||
| 			if(SourisX <= 300 && SourisX >= 100 && SourisY <= 150 && SourisY >= 100){ | ||||
| 				choix++; | ||||
| 				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){ | ||||
| 				EcrireTexte(200, 235, "Joueur 1 a gagner !", 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){ | ||||
| 				EcrireTexte(200, 235, "L'IA a gagner !", 2); | ||||
| 			}else{ | ||||
| 				EcrireTexte(200, 235, "L'IA a gagner !", 2); | ||||
| 			} | ||||
| 			if(choix == 5){ | ||||
| 				return EXIT_SUCCESS; | ||||
| 				FermerGraphique(); | ||||
| 				return EXIT_SUCCESS;						/* Ferme le programme */ | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| @@ -58,7 +57,7 @@ int Jeu(){ | ||||
| 	if(choix[0] == 1){ | ||||
| 		victoire = compJCJ(taille); | ||||
| 	}else if (choix[0] == 2){ | ||||
| 		compJCIA(taille); | ||||
| 		victoire = compJCIA(taille); | ||||
| 	} | ||||
| 	return victoire; | ||||
| } | ||||
|   | ||||
							
								
								
									
										14
									
								
								taille.c
									
									
									
									
									
								
							
							
						
						| @@ -7,49 +7,49 @@ void AfficherSelectionBoutton(){ | ||||
| 	DessinerSegment(100, 200, 150, 200); | ||||
| 	DessinerSegment(100, 100, 100, 200); | ||||
| 	DessinerSegment(150, 100, 150, 200); | ||||
| 	ChargerSprite("3.png"); | ||||
| 	ChargerSprite("./image/3.png"); | ||||
| 	AfficherSprite(1, 100, 100); | ||||
|  | ||||
| 	DessinerSegment(200, 100, 250, 100); | ||||
| 	DessinerSegment(200, 200, 250, 200); | ||||
| 	DessinerSegment(200, 200, 200, 100); | ||||
| 	DessinerSegment(250, 200, 250, 100); | ||||
| 	ChargerSprite("4.png"); | ||||
| 	ChargerSprite("./image/4.png"); | ||||
| 	AfficherSprite(2, 200, 100); | ||||
|  | ||||
| 	DessinerSegment(300, 100, 350, 100); | ||||
| 	DessinerSegment(300, 200, 350, 200); | ||||
| 	DessinerSegment(300, 100, 300, 200); | ||||
| 	DessinerSegment(350, 100, 350, 200); | ||||
| 	ChargerSprite("5.png"); | ||||
| 	ChargerSprite("./image/5.png"); | ||||
| 	AfficherSprite(3, 300, 100); | ||||
| 	 | ||||
| 	DessinerSegment(400, 100, 450, 100); | ||||
| 	DessinerSegment(400, 200, 450, 200); | ||||
| 	DessinerSegment(400, 100, 400, 200); | ||||
| 	DessinerSegment(450, 100, 450, 200); | ||||
| 	ChargerSprite("6.png"); | ||||
| 	ChargerSprite("./image/6.png"); | ||||
| 	AfficherSprite(4, 400, 100); | ||||
| 	 | ||||
| 	DessinerSegment(500, 100, 550, 100); | ||||
| 	DessinerSegment(500, 200, 550, 200); | ||||
| 	DessinerSegment(500, 100, 500, 200); | ||||
| 	DessinerSegment(550, 100, 550, 200); | ||||
| 	ChargerSprite("7.png"); | ||||
| 	ChargerSprite("./image/7.png"); | ||||
| 	AfficherSprite(5, 500, 100); | ||||
| 	 | ||||
| 	DessinerSegment(100, 250, 150, 250); | ||||
| 	DessinerSegment(100, 350, 150, 350); | ||||
| 	DessinerSegment(100, 250, 100, 350); | ||||
| 	DessinerSegment(150, 250, 150, 350); | ||||
| 	ChargerSprite("8.png"); | ||||
| 	ChargerSprite("./image/8.png"); | ||||
| 	AfficherSprite(6, 100, 250); | ||||
| 	 | ||||
| 	DessinerSegment(200, 250, 250, 250); | ||||
| 	DessinerSegment(200, 350, 250, 350); | ||||
| 	DessinerSegment(200, 250, 200, 350); | ||||
| 	DessinerSegment(250, 250, 250, 350); | ||||
| 	ChargerSprite("9.png"); | ||||
| 	ChargerSprite("./image/9.png"); | ||||
| 	AfficherSprite(7, 200, 250); | ||||
| } | ||||
|  | ||||
|   | ||||