#include #include #include "definirMaxXY.h" #include "initialisation.h" #include "coordoner.h" #include "effacehaut.h" #include "verificationblock.h" int compJCIA(int taille){ 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; } } }