Commit 19bcae5c5a38ddb92dbbc3e83d901f5cc18d4f36

Authored by Pierre Cwik
1 parent c3040ffa

commence tt juste a gerer les pseudos

projets/Centipede/centipede
No preview for this file type
projets/Centipede/progprinc.c
@@ -7,15 +7,38 @@ @@ -7,15 +7,38 @@
7 #include <SDL/SDL.h> 7 #include <SDL/SDL.h>
8 #define MAX_ELEMENTS 50 8 #define MAX_ELEMENTS 50
9 9
  10 +typedef struct{
  11 + char pseudo;
  12 + char scoremax;
  13 +}scorejoueur;
  14 +
10 typedef struct { 15 typedef struct {
11 int x; 16 int x;
12 int y; 17 int y;
13 }position; 18 }position;
14 19
  20 +
  21 +
  22 +
15 typedef struct { 23 typedef struct {
16 position contenu[MAX_ELEMENTS]; 24 position contenu[MAX_ELEMENTS];
17 int nombre; 25 int nombre;
18 } liste_champi; 26 } liste_champi;
  27 +
  28 +
  29 +
  30 +
  31 +void creationgrille(){
  32 +int i;
  33 +for(i = 0 ; i < 20; i++)
  34 + {
  35 + rectanglePlein(i*50,0,1,1000,5); //pose de la grille
  36 + rectanglePlein(0,i*50,1000,1,5);
  37 + } }
  38 +
  39 +
  40 +
  41 +
19 42
20 void affichage(element_t e) 43 void affichage(element_t e)
21 { 44 {
@@ -24,6 +47,60 @@ void affichage(element_t e) @@ -24,6 +47,60 @@ void affichage(element_t e)
24 } 47 }
25 48
26 49
  50 +
  51 +
  52 +void creerchampignons(int n,liste_champi *muschrooms,int champi){
  53 + position poschampi;
  54 + int i,w;
  55 + int test=0;
  56 + for(w=0;w<n;w++)
  57 + {
  58 + poschampi.x = (rand()%20)*50; //fixe coordonnées des champignons
  59 + poschampi.y = (rand()%20)*50;
  60 + for(i=0; i<w; i++){
  61 + if(muschrooms->contenu[i].x == poschampi.x && muschrooms->contenu[i].y == poschampi.y ) test=1;
  62 + }
  63 + if((poschampi.y > 570 || poschampi.y < 430) && test==0)
  64 + {
  65 + muschrooms->contenu[muschrooms->nombre++]=poschampi;
  66 + afficherLutin(champi,(muschrooms->contenu[w].x)+1,(muschrooms->contenu[w].y)+6);
  67 + }
  68 + else w--;
  69 + test = 0;
  70 + }
  71 +}
  72 +
  73 +
  74 +
  75 +
  76 +void creationcenti(liste_t *l, int Teted, int Corpsd){
  77 + int i;
  78 + position *pos;
  79 + position posmillepatte;
  80 + for(i=0; i<4; i++)
  81 + {
  82 + posmillepatte.x = (300 + 50*i);
  83 + posmillepatte.y = 500;
  84 + enfiler(l,&posmillepatte,sizeof(position));
  85 + }
  86 + //affichage des corpsd du centipede
  87 + for(i=0; i<4; i++)
  88 + {
  89 + pos = enieme(i,l);
  90 + afficherLutin(Corpsd,pos->x,pos->y);
  91 + }
  92 +
  93 + posmillepatte.x = 500;
  94 + posmillepatte.y = 500;
  95 + enfiler(l,&posmillepatte,sizeof(position)); //affichage de la tete du Centipède
  96 + pos = enieme(4, l);
  97 + afficherLutin(Teted,pos->x,pos->y);
  98 +}
  99 +
  100 +
  101 +
  102 +
  103 +
27 int main() { 104 int main() {
28 SDL_keysym* detail; 105 SDL_keysym* detail;
29 srand(time(NULL)); 106 srand(time(NULL));
@@ -31,10 +108,6 @@ int main() { @@ -31,10 +108,6 @@ int main() {
31 unsigned char bas; 108 unsigned char bas;
32 int largeur = 1000; 109 int largeur = 1000;
33 int hauteur = 1000; 110 int hauteur = 1000;
34 - liste_champi muschrooms={.nombre=0};  
35 - liste_t listecenti={NULL,0,0};  
36 - int h,w,l,i,t, allonge;  
37 - int s=0;  
38 char *titre = "Le Centipède"; 111 char *titre = "Le Centipède";
39 112
40 113
@@ -50,97 +123,39 @@ int main() { @@ -50,97 +123,39 @@ int main() {
50 int gameover = chargerLutin("Lutins/game_over.bmp",0); 123 int gameover = chargerLutin("Lutins/game_over.bmp",0);
51 int Tete; 124 int Tete;
52 int Corps; 125 int Corps;
53 - int abs, ord, obstacle, couleur; 126 + int abs, ord, obstacle, couleur,level=1,speed=200000,total=0,nombrechampis=3;
54 127
55 if(champi<0 || Teted<0 || Teteg<0 || Teteh <0 || Teteb<0 || Corpsg<0 || Corpsd<0 || Corpsh<0 || Corpsb<0 || gameover<0){ printf("Image pas là\n"); exit(-1); } 128 if(champi<0 || Teted<0 || Teteg<0 || Teteh <0 || Teteb<0 || Corpsg<0 || Corpsd<0 || Corpsh<0 || Corpsb<0 || gameover<0){ printf("Image pas là\n"); exit(-1); }
56 129
  130 + FILE *fichier = fopen("fichierdesscores.txt",a+);
  131 +
  132 + printf("joueur !! quel est votre pseudo ? :");
  133 + scanf("%s",&pseudo);
  134 +
  135 +while(level<5) {
  136 +
  137 + liste_champi muschrooms={.nombre=0};
  138 + liste_t listecenti={NULL,0,0};
  139 + int h,w,l,t,compteur=0,allonge;
  140 + int s=10;
  141 +
57 tailleLutin(champi,&l,&h); 142 tailleLutin(champi,&l,&h);
58 position *pos; 143 position *pos;
59 - position poschampi;  
60 position posmillepatte; 144 position posmillepatte;
61 145
62 creerSurface(largeur,hauteur,titre); 146 creerSurface(largeur,hauteur,titre);
63 147
64 - int x = 300;  
65 - int y = 500;  
66 -  
67 - for(i=0; i<4; i++)  
68 - {  
69 - posmillepatte.x = (x + 50*i);  
70 - posmillepatte.y = y;  
71 - enfiler(&listecenti,&posmillepatte,sizeof(position));  
72 - }  
73 - //affichage des corpsd du centipede  
74 - for(i=0; i<4; i++)  
75 - {  
76 - pos = enieme(i,&listecenti);  
77 - afficherLutin(Corpsd,pos->x,pos->y);  
78 - }  
79 -  
80 - posmillepatte.x = (x+200);  
81 - posmillepatte.y = y;  
82 - enfiler(&listecenti,&posmillepatte,sizeof(position)); //affichage de la tete du Centipède  
83 - pos = enieme(4, &listecenti);  
84 - afficherLutin(Teted,pos->x,pos->y); 148 + creationcenti(&listecenti,Teted,Corpsd);
85 149
86 -/* for(i = 0 ; i < 20; i++)  
87 - {  
88 - rectanglePlein(i*50,0,1,1000,5); //pose de la grille  
89 - rectanglePlein(0,i*50,1000,1,5);  
90 - } */ 150 + creerchampignons(nombrechampis,&muschrooms,champi);
91 151
  152 + majSurface();
92 153
93 - for(w=0;w<20;w++)  
94 - {  
95 - poschampi.x = (rand()%20)*50; //fixe coordonnées des champignons  
96 - poschampi.y = (rand()%20)*50;  
97 - if(poschampi.y > 570 || poschampi.y < 430)  
98 - {  
99 - muschrooms.contenu[muschrooms.nombre++]=poschampi;  
100 - afficherLutin(champi,(muschrooms.contenu[w].x)+1,(muschrooms.contenu[w].y)+6);  
101 - }  
102 - else w--;  
103 - }  
104 -  
105 - printf("%d %d \n",l,h);  
106 - //affiche les champis  
107 - for(w=0;w<20;w++)  
108 - {  
109 - printf("les coordonnées de mes champis : %d %d \n", (muschrooms.contenu[w].x),(muschrooms.contenu[w].y));  
110 - }  
111 -  
112 - majSurface();  
113 -  
114 - int gomme = creerLutin(0,0,50,50,-1);  
115 -  
116 -/* afficherLutin(Corpsd,0,0)  
117 - int couleurcd = couleurPixel(25,25);  
118 - majSurface();  
119 - afficherLutin(gomme,0,0);  
120 - majSurface();  
121 -  
122 - afficherLutin(Corpsg,0,0)  
123 - int couleurcg = couleurPixel(25,25);  
124 - majSurface();  
125 - afficherLutin(gomme,0,0);  
126 - majSurface();  
127 -  
128 - afficherLutin(Corpsh,0,0)  
129 - int couleurch = couleurPixel(25,25);  
130 - majSurface();  
131 - afficherLutin(gomme,0,0);  
132 - majSurface();  
133 -  
134 - afficherLutin(Corpsb,0,0)  
135 - int couleurcb = couleurPixel(25,25);  
136 - majSurface();  
137 - afficherLutin(gomme,0,0);  
138 - majSurface(); */ 154 + int gomme = creerLutin(0,0,50,50,-1);
139 155
140 - majSurface(); 156 + majSurface();
141 157
142 158
143 -  
144 while(1){ 159 while(1){
145 if(lireTouche(&bas,&touche,(void **)&detail) && bas==1) 160 if(lireTouche(&bas,&touche,(void **)&detail) && bas==1)
146 { 161 {
@@ -150,7 +165,7 @@ int main() { @@ -150,7 +165,7 @@ int main() {
150 if(detail->sym==SDLK_DOWN) t=3; 165 if(detail->sym==SDLK_DOWN) t=3;
151 } 166 }
152 167
153 - usleep(200000); 168 + usleep(speed);
154 169
155 if((t==0 && s!=2) || s==0) { abs=50; ord=0; Tete = Teted; Corps = Corpsd; s=0; } 170 if((t==0 && s!=2) || s==0) { abs=50; ord=0; Tete = Teted; Corps = Corpsd; s=0; }
156 if((t==1 && s!=3) || s==1) { abs=0; ord=(-50); Tete = Teteh; Corps = Corpsh; s=1; } 171 if((t==1 && s!=3) || s==1) { abs=0; ord=(-50); Tete = Teteh; Corps = Corpsh; s=1; }
@@ -165,31 +180,32 @@ int main() { @@ -165,31 +180,32 @@ int main() {
165 afficherLutin(gameover,250,433); 180 afficherLutin(gameover,250,433);
166 majSurface(); 181 majSurface();
167 sleep(5); 182 sleep(5);
168 - fermerSurface(); 183 + break;
169 } 184 }
170 185
171 majSurface(); 186 majSurface();
172 couleur = couleurPixel(posmillepatte.x+25,posmillepatte.y+25); 187 couleur = couleurPixel(posmillepatte.x+25,posmillepatte.y+25);
173 - printf("la couleur est %d\n",couleur);  
174 if(couleur!=1) obstacle = 1; 188 if(couleur!=1) obstacle = 1;
175 else obstacle = 0; 189 else obstacle = 0;
176 allonge = 0; 190 allonge = 0;
177 191
178 if(obstacle==1){ 192 if(obstacle==1){
179 - for(w=0;w<20;w++) 193 + for(w=0;w<nombrechampis;w++)
180 { 194 {
181 if((muschrooms.contenu[w].x) == posmillepatte.x && (muschrooms.contenu[w].y) == posmillepatte.y) { allonge = 1; } } 195 if((muschrooms.contenu[w].x) == posmillepatte.x && (muschrooms.contenu[w].y) == posmillepatte.y) { allonge = 1; } }
182 if(allonge==1){ 196 if(allonge==1){
  197 + afficherLutin(gomme,posmillepatte.x,posmillepatte.y);
183 afficherLutin(gomme,pos->x,pos->y); 198 afficherLutin(gomme,pos->x,pos->y);
184 afficherLutin(Corps,(pos->x),pos->y); 199 afficherLutin(Corps,(pos->x),pos->y);
185 enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte)); 200 enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));
186 afficherLutin(Tete,posmillepatte.x,posmillepatte.y); 201 afficherLutin(Tete,posmillepatte.x,posmillepatte.y);
  202 + compteur++;
187 } 203 }
188 else { 204 else {
189 afficherLutin(gameover,250,433); 205 afficherLutin(gameover,250,433);
190 majSurface(); 206 majSurface();
191 sleep(5); 207 sleep(5);
192 - fermerSurface(); 208 + break;
193 } 209 }
194 210
195 } 211 }
@@ -204,13 +220,27 @@ int main() { @@ -204,13 +220,27 @@ int main() {
204 defiler(&listecenti); 220 defiler(&listecenti);
205 } 221 }
206 majSurface(); 222 majSurface();
  223 +
  224 + if(compteur==nombrechampis) break;
207 225
208 - if(touche=='a')  
209 - {  
210 - fermerSurface(); //condition d'arret  
211 - return 0;  
212 - } 226 + if(touche=='a')
  227 + {
  228 + fermerSurface(); //condition d'arret
  229 + return 0;
  230 + }
  231 + }
  232 +
  233 + total = total+compteur;
  234 + if(compteur != nombrechampis) break;
  235 + compteur = 0;
  236 + nombrechampis = nombrechampis+3;
  237 + speed = speed/1.2;
  238 + level++;
  239 +
213 } 240 }
  241 + printf("votre score est de %d\n",total);
  242 + fermerSurface();
  243 + fclose(fichier);
214 return 0; 244 return 0;
215 } 245 }
216 246
projets/Centipede/progprinc.o
No preview for this file type