1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
#include <stdlib.h>
#include <stdio.h>
#include "/export/documents/lib/sources/graph.h"
#define black CouleurParNom("black")
#define white CouleurParNom("white")
#define red CouleurParNom("red")
#define blue CouleurParNom("blue")
#define green CouleurParNom("green")
/*on crée un tableau avec le cadrillage et on place les 3 sortes de boules aléatoirement avec la même chance pour chaque boule de tomber*/
void tableau() {
int L,H,tab[15][10];
srand(time(NULL));
for (H=0;H<10;H++) {
for (L=0;L<15;L++) {
tab[L][H]=rand()%3;
if (tab[L][H]==0) {
RemplirArcC(L*40+3,H*40+3,34,34,360,360,blue);
}
if (tab[L][H]==1) {
RemplirArcC(L*40+3,H*40+3,34,34,360,360,red);
}
if (tab[L][H]==2) {
RemplirArcC(L*40+3,H*40+3,34,34,360,360,green);
}
DessinerRectangleC(L*40,H*40,40,40,white);
EcrireTexteC(10,420,"Score : ",white,1);
}
}
}
/*on crée une fonction qui élimine toutes les boules de la même couleur et à côté de celle où on clic*/
/********************************************/
/********Le problème vient de ce qui suis*********/
/*******************************************/
void cliquesouris() {
int a,b,tab[15][10];
while (1) {
if (SourisCliquee()) {
a=_X/40;
b=_Y/40;
RemplirArcC(a*40+3,b*40+3,34,34,360,360,black);
if (tab[a][b]!=tab[a+1][b] &&
tab[a][b]!=tab[a][b+1] &&
tab[a][b]!=tab[a-1][b] &&
tab[a][b]!=tab[a][b-1])
RemplirArcC(a*40+3,b*40+3,34,34,360,360,white);
else {
/*Je test la boule à droite de celle où je clic, si elle est de la même couleur, je supprime*/
if (tab[a][b]==tab[a+1][b]) {
RemplirArcC(a*40+43,b*40+3,34,34,360,360,black);
}
/*Je test la boule au dessus de celle où je clic, si elle est de la même couleur, je supprime*/
if (tab[a][b]==tab[a][b+1]) {
RemplirArcC(a*40+3,b*40+43,34,34,360,360,black);
}
/*Je test la boule à gauche de celle où je clic, si elle est de la même couleur, je supprime*/
if (tab[a][b]==tab[a-1][b]) {
RemplirArcC(a*40-37,b*40+3,34,34,360,360,black);
}
/*Je test la boule au dessous de celle où je clic, si elle est de la même couleur, je supprime*/
if (tab[a][b]==tab[a][b-1]) {
RemplirArcC(a*40+3,b*40-37,34,34,360,360,black);
}
}
}
}
}
/*on crée la fenetre, on l'affiche*/
int main() {
InitialiserGraphique();
extern char *nf;
nf="SAME";
CreerFenetre(Maxx()/2-300,Maxy()/2-300,600,500);
AfficherFenetre();
EffacerEcran(black);
tableau();
selection();
cliquesouris();
Touche();
FermerGraphique();
return EXIT_SUCCESS;
} |
Partager