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 7 #include <SDL/SDL.h>
8 8 #define MAX_ELEMENTS 50
9 9  
  10 +typedef struct{
  11 + char pseudo;
  12 + char scoremax;
  13 +}scorejoueur;
  14 +
10 15 typedef struct {
11 16 int x;
12 17 int y;
13 18 }position;
14 19  
  20 +
  21 +
  22 +
15 23 typedef struct {
16 24 position contenu[MAX_ELEMENTS];
17 25 int nombre;
18 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 43 void affichage(element_t e)
21 44 {
... ... @@ -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 104 int main() {
28 105 SDL_keysym* detail;
29 106 srand(time(NULL));
... ... @@ -31,10 +108,6 @@ int main() {
31 108 unsigned char bas;
32 109 int largeur = 1000;
33 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 111 char *titre = "Le Centipède";
39 112  
40 113  
... ... @@ -50,97 +123,39 @@ int main() {
50 123 int gameover = chargerLutin("Lutins/game_over.bmp",0);
51 124 int Tete;
52 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 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 142 tailleLutin(champi,&l,&h);
58 143 position *pos;
59   - position poschampi;
60 144 position posmillepatte;
61 145  
62 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 159 while(1){
145 160 if(lireTouche(&bas,&touche,(void **)&detail) && bas==1)
146 161 {
... ... @@ -150,7 +165,7 @@ int main() {
150 165 if(detail->sym==SDLK_DOWN) t=3;
151 166 }
152 167  
153   - usleep(200000);
  168 + usleep(speed);
154 169  
155 170 if((t==0 && s!=2) || s==0) { abs=50; ord=0; Tete = Teted; Corps = Corpsd; s=0; }
156 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 180 afficherLutin(gameover,250,433);
166 181 majSurface();
167 182 sleep(5);
168   - fermerSurface();
  183 + break;
169 184 }
170 185  
171 186 majSurface();
172 187 couleur = couleurPixel(posmillepatte.x+25,posmillepatte.y+25);
173   - printf("la couleur est %d\n",couleur);
174 188 if(couleur!=1) obstacle = 1;
175 189 else obstacle = 0;
176 190 allonge = 0;
177 191  
178 192 if(obstacle==1){
179   - for(w=0;w<20;w++)
  193 + for(w=0;w<nombrechampis;w++)
180 194 {
181 195 if((muschrooms.contenu[w].x) == posmillepatte.x && (muschrooms.contenu[w].y) == posmillepatte.y) { allonge = 1; } }
182 196 if(allonge==1){
  197 + afficherLutin(gomme,posmillepatte.x,posmillepatte.y);
183 198 afficherLutin(gomme,pos->x,pos->y);
184 199 afficherLutin(Corps,(pos->x),pos->y);
185 200 enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));
186 201 afficherLutin(Tete,posmillepatte.x,posmillepatte.y);
  202 + compteur++;
187 203 }
188 204 else {
189 205 afficherLutin(gameover,250,433);
190 206 majSurface();
191 207 sleep(5);
192   - fermerSurface();
  208 + break;
193 209 }
194 210  
195 211 }
... ... @@ -204,13 +220,27 @@ int main() {
204 220 defiler(&listecenti);
205 221 }
206 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 244 return 0;
215 245 }
216 246  
... ...
projets/Centipede/progprinc.o
No preview for this file type