Commit cfd8c64452615525c7336ec26c794e26e20460be

Authored by Cwik Pierre
1 parent 9b666644

fin centipede

Showing 112 changed files with 2359 additions and 268 deletions   Show diff stats
projets/Centipede/centipede deleted
No preview for this file type
projets/Centipede/progprinc.c~ deleted
@@ -1,224 +0,0 @@ @@ -1,224 +0,0 @@
1 -#include <stdio.h>  
2 -#include <stdlib.h>  
3 -#include <libFile.h>  
4 -#include <libgraph.h>  
5 -#include <unistd.h>  
6 -#include <time.h>  
7 -#include <SDL/SDL.h>  
8 -#define MAX_ELEMENTS 50  
9 -  
10 -typedef struct {  
11 - int x;  
12 - int y;  
13 -}position;  
14 -  
15 -typedef struct {  
16 - position contenu[MAX_ELEMENTS];  
17 - int nombre;  
18 - } liste_champi;  
19 -  
20 -void affichage(element_t e)  
21 -{  
22 - position *p = e;  
23 - printf("%d %d \n", p->x, p->y);  
24 -}  
25 -  
26 -  
27 -int main() {  
28 - SDL_keysym* detail;  
29 - srand(time(NULL));  
30 - char touche;  
31 - unsigned char bas;  
32 - int largeur = 1000;  
33 - int hauteur = 1000;  
34 - liste_champi muschrooms={.nombre=0};  
35 - liste_t listecenti={NULL,0,0};  
36 - int h,w,l,i,t;  
37 - int s=10;  
38 - char *titre = "Le Centipède";  
39 -  
40 -  
41 - int champi = chargerLutin("Lutins/millepatte_champi.bmp",0);  
42 - int Teted = chargerLutin("Lutins/millepatte_tete_droite.bmp",0);  
43 - int Teteg = chargerLutin("Lutins/millepatte_tete_gauche.bmp",0);  
44 - int Teteh = chargerLutin("Lutins/millepatte_tete_haut.bmp",0);  
45 - int Teteb = chargerLutin("Lutins/millepatte_tete_bas.bmp",0);  
46 - int Corpsg = chargerLutin("Lutins/millepatte_corps_gauche.bmp",0);  
47 - int Corpsd = chargerLutin("Lutins/millepatte_corps_droite.bmp",0);  
48 - int Corpsh = chargerLutin("Lutins/millepatte_corps_haut.bmp",0);  
49 - int Corpsb = chargerLutin("Lutins/millepatte_corps_bas.bmp",0);  
50 - int gameover = chargerLutin("Lutins/game_over.bmp",0);  
51 -  
52 - if(champi<0){ printf("Champi pas là\n"); exit(-1); }  
53 - tailleLutin(champi,&l,&h);  
54 -  
55 -  
56 - position *pos;  
57 - position poschampi;  
58 - position posmillepatte;  
59 -  
60 - creerSurface(largeur,hauteur,titre);  
61 -  
62 - int x = 300;  
63 - int y = 500;  
64 -  
65 - for(i=0; i<4; i++)  
66 - {  
67 - posmillepatte.x = (x + 50*i);  
68 - posmillepatte.y = y;  
69 - enfiler(&listecenti,&posmillepatte,sizeof(position));  
70 - }  
71 - //affichage des corpsd du centipede  
72 - for(i=0; i<4; i++)  
73 - {  
74 - pos = enieme(i,&listecenti);  
75 - afficherLutin(Corpsd,pos->x,pos->y);  
76 - }  
77 -  
78 - posmillepatte.x = (x+200);  
79 - posmillepatte.y = y;  
80 - enfiler(&listecenti,&posmillepatte,sizeof(position)); //affichage de la tete du Centipède  
81 - pos = enieme(4, &listecenti);  
82 - afficherLutin(Teted,pos->x,pos->y);  
83 -  
84 - for(i = 0 ; i < 20; i++)  
85 - {  
86 - rectanglePlein(i*50,0,1,1000,5); //pose de la grille  
87 - rectanglePlein(0,i*50,1000,1,5);  
88 - }  
89 -  
90 - for(w=0;w<10;w++) {  
91 - poschampi.x = (rand()%20)*50; //fixe coordonnées des champignons  
92 - poschampi.y = (rand()%20)*50;  
93 - if(poschampi.y > 570 || poschampi.y < 430) {  
94 - muschrooms.contenu[muschrooms.nombre++]=poschampi; }  
95 - else w--;  
96 - }  
97 -  
98 - printf("%d %d \n",l,h);  
99 -  
100 - for(w=0;w<10;w++){  
101 - afficherLutin(champi,(muschrooms.contenu[w].x)+1,(muschrooms.contenu[w].y)+6);  
102 - }//affiche les champis  
103 - majSurface();  
104 -  
105 - int gomme = creerLutin(0,0,50,50,0);  
106 - majSurface();  
107 -  
108 -  
109 -  
110 - while(1){  
111 - if(lireTouche(&bas,&touche,(void **)&detail) && bas==1) {  
112 -  
113 - if(detail->sym==SDLK_RIGHT) t=0;  
114 - if(detail->sym==SDLK_UP) t=1;  
115 - if(detail->sym==SDLK_LEFT) t=2;  
116 - if(detail->sym==SDLK_DOWN) t=3; }  
117 -  
118 - usleep(500000);  
119 -  
120 - if((t==0 && s!=2) || s==0) {  
121 - printf("dans le droite\n");  
122 - pos = premier(&listecenti);  
123 - afficherLutin(gomme,pos->x,pos->y);  
124 - defiler(&listecenti);  
125 -  
126 - pos = dernier(&listecenti);  
127 - afficherLutin(gomme,pos->x,pos->y);  
128 - afficherLutin(Corpsd,(pos->x),pos->y);  
129 - posmillepatte.x = pos->x+50;  
130 - posmillepatte.y = pos->y;  
131 - if(posmillepatte.x > 1000 || posmillepatte.y > 1000 || posmillepatte.x < 0 || posmillepatte.y < 0){  
132 - afficherLutin(gameover,400,400);  
133 - majSurface();  
134 - sleep(5);  
135 - fermerSurface();  
136 - }  
137 - enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));  
138 - afficherLutin(Teted,posmillepatte.x,posmillepatte.y);  
139 - majSurface();  
140 - s=0;  
141 - }  
142 -  
143 - if((t==1 && s!=3) || s==1) {  
144 - printf("dans le haut\n");  
145 - pos = premier(&listecenti);  
146 - afficherLutin(gomme,pos->x,pos->y);  
147 - defiler(&listecenti);  
148 -  
149 - pos = dernier(&listecenti);  
150 - afficherLutin(gomme,pos->x,pos->y);  
151 - afficherLutin(Corpsh,(pos->x),pos->y);  
152 - posmillepatte.x = pos->x;  
153 - posmillepatte.y = pos->y-50;  
154 - if(posmillepatte.x > 1000 || posmillepatte.y > 1000 || posmillepatte.x < 0 || posmillepatte.y < 0){  
155 - afficherLutin(gameover,400,400);  
156 - majSurface();  
157 - sleep(5);  
158 - fermerSurface();  
159 - }  
160 - enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));  
161 - afficherLutin(Teteh,posmillepatte.x,posmillepatte.y);  
162 - majSurface();  
163 - s=1;  
164 - }  
165 -  
166 - if((t==2 && s!=0) || s==2) {  
167 - printf("dans le gauche\n");  
168 - pos = premier(&listecenti);  
169 - afficherLutin(gomme,pos->x,pos->y);  
170 - defiler(&listecenti);  
171 -  
172 - pos = dernier(&listecenti);  
173 - afficherLutin(gomme,pos->x,pos->y);  
174 - afficherLutin(Corpsg,(pos->x),pos->y);  
175 - posmillepatte.x = pos->x-50;  
176 - posmillepatte.y = pos->y;  
177 - if(posmillepatte.x > 1000 || posmillepatte.y > 1000 || posmillepatte.x < 0 || posmillepatte.y < 0){  
178 - afficherLutin(gameover,400,400);  
179 - majSurface();  
180 - sleep(5);  
181 - fermerSurface();  
182 - }  
183 - enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));  
184 - afficherLutin(Teteg,posmillepatte.x,posmillepatte.y);  
185 - majSurface();  
186 - s=2;  
187 - }  
188 -  
189 - if((t==3 && s!=1) || s==3) {  
190 - printf("dans le bas\n");  
191 - pos = premier(&listecenti);  
192 - afficherLutin(gomme,pos->x,pos->y);  
193 - defiler(&listecenti);  
194 -  
195 - pos = dernier(&listecenti);  
196 - afficherLutin(gomme,pos->x,pos->y);  
197 - afficherLutin(Corpsb,(pos->x),pos->y);  
198 - posmillepatte.x = pos->x;  
199 - posmillepatte.y = pos->y+50;  
200 - if(posmillepatte.x > 1000 || posmillepatte.y > 1000 || posmillepatte.x < 0 || posmillepatte.y < 0){  
201 - afficherLutin(gameover,400,400);  
202 - majSurface();  
203 - sleep(5);  
204 - fermerSurface();  
205 - }  
206 - enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));  
207 - afficherLutin(Teteb,posmillepatte.x,posmillepatte.y);  
208 - majSurface();  
209 - s=3;  
210 - }  
211 -  
212 - if(touche=='a')  
213 - {  
214 - fermerSurface(); //condition d'arret  
215 - return 0;  
216 -  
217 - }  
218 -}  
219 -  
220 -  
221 - return 0;  
222 -}  
223 -  
224 -  
projets/Centipede/progprinc.o deleted
No preview for this file type
projets/Centipede/Makefile renamed to projets/projetsfile/Centipede/Makefile
projets/projetsfile/Centipede/centipede 0 → 100755
No preview for this file type
projets/Centipede/progprinc.c renamed to projets/projetsfile/Centipede/progprinc.c
@@ -7,11 +7,14 @@ @@ -7,11 +7,14 @@
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{ 10 +typedef struct {
11 char pseudo[MAX_ELEMENTS]; 11 char pseudo[MAX_ELEMENTS];
12 - int scorefait; 12 + char score;
13 }scorejoueur; 13 }scorejoueur;
14 14
  15 +typedef struct {
  16 + scorejoueur classement[10];
  17 +}classement;
15 18
16 typedef struct { 19 typedef struct {
17 int x; 20 int x;
@@ -32,16 +35,6 @@ for(i = 0 ; i &lt; 20; i++) @@ -32,16 +35,6 @@ for(i = 0 ; i &lt; 20; i++)
32 rectanglePlein(i*50,0,1,1000,5); //pose de la grille 35 rectanglePlein(i*50,0,1,1000,5); //pose de la grille
33 rectanglePlein(0,i*50,1000,1,5); 36 rectanglePlein(0,i*50,1000,1,5);
34 } } 37 } }
35 -  
36 -  
37 -void affichage(element_t e)  
38 -{  
39 - position *p = e;  
40 - printf("%d %d \n", p->x, p->y);  
41 -}  
42 -  
43 -  
44 -  
45 38
46 void creerchampignons(int n,liste_poly *muschrooms,int champi){ 39 void creerchampignons(int n,liste_poly *muschrooms,int champi){
47 position poschampi; 40 position poschampi;
@@ -96,10 +89,11 @@ int main() { @@ -96,10 +89,11 @@ int main() {
96 unsigned char bas; 89 unsigned char bas;
97 int largeur = 1000; 90 int largeur = 1000;
98 int hauteur = 1000; 91 int hauteur = 1000;
99 - char *name;  
100 char *titre = "Le Centipede"; 92 char *titre = "Le Centipede";
101 - scorejoueur resultat;  
102 - liste_poly testscore; 93 + scorejoueur scorefait={.pseudo={'\0'}};
  94 + scorejoueur autres;
  95 + scorejoueur lecture;
  96 + classement ranking;
103 position *pos; 97 position *pos;
104 position posmillepatte; 98 position posmillepatte;
105 99
@@ -121,21 +115,16 @@ int main() { @@ -121,21 +115,16 @@ int main() {
121 int youwin = chargerLutin("Lutins/youwin.bmp",0); 115 int youwin = chargerLutin("Lutins/youwin.bmp",0);
122 int Tete; 116 int Tete;
123 int Corps; 117 int Corps;
124 - int i;  
125 - int abs, ord, obstacle, couleur,level=1,speed=5000,total=0,nombrechampis=6, s; 118 + int abs, ord, obstacle, couleur,level=1,speed=5000,total=0,nombrechampis=6, s,ecriture=1,j,w,i;
126 119
127 if(champi<0 || Teted<0 || Teteg<0 || Teteh <0 || Teteb<0 || Corpsg<0 || Corpsd<0 || Corpsh<0 || Corpsb<0 || gameover<0 || level1<0 || level2<0 || level3<0 || levelclr<0 || youwin<0){ printf("Image pas là\n"); exit(-1); } 120 if(champi<0 || Teted<0 || Teteg<0 || Teteh <0 || Teteb<0 || Corpsg<0 || Corpsd<0 || Corpsh<0 || Corpsb<0 || gameover<0 || level1<0 || level2<0 || level3<0 || levelclr<0 || youwin<0){ printf("Image pas là\n"); exit(-1); }
128 -  
129 - printf("joueur !! quel est votre pseudo ? :");  
130 - scanf("%s",&name);  
131 - resultat.nom = name; 121 +
132 creerSurface(largeur,hauteur,titre); 122 creerSurface(largeur,hauteur,titre);
133 majSurface(); 123 majSurface();
134 int gomme = creerLutin(0,0,50,50,-1); 124 int gomme = creerLutin(0,0,50,50,-1);
135 125
136 while(level<=3) { 126 while(level<=3) {
137 127
138 - queue = 0;  
139 liste_poly muschrooms={.nombre=0}; 128 liste_poly muschrooms={.nombre=0};
140 liste_t listecenti={NULL,0,0}; 129 liste_t listecenti={NULL,0,0};
141 int w,t,compteur=0,allonge; 130 int w,t,compteur=0,allonge;
@@ -245,29 +234,68 @@ while(level&lt;=3) { @@ -245,29 +234,68 @@ while(level&lt;=3) {
245 speed = speed/2.2; 234 speed = speed/2.2;
246 level++; 235 level++;
247 236
248 -} 237 +}
  238 +
249 printf("votre score est de %d\n",total); 239 printf("votre score est de %d\n",total);
250 - resultat.scorefait = total;  
251 -  
252 - FILE *fichier = NULL;  
253 - fichier = fopen("scores.txt",r+);  
254 -  
255 - if(fichier==NULL) { printf("\n le fichier n'a pas plus etre ouvert"); fermerSurface(); }  
256 -  
257 - else{  
258 -  
259 - testscore->contenu[testscore->nombre++]=fread;  
260 -  
261 -  
262 -  
263 -  
264 -  
265 - }  
266 -  
267 -  
268 - fermerSurface();  
269 - fclose(fichier); 240 +
  241 + for(i=0;i<10;i++) // initialisation de la liste classement
  242 + {
  243 + strcpy(ranking.classement[i].pseudo,"vide");
  244 + ranking.classement[i].score=0;
  245 + }
  246 +
  247 + fermerSurface();
  248 + printf("Saisissez votre pseudo\n");
  249 + scanf("%s",scorefait.pseudo);
  250 + scorefait.score=total;
  251 +
  252 +
  253 + FILE *fichier=fopen("scores.txt","a+"); // Gestion fichier
  254 + fclose(fichier);
  255 + fichier=fopen("scores.txt","r+");
  256 + if(fichier!=NULL){
  257 +
  258 + while((fread(&autres,sizeof(autres),1,fichier)!=0))
  259 + {
  260 + if(strcmp(autres.pseudo,scorefait.pseudo)==0)
  261 + {
  262 + if(total>autres.score)
  263 + {
  264 + fseek(fichier,-sizeof(scorefait),SEEK_CUR);
  265 + fwrite(&scorefait,sizeof(scorefait),1,fichier);
  266 + }
  267 + ecriture=0;
  268 + break;
  269 + }
  270 + ecriture=1;
  271 + }
  272 + if(ecriture==1) {fwrite(&scorefait,sizeof(scorefait),1,fichier);}
  273 + }
  274 + rewind(fichier);
  275 + while((fread(&lecture,sizeof(lecture),1,fichier)!=0))
  276 + {
  277 + for(w=0;w<10;w++)
  278 + {
  279 + if(lecture.score>ranking.classement[w].score)
  280 + {
  281 + for(j=10;j>w;j--)
  282 + {
  283 + strcpy(ranking.classement[j].pseudo,ranking.classement[j-1].pseudo); // gestion et affichage classement
  284 + ranking.classement[j].score=ranking.classement[j-1].score;
  285 + }
  286 + strcpy(ranking.classement[w].pseudo,lecture.pseudo);
  287 + ranking.classement[w].score=lecture.score;
  288 + break;
  289 + }
  290 + }
  291 + }
  292 + printf("RANKING :\n");
  293 + for(w=0;w<10;w++)
  294 + {
  295 + printf("%i : %s , score : %d\n",w+1,ranking.classement[w].pseudo,ranking.classement[w].score);
  296 + }
  297 + fclose(fichier);
  298 +
270 return 0; 299 return 0;
271 } 300 }
272 301
273 -  
274 \ No newline at end of file 302 \ No newline at end of file
projets/projetsfile/Centipede/progprinc.c~ 0 → 100644
@@ -0,0 +1,301 @@ @@ -0,0 +1,301 @@
  1 +#include <stdio.h>
  2 +#include <stdlib.h>
  3 +#include <libFile.h>
  4 +#include <libgraph.h>
  5 +#include <unistd.h>
  6 +#include <time.h>
  7 +#include <SDL/SDL.h>
  8 +#define MAX_ELEMENTS 50
  9 +
  10 +typedef struct {
  11 + char pseudo[MAX_ELEMENTS];
  12 + char score;
  13 +}scorejoueur;
  14 +
  15 +typedef struct {
  16 + scorejoueur classement[10];
  17 +}classement;
  18 +
  19 +typedef struct {
  20 + int x;
  21 + int y;
  22 +}position;
  23 +
  24 +
  25 +typedef struct {
  26 + position contenu[MAX_ELEMENTS];
  27 + int nombre;
  28 + } liste_poly;
  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 +void creerchampignons(int n,liste_poly *muschrooms,int champi){
  40 + position poschampi;
  41 + int i,w;
  42 + int test=0;
  43 + for(w=0;w<n;w++)
  44 + {
  45 + poschampi.x = (rand()%20)*50; //fixe coordonnées des champignons
  46 + poschampi.y = (rand()%20)*50;
  47 + for(i=0; i<w; i++){
  48 + if(muschrooms->contenu[i].x == poschampi.x && muschrooms->contenu[i].y == poschampi.y ) test=1;
  49 + }
  50 + if((poschampi.y > 570 || poschampi.y < 430) && test==0)
  51 + {
  52 + muschrooms->contenu[muschrooms->nombre++]=poschampi;
  53 + afficherLutin(champi,(muschrooms->contenu[w].x)+1,(muschrooms->contenu[w].y)+6);
  54 + }
  55 + else w--;
  56 + test = 0;
  57 + }
  58 +}
  59 +
  60 +
  61 +void creationcenti(liste_t *l, int Teted, int Corpsd){
  62 + int i;
  63 + position *pos;
  64 + position posmillepatte;
  65 + for(i=0; i<4; i++)
  66 + {
  67 + posmillepatte.x = (300 + 50*i);
  68 + posmillepatte.y = 500;
  69 + enfiler(l,&posmillepatte,sizeof(position));
  70 + }
  71 + //affichage des corpsd du centipede
  72 + for(i=0; i<4; i++)
  73 + {
  74 + pos = enieme(i,l);
  75 + afficherLutin(Corpsd,pos->x,pos->y);
  76 + }
  77 +
  78 + posmillepatte.x = 500;
  79 + posmillepatte.y = 500;
  80 + enfiler(l,&posmillepatte,sizeof(position)); //affichage de la tete du Centipède
  81 + pos = enieme(4,l);
  82 + afficherLutin(Teted,pos->x,pos->y);
  83 +}
  84 +
  85 +int main() {
  86 + SDL_keysym* detail;
  87 + srand(time(NULL));
  88 + char touche;
  89 + unsigned char bas;
  90 + int largeur = 1000;
  91 + int hauteur = 1000;
  92 + char *titre = "Le Centipede";
  93 + scorejoueur scorefait={.pseudo={'\0'}};
  94 + scorejoueur autres;
  95 + scorejoueur lecture;
  96 + classement ranking;
  97 + position *pos;
  98 + position posmillepatte;
  99 +
  100 +
  101 + int champi = chargerLutin("Lutins/millepatte_champi.bmp",0);
  102 + int Teted = chargerLutin("Lutins/millepatte_tete_droite.bmp",0);
  103 + int Teteg = chargerLutin("Lutins/millepatte_tete_gauche.bmp",0);
  104 + int Teteh = chargerLutin("Lutins/millepatte_tete_haut.bmp",0);
  105 + int Teteb = chargerLutin("Lutins/millepatte_tete_bas.bmp",0);
  106 + int Corpsg = chargerLutin("Lutins/millepatte_corps_gauche.bmp",0);
  107 + int Corpsd = chargerLutin("Lutins/millepatte_corps_droite.bmp",0);
  108 + int Corpsh = chargerLutin("Lutins/millepatte_corps_haut.bmp",0);
  109 + int Corpsb = chargerLutin("Lutins/millepatte_corps_bas.bmp",0);
  110 + int gameover = chargerLutin("Lutins/game_over.bmp",0);
  111 + int level1 = chargerLutin("Lutins/level1.bmp",0);
  112 + int level2 = chargerLutin("Lutins/level2.bmp",0);
  113 + int level3 = chargerLutin("Lutins/level3.bmp",0);
  114 + int levelclr = chargerLutin("Lutins/level_cleared.bmp",0);
  115 + int youwin = chargerLutin("Lutins/youwin.bmp",0);
  116 + int Tete;
  117 + int Corps;
  118 + int abs, ord, obstacle, couleur,level=1,speed=5000,total=0,nombrechampis=6, s,ecriture=1,j,w,i;
  119 +
  120 + if(champi<0 || Teted<0 || Teteg<0 || Teteh <0 || Teteb<0 || Corpsg<0 || Corpsd<0 || Corpsh<0 || Corpsb<0 || gameover<0 || level1<0 || level2<0 || level3<0 || levelclr<0 || youwin<0){ printf("Image pas là\n"); exit(-1); }
  121 +
  122 + creerSurface(largeur,hauteur,titre);
  123 + majSurface();
  124 + int gomme = creerLutin(0,0,50,50,-1);
  125 +
  126 +while(level<=3) {
  127 +
  128 + liste_poly muschrooms={.nombre=0};
  129 + liste_t listecenti={NULL,0,0};
  130 + int w,t,compteur=0,allonge;
  131 +
  132 + rectanglePlein(0,0,1000,1000,1);
  133 +
  134 + if(level==1) { afficherLutin(level1,250,250); majSurface(); sleep(1); }
  135 + if(level==2) { afficherLutin(level2,250,250); majSurface(); sleep(1); }
  136 + if(level==3) { afficherLutin(level3,250,250); majSurface(); sleep(1); }
  137 +
  138 + rectanglePlein(0,0,1000,1000,-1);
  139 +
  140 + creationcenti(&listecenti,Teted,Corpsd);
  141 +
  142 + creerchampignons(nombrechampis,&muschrooms,champi);
  143 +
  144 + majSurface();
  145 +
  146 + attendreEvenement();
  147 +
  148 + s = 0;
  149 + t = 0;
  150 +
  151 + while(1){
  152 + for(i=0;i<speed;i++)
  153 + {
  154 + if(lireTouche(&bas,&touche,(void **)&detail) && bas==1)
  155 + {
  156 + if(detail->sym==SDLK_RIGHT) t=0;
  157 + if(detail->sym==SDLK_UP) t=1;
  158 + if(detail->sym==SDLK_LEFT) t=2;
  159 + if(detail->sym==SDLK_DOWN) t=3;
  160 + }
  161 +
  162 + usleep(1);
  163 + }
  164 + if((t==0 && s!=2) || s==0) { abs=50; ord=0; Tete = Teted; Corps = Corpsd; s=0; }
  165 + if((t==1 && s!=3) || s==1) { abs=0; ord=(-50); Tete = Teteh; Corps = Corpsh; s=1; }
  166 + if((t==2 && s!=0) || s==2) { abs=-50; ord=0; Tete = Teteg; Corps = Corpsg; s=2; }
  167 + if((t==3 && s!=1) || s==3) { abs=0; ord=50; Tete = Teteb; Corps = Corpsb; s=3; }
  168 +
  169 + pos = dernier(&listecenti);
  170 + posmillepatte.x = pos->x+abs;
  171 + posmillepatte.y = pos->y+ord;
  172 + if(posmillepatte.x==1000 || posmillepatte.y==1000 || posmillepatte.x==-50 || posmillepatte.y==-50)
  173 + {
  174 + afficherLutin(gameover,250,433);
  175 + majSurface();
  176 + sleep(5);
  177 + break;
  178 + }
  179 +
  180 + majSurface();
  181 + couleur = couleurPixel(posmillepatte.x+25,posmillepatte.y+25);
  182 + if(couleur!=1) obstacle = 1;
  183 + else obstacle = 0;
  184 + allonge = 0;
  185 +
  186 + if(obstacle==1){
  187 + for(w=0;w<nombrechampis;w++)
  188 + {
  189 + if((muschrooms.contenu[w].x) == posmillepatte.x && (muschrooms.contenu[w].y) == posmillepatte.y) { allonge = 1; } }
  190 + if(allonge==1){
  191 + afficherLutin(gomme,posmillepatte.x,posmillepatte.y);
  192 + afficherLutin(gomme,pos->x,pos->y);
  193 + afficherLutin(Corps,(pos->x),pos->y);
  194 + enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));
  195 + afficherLutin(Tete,posmillepatte.x,posmillepatte.y);
  196 + compteur++;
  197 + }
  198 + else {
  199 + afficherLutin(gameover,250,433);
  200 + majSurface();
  201 + sleep(5);
  202 + break;
  203 + }
  204 +
  205 + }
  206 +
  207 + if(obstacle==0){
  208 + afficherLutin(gomme,pos->x,pos->y);
  209 + afficherLutin(Corps,(pos->x),pos->y);
  210 + enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));
  211 + afficherLutin(Tete,posmillepatte.x,posmillepatte.y);
  212 + pos = premier(&listecenti);
  213 + afficherLutin(gomme,pos->x,pos->y);
  214 + defiler(&listecenti);
  215 + }
  216 + majSurface();
  217 +
  218 + if(compteur==nombrechampis) break;
  219 +
  220 + if(touche=='a')
  221 + {
  222 + fermerSurface(); //condition d'arret
  223 + return 0;
  224 + }
  225 + }
  226 +
  227 +
  228 + total = total+compteur;
  229 + if(compteur != nombrechampis) break;
  230 + if(level==3) { afficherLutin(youwin,204,400); majSurface(); sleep(3); }
  231 + else { afficherLutin(levelclr,304,454); majSurface(); sleep(3); }
  232 + compteur = 0;
  233 + nombrechampis = nombrechampis+3;
  234 + speed = speed/2.2;
  235 + level++;
  236 +
  237 +}
  238 +
  239 + printf("votre score est de %d\n",total);
  240 +
  241 + for(i=0;i<10;i++) // initialisation de la liste classement
  242 + {
  243 + strcpy(ranking.classement[i].pseudo,"vide");
  244 + ranking.classement[i].score=0;
  245 + }
  246 +
  247 + fermerSurface();
  248 + printf("Saisissez votre pseudo\n");
  249 + scanf("%s",scorefait.pseudo);
  250 + scorefait.score=total;
  251 +
  252 +
  253 + FILE *fichier=fopen("scores.txt","a+"); // Gestion fichier
  254 + fclose(fichier);
  255 + fichier=fopen("scores.txt","r+");
  256 + if(fichier!=NULL){
  257 +
  258 + while((fread(&autres,sizeof(autres),1,fichier)!=0))
  259 + {
  260 + if(strcmp(autres.pseudo,scorefait.pseudo)==0)
  261 + {
  262 + if(total>autres.score)
  263 + {
  264 + fseek(fichier,-sizeof(scorefait),SEEK_CUR);
  265 + fwrite(&scorefait,sizeof(scorefait),1,fichier);
  266 + }
  267 + ecriture=0;
  268 + break;
  269 + }
  270 + ecriture=1;
  271 + }
  272 + if(ecriture==1) {fwrite(&scorefait,sizeof(scorefait),1,fichier);}
  273 + }
  274 + rewind(fichier);
  275 + while((fread(&lecture,sizeof(lecture),1,fichier)!=0))
  276 + {
  277 + for(w=0;w<10;w++)
  278 + {
  279 + if(lecture.score>ranking.classement[w].score)
  280 + {
  281 + for(j=10;j>w;j--)
  282 + {
  283 + strcpy(ranking.classement[j].pseudo,ranking.classement[j-1].pseudo); // gestion et affichage classement
  284 + ranking.classement[j].score=ranking.classement[j-1].score;
  285 + }
  286 + strcpy(ranking.classement[w].pseudo,lecture.pseudo);
  287 + ranking.classement[w].score=lecture.score;
  288 + break;
  289 + }
  290 + }
  291 + }
  292 + printf("RANKING :\n");
  293 + for(w=0;w<10;w++)
  294 + {
  295 + printf("%i : %s , score : %d\n",w+1,ranking.classement[w].pseudo,ranking.classement[w].score);
  296 + }
  297 + fclose(fichier);
  298 +
  299 + return 0;
  300 +}
  301 +
projets/projetsfile/Centipede/progprinc.o 0 → 100644
No preview for this file type
projets/Centipede/scores.txt renamed to projets/projetsfile/Centipede/scores.txt
projets/Graphique/Makefile renamed to projets/projetsfile/Graphique/Makefile
projets/Graphique/libgraph.a renamed to projets/projetsfile/Graphique/libgraph.a
No preview for this file type
projets/Graphique/libgraph.c renamed to projets/projetsfile/Graphique/libgraph.c
projets/Graphique/libgraph.h renamed to projets/projetsfile/Graphique/libgraph.h
projets/Graphique/libgraph.o renamed to projets/projetsfile/Graphique/libgraph.o
No preview for this file type
projets/Liste/.directory renamed to projets/projetsfile/Liste/.directory
projets/Liste/Makefile renamed to projets/projetsfile/Liste/Makefile
projets/Liste/libFile.c renamed to projets/projetsfile/Liste/libFile.c
projets/Liste/libFile.h renamed to projets/projetsfile/Liste/libFile.h
projets/Liste/libFile.o renamed to projets/projetsfile/Liste/libFile.o
No preview for this file type
projets/Liste/libListe.a renamed to projets/projetsfile/Liste/libListe.a
No preview for this file type
projets/Lutins/game_over.bmp renamed to projets/projetsfile/Lutins/game_over.bmp
No preview for this file type
projets/Lutins/invader_bombe.bmp renamed to projets/projetsfile/Lutins/invader_bombe.bmp
No preview for this file type
projets/Lutins/invader_bouclier.bmp renamed to projets/projetsfile/Lutins/invader_bouclier.bmp
No preview for this file type
projets/Lutins/invader_canon.bmp renamed to projets/projetsfile/Lutins/invader_canon.bmp
No preview for this file type
projets/Lutins/invader_canon_ferraille.bmp renamed to projets/projetsfile/Lutins/invader_canon_ferraille.bmp
No preview for this file type
projets/Lutins/invader_missile.bmp renamed to projets/projetsfile/Lutins/invader_missile.bmp
No preview for this file type
projets/Lutins/invader_monstre1_1.bmp renamed to projets/projetsfile/Lutins/invader_monstre1_1.bmp
No preview for this file type
projets/Lutins/invader_monstre1_2.bmp renamed to projets/projetsfile/Lutins/invader_monstre1_2.bmp
No preview for this file type
projets/Lutins/invader_monstre2_1.bmp renamed to projets/projetsfile/Lutins/invader_monstre2_1.bmp
No preview for this file type
projets/Lutins/invader_monstre2_2.bmp renamed to projets/projetsfile/Lutins/invader_monstre2_2.bmp
No preview for this file type
projets/Lutins/invader_monstre3_1.bmp renamed to projets/projetsfile/Lutins/invader_monstre3_1.bmp
No preview for this file type
projets/Lutins/invader_monstre3_2.bmp renamed to projets/projetsfile/Lutins/invader_monstre3_2.bmp
No preview for this file type
projets/Lutins/invader_monstre_bouillie.bmp renamed to projets/projetsfile/Lutins/invader_monstre_bouillie.bmp
No preview for this file type
projets/Lutins/invader_ovni.bmp renamed to projets/projetsfile/Lutins/invader_ovni.bmp
No preview for this file type
projets/Lutins/level1.bmp renamed to projets/projetsfile/Lutins/level1.bmp
No preview for this file type
projets/Lutins/level2.bmp renamed to projets/projetsfile/Lutins/level2.bmp
No preview for this file type
projets/Lutins/level3.bmp renamed to projets/projetsfile/Lutins/level3.bmp
No preview for this file type
projets/Lutins/level_cleared.PNG renamed to projets/projetsfile/Lutins/level_cleared.PNG

15.3 KB

projets/Lutins/level_cleared.bmp renamed to projets/projetsfile/Lutins/level_cleared.bmp
No preview for this file type
projets/Lutins/millepatte_champi.bmp renamed to projets/projetsfile/Lutins/millepatte_champi.bmp
No preview for this file type
projets/Lutins/millepatte_corps_bas.bmp renamed to projets/projetsfile/Lutins/millepatte_corps_bas.bmp
No preview for this file type
projets/Lutins/millepatte_corps_droite.bmp renamed to projets/projetsfile/Lutins/millepatte_corps_droite.bmp
No preview for this file type
projets/Lutins/millepatte_corps_gauche.bmp renamed to projets/projetsfile/Lutins/millepatte_corps_gauche.bmp
No preview for this file type
projets/Lutins/millepatte_corps_haut.bmp renamed to projets/projetsfile/Lutins/millepatte_corps_haut.bmp
No preview for this file type
projets/Lutins/millepatte_tete_bas.bmp renamed to projets/projetsfile/Lutins/millepatte_tete_bas.bmp
No preview for this file type
projets/Lutins/millepatte_tete_droite.bmp renamed to projets/projetsfile/Lutins/millepatte_tete_droite.bmp
No preview for this file type
projets/Lutins/millepatte_tete_gauche.bmp renamed to projets/projetsfile/Lutins/millepatte_tete_gauche.bmp
No preview for this file type
projets/Lutins/millepatte_tete_haut.bmp renamed to projets/projetsfile/Lutins/millepatte_tete_haut.bmp
No preview for this file type
projets/Lutins/youwin.bmp renamed to projets/projetsfile/Lutins/youwin.bmp
No preview for this file type
projets/Makefile renamed to projets/projetsfile/Makefile
projets/Testliste/Makefile renamed to projets/projetsfile/Testliste/Makefile
projets/Testliste/projet renamed to projets/projetsfile/Testliste/projet
No preview for this file type
projets/Testliste/test.c renamed to projets/projetsfile/Testliste/test.c
projets/Testliste/test.o renamed to projets/projetsfile/Testliste/test.o
No preview for this file type
projets/projetsfile/scores.txt 0 → 100644
No preview for this file type
projets/projetslistechainee/Centipede/Makefile 0 → 100644
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
  1 +SOURCES = $(wildcard *.c)
  2 +OBJETS = $(SOURCES:.c=.o)
  3 +BIBLIOTHEQUES = -L ../Liste -lListe -L ../Graphique -lgraph
  4 +EXECUTABLE = centipede
  5 +CFLAGS += -Wall -I ../Liste -I ../Graphique
  6 +
  7 +all: $(EXECUTABLE)
  8 +
  9 +$(EXECUTABLE): $(OBJETS)
  10 + $(CC) -o $@ $^ $(BIBLIOTHEQUES) -lSDL
  11 +
  12 +clean:
  13 + rm -rf $(EXECUTABLE) *.o
projets/projetslistechainee/Centipede/centipede 0 → 100755
No preview for this file type
projets/projetslistechainee/Centipede/progprinc.c 0 → 100644
@@ -0,0 +1,302 @@ @@ -0,0 +1,302 @@
  1 +#include <stdio.h>
  2 +#include <stdlib.h>
  3 +#include <libFile.h>
  4 +#include <libgraph.h>
  5 +#include <unistd.h>
  6 +#include <time.h>
  7 +#include <SDL/SDL.h>
  8 +#define MAX_ELEMENTS 50
  9 +
  10 +typedef struct {
  11 + char pseudo[MAX_ELEMENTS];
  12 + char score;
  13 +}scorejoueur;
  14 +
  15 +typedef struct {
  16 + scorejoueur classement[10];
  17 +}classement;
  18 +
  19 +typedef struct {
  20 + int x;
  21 + int y;
  22 +}position;
  23 +
  24 +typedef struct {
  25 + position contenu[MAX_ELEMENTS];
  26 + int nombre;
  27 + } liste_poly;
  28 +
  29 +
  30 +void creationgrille(){
  31 +int i;
  32 +for(i = 0 ; i < 20; i++)
  33 + {
  34 + rectanglePlein(i*50,0,1,1000,5); //pose de la grille
  35 + rectanglePlein(0,i*50,1000,1,5);
  36 + } }
  37 +
  38 +
  39 +void affichage(element_t e)
  40 +{
  41 + position *p = e;
  42 + printf("%d %d \n", p->x, p->y);
  43 +}
  44 +
  45 +
  46 +void creerchampignons(int n,liste_poly *muschrooms,int champi){
  47 + position poschampi;
  48 + int i,w;
  49 + int test=0;
  50 + for(w=0;w<n;w++)
  51 + {
  52 + poschampi.x = (rand()%20)*50; //fonction de pose des champignons
  53 + poschampi.y = (rand()%20)*50;
  54 + for(i=0; i<w; i++){
  55 + if(muschrooms->contenu[i].x == poschampi.x && muschrooms->contenu[i].y == poschampi.y ) test=1;
  56 + }
  57 + if((poschampi.y > 570 || poschampi.y < 430) && test==0)
  58 + {
  59 + muschrooms->contenu[muschrooms->nombre++]=poschampi;
  60 + afficherLutin(champi,(muschrooms->contenu[w].x)+1,(muschrooms->contenu[w].y)+6);
  61 + }
  62 + else w--;
  63 + test = 0;
  64 + }
  65 +}
  66 +
  67 +
  68 +void creationcenti(Liste *liste,int Teted, int Corpsd) {
  69 + int x,y=500;
  70 + for(x = 300 ; x <= 450 ; x=x+50) { // fonction pour la creation centipede liste chainée
  71 + insertion(liste, x, y);
  72 + afficherLutin(Corpsd,x,y); }
  73 + x = 500;
  74 + afficherLutin(Teted,x,y);
  75 + insertion(liste, x, y);
  76 +}
  77 +
  78 +
  79 +int main() {
  80 + SDL_keysym* detail;
  81 + srand(time(NULL));
  82 + char touche;
  83 + unsigned char bas;
  84 + int largeur = 1000;
  85 + int hauteur = 1000;
  86 + char *titre = "Le Centipede";
  87 + scorejoueur scorefait={.pseudo={'\0'}};
  88 + scorejoueur autres;
  89 + scorejoueur lecture;
  90 + classement ranking;
  91 +
  92 + int champi = chargerLutin("Lutins/millepatte_champi.bmp",0);
  93 + int Teted = chargerLutin("Lutins/millepatte_tete_droite.bmp",0);
  94 + int Teteg = chargerLutin("Lutins/millepatte_tete_gauche.bmp",0);
  95 + int Teteh = chargerLutin("Lutins/millepatte_tete_haut.bmp",0);
  96 + int Teteb = chargerLutin("Lutins/millepatte_tete_bas.bmp",0);
  97 + int Corpsg = chargerLutin("Lutins/millepatte_corps_gauche.bmp",0);
  98 + int Corpsd = chargerLutin("Lutins/millepatte_corps_droite.bmp",0);
  99 + int Corpsh = chargerLutin("Lutins/millepatte_corps_haut.bmp",0);
  100 + int Corpsb = chargerLutin("Lutins/millepatte_corps_bas.bmp",0);
  101 + int gameover = chargerLutin("Lutins/game_over.bmp",0);
  102 + int level1 = chargerLutin("Lutins/level1.bmp",0);
  103 + int level2 = chargerLutin("Lutins/level2.bmp",0);
  104 + int level3 = chargerLutin("Lutins/level3.bmp",0);
  105 + int levelclr = chargerLutin("Lutins/level_cleared.bmp",0);
  106 + int youwin = chargerLutin("Lutins/youwin.bmp",0);
  107 + int Tete;
  108 + int Corps;
  109 + int i;
  110 + int abs, ord, obstacle=0, couleur,level=1,speed=5000,total=0,nombrechampis=6, s,nvx,nvy,abscenti,ordcenti,absqueue,ordqueue,ecriture=1,j,w;
  111 +
  112 + if(champi<0 || Teted<0 || Teteg<0 || Teteh <0 || Teteb<0 || Corpsg<0 || Corpsd<0 || Corpsh<0 || Corpsb<0 || gameover<0 || level1<0 || level2<0 || level3<0 || levelclr<0 || youwin<0){ printf("Image pas là\n"); exit(-1); }
  113 +
  114 + creerSurface(largeur,hauteur,titre);
  115 + majSurface();
  116 + int gomme = creerLutin(0,0,50,50,-1);
  117 +
  118 +while(level<=3) {
  119 +
  120 + liste_poly muschrooms={.nombre=0};
  121 + Liste *maListe = initialisation();
  122 + int w,t,compteur=0,allonge;
  123 +
  124 + rectanglePlein(0,0,1000,1000,1);
  125 + rectanglePlein(0,0,1000,1000,1);
  126 +
  127 +
  128 + if(level==1) { afficherLutin(level1,250,250); majSurface(); sleep(1); }
  129 + if(level==2) { afficherLutin(level2,250,250); majSurface(); sleep(1); }
  130 + if(level==3) { afficherLutin(level3,250,250); majSurface(); sleep(1); }
  131 +
  132 + rectanglePlein(0,0,1000,1000,1);
  133 + rectanglePlein(0,0,1000,1000,1);
  134 +
  135 + creationcenti(maListe,Teted,Corpsd);
  136 +
  137 + creerchampignons(nombrechampis,&muschrooms,champi);
  138 +
  139 + majSurface();
  140 +
  141 + attendreEvenement();
  142 +
  143 + s = 0;
  144 + t = 0;
  145 +
  146 + while(1){
  147 +
  148 + for(i=0;i<speed;i++)
  149 + {
  150 + if(lireTouche(&bas,&touche,(void **)&detail) && bas==1)
  151 + {
  152 + if(detail->sym==SDLK_RIGHT) t=0;
  153 + if(detail->sym==SDLK_UP) t=1;
  154 + if(detail->sym==SDLK_LEFT) t=2;
  155 + if(detail->sym==SDLK_DOWN) t=3;
  156 + }
  157 +
  158 + usleep(1);
  159 + }
  160 + if((t==0 && s!=2) || s==0) { abs=50; ord=0; Tete = Teted; Corps = Corpsd; s=0; }
  161 + if((t==1 && s!=3) || s==1) { abs=0; ord=(-50); Tete = Teteh; Corps = Corpsh; s=1; }
  162 + if((t==2 && s!=0) || s==2) { abs=-50; ord=0; Tete = Teteg; Corps = Corpsg; s=2; }
  163 + if((t==3 && s!=1) || s==3) { abs=0; ord=50; Tete = Teteb; Corps = Corpsb; s=3; }
  164 +
  165 + abscenti = abstete(maListe);
  166 + ordcenti = ordtete(maListe);
  167 + nvx = abscenti+abs;
  168 + nvy = ordcenti+ord;
  169 + if(nvx==1000 || nvy==1000 || nvx==-50 || nvy==-50)
  170 + {
  171 + afficherLutin(gameover,250,433);
  172 + majSurface();
  173 + sleep(5);
  174 + break;
  175 + }
  176 +
  177 + majSurface();
  178 + couleur = couleurPixel(nvx+25,nvy+25);
  179 + if(couleur!=1) obstacle = 1;
  180 + else obstacle = 0;
  181 + allonge = 0;
  182 +
  183 +
  184 + if(obstacle==1){
  185 + for(w=0;w<nombrechampis;w++)
  186 + {
  187 + if((muschrooms.contenu[w].x) == nvx && (muschrooms.contenu[w].y) == nvy) { allonge = 1; } }
  188 + if(allonge==1){
  189 + afficherLutin(gomme,nvx,nvy);
  190 + afficherLutin(gomme,abscenti,ordcenti);
  191 + afficherLutin(Corps,abscenti,ordcenti);
  192 + insertion(maListe,nvx,nvy);
  193 + afficherLutin(Tete,nvx,nvy);
  194 + compteur++;
  195 + }
  196 + else {
  197 + afficherLutin(gameover,250,433);
  198 + majSurface();
  199 + sleep(5);
  200 + break;
  201 + }
  202 +
  203 +
  204 + }
  205 +
  206 + if(obstacle==0){
  207 + afficherLutin(gomme,abscenti,ordcenti);
  208 + afficherLutin(Corps,abscenti,ordcenti);
  209 + absqueue = abscul(maListe);
  210 + ordqueue = ordcul(maListe);
  211 + freelastbloc(maListe);
  212 + insertion(maListe,nvx,nvy);
  213 + afficherLutin(Tete,nvx,nvy);
  214 + afficherLutin(gomme,absqueue,ordqueue);
  215 + }
  216 +
  217 + majSurface();
  218 +
  219 + if(compteur==nombrechampis) break;
  220 +
  221 + if(touche=='a')
  222 + {
  223 + fermerSurface();
  224 + return 0;
  225 + }
  226 + }
  227 +
  228 +
  229 + total = total+compteur;
  230 + if(compteur != nombrechampis) break;
  231 + if(level==3) { afficherLutin(youwin,204,400); majSurface(); sleep(3); }
  232 + else { afficherLutin(levelclr,304,454); majSurface(); sleep(3); }
  233 + compteur = 0;
  234 + nombrechampis = nombrechampis+3;
  235 + speed = speed/2;
  236 + level++;
  237 + freeListe(maListe);
  238 +}
  239 + printf("votre score est de %d\n",total);
  240 +
  241 + for(i=0;i<10;i++) // initialisation de la liste classement
  242 + {
  243 + strcpy(ranking.classement[i].pseudo,"vide");
  244 + ranking.classement[i].score=0;
  245 + }
  246 +
  247 + fermerSurface();
  248 + printf("Saisissez votre pseudo\n");
  249 + scanf("%s",scorefait.pseudo);
  250 + scorefait.score=total;
  251 +
  252 +
  253 + FILE *fichier=fopen("scores.txt","a+"); // Gestion fichier
  254 + fclose(fichier);
  255 + fichier=fopen("scores.txt","r+");
  256 + if(fichier!=NULL){
  257 +
  258 + while((fread(&autres,sizeof(autres),1,fichier)!=0))
  259 + {
  260 + if(strcmp(autres.pseudo,scorefait.pseudo)==0)
  261 + {
  262 + if(total>autres.score)
  263 + {
  264 + fseek(fichier,-sizeof(scorefait),SEEK_CUR);
  265 + fwrite(&scorefait,sizeof(scorefait),1,fichier);
  266 + }
  267 + ecriture=0;
  268 + break;
  269 + }
  270 + ecriture=1;
  271 + }
  272 + if(ecriture==1) {fwrite(&scorefait,sizeof(scorefait),1,fichier);}
  273 + }
  274 + rewind(fichier);
  275 + while((fread(&lecture,sizeof(lecture),1,fichier)!=0))
  276 + {
  277 + for(w=0;w<10;w++)
  278 + {
  279 + if(lecture.score>ranking.classement[w].score)
  280 + {
  281 + for(j=10;j>w;j--)
  282 + {
  283 + strcpy(ranking.classement[j].pseudo,ranking.classement[j-1].pseudo); // gestion et affichage classement
  284 + ranking.classement[j].score=ranking.classement[j-1].score;
  285 + }
  286 + strcpy(ranking.classement[w].pseudo,lecture.pseudo);
  287 + ranking.classement[w].score=lecture.score;
  288 + break;
  289 + }
  290 + }
  291 + }
  292 + printf("RANKING :\n");
  293 + for(w=0;w<10;w++)
  294 + {
  295 + printf("%i : %s , score : %d\n",w+1,ranking.classement[w].pseudo,ranking.classement[w].score);
  296 + }
  297 + fclose(fichier);
  298 +
  299 + return 0;
  300 +}
  301 +
  302 +
projets/projetslistechainee/Centipede/progprinc.c~ 0 → 100644
@@ -0,0 +1,304 @@ @@ -0,0 +1,304 @@
  1 +#include <stdio.h>
  2 +#include <stdlib.h>
  3 +#include <libFile.h>
  4 +#include <libgraph.h>
  5 +#include <unistd.h>
  6 +#include <time.h>
  7 +#include <SDL/SDL.h>
  8 +#define MAX_ELEMENTS 50
  9 +
  10 +typedef struct {
  11 + char pseudo[MAX_ELEMENTS];
  12 + char score;
  13 +}scorejoueur;
  14 +
  15 +typedef struct {
  16 + scorejoueur classement[10];
  17 +}classement;
  18 +
  19 +typedef struct {
  20 + int x;
  21 + int y;
  22 +}position;
  23 +
  24 +typedef struct {
  25 + position contenu[MAX_ELEMENTS];
  26 + int nombre;
  27 + } liste_poly;
  28 +
  29 +
  30 +void creationgrille(){
  31 +int i;
  32 +for(i = 0 ; i < 20; i++)
  33 + {
  34 + rectanglePlein(i*50,0,1,1000,5); //pose de la grille
  35 + rectanglePlein(0,i*50,1000,1,5);
  36 + } }
  37 +
  38 +
  39 +void affichage(element_t e)
  40 +{
  41 + position *p = e;
  42 + printf("%d %d \n", p->x, p->y);
  43 +}
  44 +
  45 +
  46 +void creerchampignons(int n,liste_poly *muschrooms,int champi){
  47 + position poschampi;
  48 + int i,w;
  49 + int test=0;
  50 + for(w=0;w<n;w++)
  51 + {
  52 + poschampi.x = (rand()%20)*50; //fonction de pose des champignons
  53 + poschampi.y = (rand()%20)*50;
  54 + for(i=0; i<w; i++){
  55 + if(muschrooms->contenu[i].x == poschampi.x && muschrooms->contenu[i].y == poschampi.y ) test=1;
  56 + }
  57 + if((poschampi.y > 570 || poschampi.y < 430) && test==0)
  58 + {
  59 + muschrooms->contenu[muschrooms->nombre++]=poschampi;
  60 + afficherLutin(champi,(muschrooms->contenu[w].x)+1,(muschrooms->contenu[w].y)+6);
  61 + }
  62 + else w--;
  63 + test = 0;
  64 + }
  65 +}
  66 +
  67 +
  68 +void creationcenti(Liste *liste,int Teted, int Corpsd) {
  69 + int x,y=500;
  70 + for(x = 300 ; x <= 450 ; x=x+50) { // fonction pour la creation centipede liste chainée
  71 + insertion(liste, x, y);
  72 + afficherLutin(Corpsd,x,y); }
  73 + x = 500;
  74 + afficherLutin(Teted,x,y);
  75 + insertion(liste, x, y);
  76 +}
  77 +
  78 +
  79 +int main() {
  80 + SDL_keysym* detail;
  81 + srand(time(NULL));
  82 + char touche;
  83 + unsigned char bas;
  84 + int largeur = 1000;
  85 + int hauteur = 1000;
  86 + char *titre = "Le Centipede";
  87 + position *pos;
  88 + position posmillepatte;
  89 + scorejoueur scorefait={.pseudo={'\0'}};
  90 + scorejoueur autres;
  91 + scorejoueur lecture;
  92 + classement ranking;
  93 +
  94 + int champi = chargerLutin("Lutins/millepatte_champi.bmp",0);
  95 + int Teted = chargerLutin("Lutins/millepatte_tete_droite.bmp",0);
  96 + int Teteg = chargerLutin("Lutins/millepatte_tete_gauche.bmp",0);
  97 + int Teteh = chargerLutin("Lutins/millepatte_tete_haut.bmp",0);
  98 + int Teteb = chargerLutin("Lutins/millepatte_tete_bas.bmp",0);
  99 + int Corpsg = chargerLutin("Lutins/millepatte_corps_gauche.bmp",0);
  100 + int Corpsd = chargerLutin("Lutins/millepatte_corps_droite.bmp",0);
  101 + int Corpsh = chargerLutin("Lutins/millepatte_corps_haut.bmp",0);
  102 + int Corpsb = chargerLutin("Lutins/millepatte_corps_bas.bmp",0);
  103 + int gameover = chargerLutin("Lutins/game_over.bmp",0);
  104 + int level1 = chargerLutin("Lutins/level1.bmp",0);
  105 + int level2 = chargerLutin("Lutins/level2.bmp",0);
  106 + int level3 = chargerLutin("Lutins/level3.bmp",0);
  107 + int levelclr = chargerLutin("Lutins/level_cleared.bmp",0);
  108 + int youwin = chargerLutin("Lutins/youwin.bmp",0);
  109 + int Tete;
  110 + int Corps;
  111 + int i;
  112 + int abs, ord, obstacle=0, couleur,level=1,speed=5000,total=0,nombrechampis=6, s,nvx,nvy,abscenti,ordcenti,absqueue,ordqueue,ecriture=1,j,w;
  113 +
  114 + if(champi<0 || Teted<0 || Teteg<0 || Teteh <0 || Teteb<0 || Corpsg<0 || Corpsd<0 || Corpsh<0 || Corpsb<0 || gameover<0 || level1<0 || level2<0 || level3<0 || levelclr<0 || youwin<0){ printf("Image pas là\n"); exit(-1); }
  115 +
  116 + creerSurface(largeur,hauteur,titre);
  117 + majSurface();
  118 + int gomme = creerLutin(0,0,50,50,-1);
  119 +
  120 +while(level<=3) {
  121 +
  122 + liste_poly muschrooms={.nombre=0};
  123 + Liste *maListe = initialisation();
  124 + int w,t,compteur=0,allonge;
  125 +
  126 + rectanglePlein(0,0,1000,1000,1);
  127 + rectanglePlein(0,0,1000,1000,1);
  128 +
  129 +
  130 + if(level==1) { afficherLutin(level1,250,250); majSurface(); sleep(1); }
  131 + if(level==2) { afficherLutin(level2,250,250); majSurface(); sleep(1); }
  132 + if(level==3) { afficherLutin(level3,250,250); majSurface(); sleep(1); }
  133 +
  134 + rectanglePlein(0,0,1000,1000,1);
  135 + rectanglePlein(0,0,1000,1000,1);
  136 +
  137 + creationcenti(maListe,Teted,Corpsd);
  138 +
  139 + creerchampignons(nombrechampis,&muschrooms,champi);
  140 +
  141 + majSurface();
  142 +
  143 + attendreEvenement();
  144 +
  145 + s = 0;
  146 + t = 0;
  147 +
  148 + while(1){
  149 +
  150 + for(i=0;i<speed;i++)
  151 + {
  152 + if(lireTouche(&bas,&touche,(void **)&detail) && bas==1)
  153 + {
  154 + if(detail->sym==SDLK_RIGHT) t=0;
  155 + if(detail->sym==SDLK_UP) t=1;
  156 + if(detail->sym==SDLK_LEFT) t=2;
  157 + if(detail->sym==SDLK_DOWN) t=3;
  158 + }
  159 +
  160 + usleep(1);
  161 + }
  162 + if((t==0 && s!=2) || s==0) { abs=50; ord=0; Tete = Teted; Corps = Corpsd; s=0; }
  163 + if((t==1 && s!=3) || s==1) { abs=0; ord=(-50); Tete = Teteh; Corps = Corpsh; s=1; }
  164 + if((t==2 && s!=0) || s==2) { abs=-50; ord=0; Tete = Teteg; Corps = Corpsg; s=2; }
  165 + if((t==3 && s!=1) || s==3) { abs=0; ord=50; Tete = Teteb; Corps = Corpsb; s=3; }
  166 +
  167 + abscenti = abstete(maListe);
  168 + ordcenti = ordtete(maListe);
  169 + nvx = abscenti+abs;
  170 + nvy = ordcenti+ord;
  171 + if(nvx==1000 || nvy==1000 || nvx==-50 || nvy==-50)
  172 + {
  173 + afficherLutin(gameover,250,433);
  174 + majSurface();
  175 + sleep(5);
  176 + break;
  177 + }
  178 +
  179 + majSurface();
  180 + couleur = couleurPixel(nvx+25,nvy+25);
  181 + if(couleur!=1) obstacle = 1;
  182 + else obstacle = 0;
  183 + allonge = 0;
  184 +
  185 +
  186 + if(obstacle==1){
  187 + for(w=0;w<nombrechampis;w++)
  188 + {
  189 + if((muschrooms.contenu[w].x) == nvx && (muschrooms.contenu[w].y) == nvy) { allonge = 1; } }
  190 + if(allonge==1){
  191 + afficherLutin(gomme,nvx,nvy);
  192 + afficherLutin(gomme,abscenti,ordcenti);
  193 + afficherLutin(Corps,abscenti,ordcenti);
  194 + insertion(maListe,nvx,nvy);
  195 + afficherLutin(Tete,nvx,nvy);
  196 + compteur++;
  197 + }
  198 + else {
  199 + afficherLutin(gameover,250,433);
  200 + majSurface();
  201 + sleep(5);
  202 + break;
  203 + }
  204 +
  205 +
  206 + }
  207 +
  208 + if(obstacle==0){
  209 + afficherLutin(gomme,abscenti,ordcenti);
  210 + afficherLutin(Corps,abscenti,ordcenti);
  211 + absqueue = abscul(maListe);
  212 + ordqueue = ordcul(maListe);
  213 + freelastbloc(maListe);
  214 + insertion(maListe,nvx,nvy);
  215 + afficherLutin(Tete,nvx,nvy);
  216 + afficherLutin(gomme,absqueue,ordqueue);
  217 + }
  218 +
  219 + majSurface();
  220 +
  221 + if(compteur==nombrechampis) break;
  222 +
  223 + if(touche=='a')
  224 + {
  225 + fermerSurface();
  226 + return 0;
  227 + }
  228 + }
  229 +
  230 +
  231 + total = total+compteur;
  232 + if(compteur != nombrechampis) break;
  233 + if(level==3) { afficherLutin(youwin,204,400); majSurface(); sleep(3); }
  234 + else { afficherLutin(levelclr,304,454); majSurface(); sleep(3); }
  235 + compteur = 0;
  236 + nombrechampis = nombrechampis+3;
  237 + speed = speed/2;
  238 + level++;
  239 + freeListe(maListe);
  240 +}
  241 + printf("votre score est de %d\n",total);
  242 +
  243 + for(i=0;i<10;i++) // initialisation de la liste classement
  244 + {
  245 + strcpy(ranking.classement[i].pseudo,"vide");
  246 + ranking.classement[i].score=0;
  247 + }
  248 +
  249 + fermerSurface();
  250 + printf("Saisissez votre pseudo\n");
  251 + scanf("%s",scorefait.pseudo);
  252 + scorefait.score=total;
  253 +
  254 +
  255 + FILE *fichier=fopen("scores.txt","a+"); // Gestion fichier
  256 + fclose(fichier);
  257 + fichier=fopen("scores.txt","r+");
  258 + if(fichier!=NULL){
  259 +
  260 + while((fread(&autres,sizeof(autres),1,fichier)!=0))
  261 + {
  262 + if(strcmp(autres.pseudo,scorefait.pseudo)==0)
  263 + {
  264 + if(total>autres.score)
  265 + {
  266 + fseek(fichier,-sizeof(scorefait),SEEK_CUR);
  267 + fwrite(&scorefait,sizeof(scorefait),1,fichier);
  268 + }
  269 + ecriture=0;
  270 + break;
  271 + }
  272 + ecriture=1;
  273 + }
  274 + if(ecriture==1) {fwrite(&scorefait,sizeof(scorefait),1,fichier);}
  275 + }
  276 + rewind(fichier);
  277 + while((fread(&lecture,sizeof(lecture),1,fichier)!=0))
  278 + {
  279 + for(w=0;w<10;w++)
  280 + {
  281 + if(lecture.score>ranking.classement[w].score)
  282 + {
  283 + for(j=10;j>w;j--)
  284 + {
  285 + strcpy(ranking.classement[j].pseudo,ranking.classement[j-1].pseudo); // gestion et affichage classement
  286 + ranking.classement[j].score=ranking.classement[j-1].score;
  287 + }
  288 + strcpy(ranking.classement[w].pseudo,lecture.pseudo);
  289 + ranking.classement[w].score=lecture.score;
  290 + break;
  291 + }
  292 + }
  293 + }
  294 + printf("RANKING :\n");
  295 + for(w=0;w<10;w++)
  296 + {
  297 + printf("%i : %s , score : %d\n",w+1,ranking.classement[w].pseudo,ranking.classement[w].score);
  298 + }
  299 + fclose(fichier);
  300 +
  301 + return 0;
  302 +}
  303 +
  304 +
projets/projetslistechainee/Centipede/progprinc.o 0 → 100644
No preview for this file type
projets/projetslistechainee/Graphique/Makefile 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +#
  2 +# Makefile pour la bibliotheque graphique
  3 +#
  4 +
  5 +SOURCES = $(wildcard *.c)
  6 +OBJETS = $(SOURCES:.c=.o)
  7 +CIBLE = libgraph.a
  8 +
  9 +#
  10 +# Nom de la cible principale
  11 +#
  12 +
  13 +all: $(CIBLE)
  14 +
  15 +#
  16 +# Cible de nettoyage
  17 +#
  18 +
  19 +clean:
  20 + rm -f core *.o $(CIBLE)
  21 +
  22 +#
  23 +# Dependances pour la bibliotheque
  24 +#
  25 +
  26 +$(CIBLE): $(OBJETS)
  27 + $(AR) rs $@ $?
  28 +
  29 +$(CIBLE:.a=).o: $(CIBLE:.a=).c $(CIBLE:.a=).h
projets/projetslistechainee/Graphique/libgraph.a 0 → 100644
No preview for this file type
projets/projetslistechainee/Graphique/libgraph.c 0 → 100644
@@ -0,0 +1,180 @@ @@ -0,0 +1,180 @@
  1 +/**** Bibliotheque graphique ****/
  2 +
  3 +/** Fichiers d'inclusion **/
  4 +
  5 +#include <SDL/SDL.h>
  6 +
  7 +#include "libgraph.h"
  8 +
  9 +/** Types **/
  10 +
  11 +typedef struct { int r,v,b; } couleur;
  12 +
  13 +/** Constantes **/
  14 +
  15 +#define BITS_PAR_PIXEL 32
  16 +
  17 +static const couleur couleurs[]={
  18 + {255,255,255},
  19 + {0,0,0},
  20 + {255,0,0},
  21 + {0,255,0},
  22 + {0,0,255},
  23 + {255,105,180},
  24 + {150,150,150},
  25 + {-1,-1,-1}
  26 + };
  27 +
  28 +/** Variables globales **/
  29 +
  30 +static SDL_Surface *surface;
  31 +
  32 +/** Fonctions **/
  33 +
  34 +/* Initialisation de la surface dessinable */
  35 +
  36 +unsigned char creerSurface(int largeur,int hauteur,char *titre){
  37 +SDL_Init(SDL_INIT_VIDEO);
  38 +SDL_WM_SetCaption(titre,titre);
  39 +surface=SDL_SetVideoMode(largeur,hauteur,BITS_PAR_PIXEL,SDL_DOUBLEBUF);
  40 +return (surface!=NULL);
  41 +}
  42 +
  43 +/* Fermeture de la surface dessinable */
  44 +
  45 +void fermerSurface(void){
  46 +if(surface!=NULL) SDL_FreeSurface(surface);
  47 +SDL_Quit();
  48 +}
  49 +
  50 +/* Creation d'une couleur */
  51 +
  52 +static int creerCouleur(int ncouleur){
  53 +couleur c=couleurs[ncouleur];
  54 +return SDL_MapRGB(surface->format,c.r,c.v,c.b);
  55 +}
  56 +
  57 +/* Dessin d'un rectangle plein */
  58 +
  59 +void rectanglePlein(int x,int y,int l,int h,int c){
  60 +SDL_Rect rectangle={x,y,l,h};
  61 +SDL_FillRect(surface,&rectangle,creerCouleur(c));
  62 +//SDL_Flip(surface);
  63 +}
  64 +
  65 +/* Manipulation de lutins */
  66 +
  67 +static SDL_Surface *lutins[MAX_LUTINS];
  68 +static int lutins_nb=0;
  69 +
  70 +static void configurerLutin(SDL_Surface *lutin,int ncouleur){
  71 +couleur c=couleurs[ncouleur];
  72 +int fond=SDL_MapRGB(lutin->format,c.r,c.v,c.b);
  73 +SDL_SetColorKey(lutin,SDL_SRCCOLORKEY|SDL_RLEACCEL,fond);
  74 +}
  75 +
  76 +int chargerLutin(char *fichier,int couleur){
  77 +if(lutins_nb>=MAX_LUTINS) return -2;
  78 +SDL_Surface *lutin=SDL_LoadBMP(fichier);
  79 +if(lutin!=NULL){
  80 + lutins[lutins_nb++]=lutin;
  81 + if(couleur>=0) configurerLutin(lutin,couleur);
  82 + return lutins_nb-1;
  83 + }
  84 +return -1;
  85 +}
  86 +
  87 +void afficherLutin(int lutin,int x,int y){
  88 +SDL_Rect position;
  89 +position.x=x;
  90 +position.y=y;
  91 +SDL_BlitSurface(lutins[lutin],NULL,surface,&position);
  92 +}
  93 +
  94 +int creerLutin(int x,int y,int largeur,int hauteur,int couleur){
  95 +if(lutins_nb>=MAX_LUTINS) return -2;
  96 +int rmask,gmask,bmask,amask;
  97 +#if SDL_BYTEORDER == SDL_BIG_ENDIAN
  98 +rmask=0xff000000; gmask=0x00ff0000; bmask=0x0000ff00; amask=0x000000ff;
  99 +#else
  100 +rmask=0x000000ff; gmask=0x0000ff00; bmask=0x00ff0000; amask=0xff000000;
  101 +#endif
  102 +if(couleur<0) amask=0x00000000;
  103 +SDL_Surface *lutin=SDL_CreateRGBSurface(0,largeur,hauteur,BITS_PAR_PIXEL,rmask,gmask,bmask,amask);
  104 +SDL_Rect fenetre;
  105 +fenetre.x=x;
  106 +fenetre.y=y;
  107 +fenetre.h=hauteur;
  108 +fenetre.w=largeur;
  109 +SDL_BlitSurface(surface,&fenetre,lutin,NULL);
  110 +lutins[lutins_nb++]=lutin;
  111 +if(couleur>=0) configurerLutin(lutin,couleur);
  112 +return lutins_nb-1;
  113 +}
  114 +
  115 +void tailleLutin(int lutin,int *largeur,int *hauteur){
  116 +*largeur=lutins[lutin]->w;
  117 +*hauteur=lutins[lutin]->h;
  118 +}
  119 +
  120 +int sauverLutin(int lutin,char *nom){ return SDL_SaveBMP(lutins[lutin],nom); }
  121 +
  122 +/* Manipulation de copie de surface en BMP */
  123 +
  124 +int sauverSurface(char *fichier){ return SDL_SaveBMP(surface,fichier); }
  125 +
  126 +unsigned char chargerSurface(char *fichier){
  127 +SDL_Surface *image=SDL_LoadBMP(fichier);
  128 +if(image!=NULL){
  129 + SDL_BlitSurface(image,NULL,surface,NULL);
  130 + SDL_Flip(surface);
  131 + }
  132 +return (image!=NULL);
  133 +}
  134 +
  135 +void majSurface(void){ SDL_Flip(surface); }
  136 +
  137 +/* Trouver la couleur d'un pixel */
  138 +
  139 +int couleurPixel(int x,int y){
  140 +int bpp=surface->format->BytesPerPixel;
  141 +Uint32 *p=(Uint32 *)(surface->pixels+y*surface->pitch+x*bpp);
  142 +Uint8 r,v,b;
  143 +SDL_GetRGB(*p,surface->format,&r,&v,&b);
  144 +int i=0;
  145 +while(1){
  146 + if(couleurs[i].r<0) break;
  147 + if(r==couleurs[i].r && v==couleurs[i].v && b==couleurs[i].b) break;
  148 + i++;
  149 + }
  150 +if(couleurs[i].r<0) return -1; else return i;
  151 +}
  152 +
  153 +/* Fonction de traitement des événements */
  154 +
  155 +unsigned char lireTouche(unsigned char *bas,char *touche,void **detail){
  156 +static SDL_keysym _detail;
  157 +SDL_Event event;
  158 +while(SDL_PollEvent(&event)){
  159 + if(event.type==SDL_KEYDOWN || event.type==SDL_KEYUP){
  160 + *bas=(event.type==SDL_KEYDOWN)?1:0;
  161 + char* nom=SDL_GetKeyName(event.key.keysym.sym);
  162 + if(strlen(nom)==1 && nom[0]>=32 && nom[0]<128) *touche=nom[0]; else *touche=0;
  163 + _detail=event.key.keysym;
  164 + *detail=&_detail;
  165 + return 1;
  166 + }
  167 + }
  168 +return 0;
  169 +}
  170 +
  171 +void attendreEvenement(void){
  172 +SDL_Event event;
  173 +while(SDL_WaitEvent(&event))
  174 + switch(event.type){
  175 + case SDL_KEYDOWN:
  176 + case SDL_MOUSEBUTTONDOWN:
  177 + case SDL_QUIT:
  178 + return;
  179 + }
  180 +}
projets/projetslistechainee/Graphique/libgraph.h 0 → 100644
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
  1 +/**** Bibliotheque graphique (definitions) ****/
  2 +
  3 +/** Constantes **/
  4 +
  5 +#define COULEUR_BLANC 0
  6 +#define COULEUR_NOIR 1
  7 +#define COULEUR_ROUGE 2
  8 +#define COULEUR_VERT 3
  9 +#define COULEUR_BLEU 4
  10 +#define COULEUR_ROSE 5
  11 +#define COULEUR_GRIS 6
  12 +
  13 +#define MAX_LUTINS 16
  14 +
  15 +/** Prototypes **/
  16 +
  17 +unsigned char creerSurface(int largeur,int hauteur,char *titre);
  18 +unsigned char chargerSurface(char *fichier);
  19 +int sauverSurface(char *fichier);
  20 +void majSurface(void);
  21 +void fermerSurface(void);
  22 +
  23 +void rectanglePlein(int x,int y,int l,int h,int c);
  24 +int couleurPixel(int x,int y);
  25 +
  26 +int chargerLutin(char *fichier,int couleur);
  27 +void afficherLutin(int lutin,int x,int y);
  28 +int creerLutin(int x,int y,int largeur,int hauteur,int couleur);
  29 +int sauverLutin(int lutin,char *nom);
  30 +void tailleLutin(int lutin,int *largeur,int *hauteur);
  31 +
  32 +unsigned char lireTouche(unsigned char *bas,char *touche,void **detail);
  33 +void attendreEvenement(void);
projets/projetslistechainee/Graphique/libgraph.o 0 → 100644
No preview for this file type
projets/projetslistechainee/Liste/.directory 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +[Dolphin]
  2 +Timestamp=2016,6,17,14,20,55
  3 +Version=3
  4 +
  5 +[Settings]
  6 +HiddenFilesShown=true
projets/projetslistechainee/Liste/Makefile 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +#
  2 +# Makefile pour la bibliotheque graphique
  3 +#
  4 +
  5 +SOURCES = $(wildcard *.c)
  6 +OBJETS = $(SOURCES:.c=.o)
  7 +CIBLE = libListe.a
  8 +
  9 +#
  10 +# Nom de la cible principale
  11 +#
  12 +
  13 +all: $(CIBLE)
  14 +
  15 +#
  16 +# Cible de nettoyage
  17 +#
  18 +
  19 +clean:
  20 + rm -f core *.o $(CIBLE)
  21 +
  22 +#
  23 +# Dependances pour la bibliotheque
  24 +#
  25 +
  26 +$(CIBLE): $(OBJETS)
  27 + $(AR) rs $@ $?
  28 +
  29 +$(CIBLE:.a=).o: $(CIBLE:.a=).c $(CIBLE:.a=).h
projets/projetslistechainee/Liste/a.out 0 → 100755
No preview for this file type
projets/projetslistechainee/Liste/libFile.c 0 → 100644
@@ -0,0 +1,192 @@ @@ -0,0 +1,192 @@
  1 +#include <stdio.h>
  2 +#include <stdlib.h>
  3 +#include "libFile.h"
  4 +#include <string.h>
  5 +
  6 +// Fonctions pour projets avec file
  7 +
  8 +int taille(liste_t *l)
  9 +{
  10 + return l->nombre;
  11 +}
  12 +
  13 +int enfiler (liste_t *l, element_t e, int taille){
  14 +element_t nouveau=malloc(taille);
  15 +memcpy(nouveau,e,taille);
  16 +if (l->nombre >= l->alloue)
  17 + {
  18 + l->contenu = realloc(l->contenu, (l->alloue+300)*sizeof(element_t));
  19 + l->alloue+=300;
  20 + }
  21 +l->contenu[l->nombre++]=nouveau;
  22 +return 0;
  23 +}
  24 +
  25 +
  26 +
  27 +int afficher(liste_t *l, void(*affichage)(element_t)) {
  28 +int i;
  29 +for(i=0; i<taille(l); i++) affichage(l->contenu[i]);
  30 +return 0;
  31 +}
  32 +
  33 +int defiler(liste_t *l)
  34 +{
  35 + int i;
  36 +
  37 + if(taille(l)>=1)
  38 + {
  39 + free(l->contenu[0]);
  40 + for(i=0; i < taille(l); i++)
  41 + {
  42 + l->contenu[i]=l->contenu[i+1];
  43 + }
  44 + l->nombre--;
  45 + }
  46 + return 0;
  47 +}
  48 +
  49 +element_t premier(liste_t *l) {
  50 + return l->contenu[0]; }
  51 +
  52 +element_t dernier(liste_t *l) {
  53 + return l->contenu[(l->nombre)-1];}
  54 +
  55 +element_t enieme(int x, liste_t *l) {
  56 + return l->contenu[x];
  57 +}
  58 +
  59 +// Fonctions pour liste chainée
  60 +
  61 +
  62 +Liste *initialisation()
  63 +{
  64 + Liste *liste = malloc(sizeof(*liste));
  65 + Element *element = malloc(sizeof(*element));
  66 +
  67 + if (liste == NULL || element == NULL)
  68 + {
  69 + exit(EXIT_FAILURE);
  70 + }
  71 + element->x =0;
  72 + element->y =0;
  73 +
  74 + element->suivant = NULL;
  75 + liste->premier = element;
  76 + liste->nbelements =0;
  77 +
  78 + return liste;
  79 +}
  80 +
  81 +void insertion(Liste *liste, int x, int y)
  82 +{
  83 + /* Création du nouvel élément */
  84 + Element *nouveau = malloc(sizeof(*nouveau));
  85 + if (liste == NULL || nouveau == NULL)
  86 + {
  87 + exit(EXIT_FAILURE);
  88 + }
  89 + nouveau->x = x;
  90 + nouveau->y = y;
  91 +
  92 + /* Insertion de l'élément au début de la liste */
  93 + nouveau->suivant = liste->premier;
  94 + liste->premier = nouveau;
  95 + liste->nbelements=liste->nbelements+1;
  96 +}
  97 +
  98 +void afficherListe(Liste *liste)
  99 +{
  100 + if (liste == NULL)
  101 + {
  102 + exit(EXIT_FAILURE);
  103 + }
  104 +
  105 + Element *actuel = liste->premier;
  106 +
  107 + while (actuel != NULL)
  108 + {
  109 + printf("combinaison x,y : %d , %d \n", actuel->x,actuel->y);
  110 + actuel = actuel->suivant;
  111 + }
  112 +}
  113 +
  114 +void suppression(Liste *liste)
  115 +{
  116 + if (liste == NULL)
  117 + {
  118 + exit(EXIT_FAILURE);
  119 + }
  120 +
  121 + if (liste->premier != NULL)
  122 + {
  123 + Element *aSupprimer = liste->premier;
  124 + liste->premier = liste->premier->suivant;
  125 + free(aSupprimer);
  126 + }
  127 +}
  128 +
  129 +int abstete(Liste *liste){
  130 +
  131 + Element *actuel = liste->premier;
  132 + return actuel->x;
  133 +
  134 +}
  135 +
  136 +int tailledelachaine(Liste *liste) {
  137 +
  138 + return liste->nbelements;
  139 +
  140 +}
  141 +
  142 +
  143 +int ordtete(Liste *liste) {
  144 + Element *actuel = liste->premier;
  145 + return actuel->y;
  146 +}
  147 +
  148 +int abscul(Liste *liste) {
  149 + Element *actuel = liste->premier;
  150 + int i;
  151 + for(i=1;i<liste->nbelements;i++)
  152 + {
  153 + actuel = actuel->suivant;
  154 + }
  155 + return actuel->x;
  156 +}
  157 +
  158 +int ordcul(Liste *liste) {
  159 + Element *actuel = liste->premier;
  160 + int i;
  161 + for(i=1;i<liste->nbelements;i++)
  162 + {
  163 + actuel = actuel->suivant;
  164 + }
  165 + return actuel->y;
  166 +}
  167 +
  168 +
  169 +void freelastbloc(Liste *liste) {
  170 + int i;
  171 + Element *actuel = liste->premier;
  172 + for(i=1; i<liste->nbelements-1; i++){
  173 + actuel = actuel->suivant;
  174 + }
  175 + Element *asupprimer = actuel->suivant;
  176 + free(asupprimer);
  177 + actuel->suivant = NULL;
  178 + liste->nbelements = liste->nbelements-1;
  179 +}
  180 +
  181 +
  182 +void freeListe(Liste *liste){
  183 + while(liste->premier!=NULL) suppression(liste);
  184 +}
  185 +
  186 +
  187 +
  188 +
  189 +
  190 +
  191 +
  192 +
projets/projetslistechainee/Liste/libFile.c~ 0 → 100644
@@ -0,0 +1,192 @@ @@ -0,0 +1,192 @@
  1 +#include <stdio.h>
  2 +#include <stdlib.h>
  3 +#include "libFile.h"
  4 +#include <string.h>
  5 +
  6 +// Fonctions pour projets avec file
  7 +
  8 +int taille(liste_t *l)
  9 +{
  10 + return l->nombre;
  11 +}
  12 +
  13 +int enfiler (liste_t *l, element_t e, int taille){
  14 +element_t nouveau=malloc(taille);
  15 +memcpy(nouveau,e,taille);
  16 +if (l->nombre >= l->alloue)
  17 + {
  18 + l->contenu = realloc(l->contenu, (l->alloue+300)*sizeof(element_t));
  19 + l->alloue+=300;
  20 + }
  21 +l->contenu[l->nombre++]=nouveau;
  22 +return 0;
  23 +}
  24 +
  25 +
  26 +
  27 +int afficher(liste_t *l, void(*affichage)(element_t)) {
  28 +int i;
  29 +for(i=0; i<taille(l); i++) affichage(l->contenu[i]);
  30 +return 0;
  31 +}
  32 +
  33 +int defiler(liste_t *l)
  34 +{
  35 + int i;
  36 +
  37 + if(taille(l)>=1)
  38 + {
  39 + free(l->contenu[0]);
  40 + for(i=0; i < taille(l); i++)
  41 + {
  42 + l->contenu[i]=l->contenu[i+1];
  43 + }
  44 + l->nombre--;
  45 + }
  46 + return 0;
  47 +}
  48 +
  49 +element_t premier(liste_t *l) {
  50 + return l->contenu[0]; }
  51 +
  52 +element_t dernier(liste_t *l) {
  53 + return l->contenu[(l->nombre)-1];}
  54 +
  55 +element_t enieme(int x, liste_t *l) {
  56 + return l->contenu[x];
  57 +}
  58 +
  59 +// Fonctions pour liste chainée
  60 +
  61 +
  62 +Liste *initialisation()
  63 +{
  64 + Liste *liste = malloc(sizeof(*liste));
  65 + Element *element = malloc(sizeof(*element));
  66 +
  67 + if (liste == NULL || element == NULL)
  68 + {
  69 + exit(EXIT_FAILURE);
  70 + }
  71 + element->x =0;
  72 + element->y =0;
  73 +
  74 + element->suivant = NULL;
  75 + liste->premier = element;
  76 + liste->nbelements =0;
  77 +
  78 + return liste;
  79 +}
  80 +
  81 +void insertion(Liste *liste, int x, int y)
  82 +{
  83 + /* Création du nouvel élément */
  84 + Element *nouveau = malloc(sizeof(*nouveau));
  85 + if (liste == NULL || nouveau == NULL)
  86 + {
  87 + exit(EXIT_FAILURE);
  88 + }
  89 + nouveau->x = x;
  90 + nouveau->y = y;
  91 +
  92 + /* Insertion de l'élément au début de la liste */
  93 + nouveau->suivant = liste->premier;
  94 + liste->premier = nouveau;
  95 + liste->nbelements=liste->nbelements+1;
  96 +}
  97 +
  98 +void afficherListe(Liste *liste)
  99 +{
  100 + if (liste == NULL)
  101 + {
  102 + exit(EXIT_FAILURE);
  103 + }
  104 +
  105 + Element *actuel = liste->premier;
  106 +
  107 + while (actuel != NULL)
  108 + {
  109 + printf("combinaison x,y : %d , %d \n", actuel->x,actuel->y);
  110 + actuel = actuel->suivant;
  111 + }
  112 +}
  113 +
  114 +void suppression(Liste *liste)
  115 +{
  116 + if (liste == NULL)
  117 + {
  118 + exit(EXIT_FAILURE);
  119 + }
  120 +
  121 + if (liste->premier != NULL)
  122 + {
  123 + Element *aSupprimer = liste->premier;
  124 + liste->premier = liste->premier->suivant;
  125 + free(aSupprimer);
  126 + }
  127 +}
  128 +
  129 +int abstete(Liste *liste){
  130 +
  131 + Element *actuel = liste->premier;
  132 + return actuel->x;
  133 +
  134 +}
  135 +
  136 +int tailledelachaine(Liste *liste) {
  137 +
  138 + return liste->nbelements;
  139 +
  140 +}
  141 +
  142 +
  143 +int ordtete(Liste *liste) {
  144 + Element *actuel = liste->premier;
  145 + return actuel->y;
  146 +}
  147 +
  148 +int abscul(Liste *liste) {
  149 + Element *actuel = liste->premier;
  150 + int i;
  151 + for(i=1;i<liste->nbelements;i++)
  152 + {
  153 + actuel = actuel->suivant;
  154 + }
  155 + return actuel->x;
  156 +}
  157 +
  158 +int ordcul(Liste *liste) {
  159 + Element *actuel = liste->premier;
  160 + int i;
  161 + for(i=1;i<liste->nbelements;i++)
  162 + {
  163 + actuel = actuel->suivant;
  164 + }
  165 + return actuel->y;
  166 +}
  167 +
  168 +
  169 +void freelastbloc(Liste *liste) {
  170 + int i;
  171 + Element *actuel = liste->premier;
  172 + for(i=1; i<liste->nbelements-1; i++){
  173 + actuel = actuel->suivant;
  174 + }
  175 + Element *asupprimer = actuel->suivant;
  176 + free(asupprimer);
  177 + actuel->suivant = NULL;
  178 + liste->nbelements = liste->nbelements-1;
  179 +}
  180 +
  181 +
  182 +void freeListe(Liste *liste){
  183 + while(liste->premier!=NULL) suppression(liste);
  184 +}
  185 +
  186 +
  187 +
  188 +
  189 +
  190 +
  191 +
  192 +
projets/projetslistechainee/Liste/libFile.h 0 → 100644
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
  1 +typedef void *element_t;
  2 +
  3 + typedef struct {
  4 + element_t *contenu;
  5 + int nombre;
  6 + int alloue;
  7 +} liste_t;
  8 +
  9 +int taille(liste_t *l);
  10 +int enfiler (liste_t *l,element_t e, int taille);
  11 +int afficher (liste_t *l, void(*affichage)(element_t));
  12 +int defiler(liste_t *l);
  13 +element_t dernier(liste_t *l);
  14 +element_t premier(liste_t *l);
  15 +element_t enieme(int x, liste_t *l);
  16 +
  17 +
  18 +
  19 +typedef struct Element Element;
  20 +struct Element
  21 +{
  22 + int x;
  23 + int y;
  24 + Element *suivant;
  25 +};
  26 +
  27 +
  28 +typedef struct Liste Liste;
  29 +struct Liste
  30 +{
  31 + int nbelements;
  32 + Element *premier;
  33 +};
  34 +
  35 +Liste *initialisation();
  36 +void insertion(Liste *liste, int x, int y);
  37 +void afficherListe(Liste *liste);
  38 +void suppression(Liste *liste);
  39 +int abstete(Liste *liste);
  40 +int tailledelachaine(Liste *liste);
  41 +int ordtete(Liste *liste);
  42 +int abscul(Liste *liste);
  43 +int ordcul(Liste *liste);
  44 +void freelastbloc(Liste *liste);
  45 +void freeListe(Liste *liste);
projets/projetslistechainee/Liste/libFile.h~ 0 → 100644
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
  1 +typedef void *element_t;
  2 +
  3 + typedef struct {
  4 + element_t *contenu;
  5 + int nombre;
  6 + int alloue;
  7 +} liste_t;
  8 +
  9 +int taille(liste_t *l);
  10 +int enfiler (liste_t *l,element_t e, int taille);
  11 +int afficher (liste_t *l, void(*affichage)(element_t));
  12 +int defiler(liste_t *l);
  13 +element_t dernier(liste_t *l);
  14 +element_t premier(liste_t *l);
  15 +element_t enieme(int x, liste_t *l);
  16 +
  17 +
  18 +
  19 +typedef struct Element Element;
  20 +struct Element
  21 +{
  22 + int x;
  23 + int y;
  24 + Element *suivant;
  25 +};
  26 +
  27 +
  28 +typedef struct Liste Liste;
  29 +struct Liste
  30 +{
  31 + int nbelements;
  32 + Element *premier;
  33 +};
  34 +
  35 +Liste *initialisation();
  36 +void insertion(Liste *liste, int x, int y);
  37 +void afficherListe(Liste *liste);
  38 +void suppression(Liste *liste);
  39 +int abstete(Liste *liste);
  40 +int tailledelachaine(Liste *liste);
  41 +int ordtete(Liste *liste);
  42 +int abscul(Liste *liste);
  43 +int ordcul(Liste *liste);
  44 +void freelastbloc(Liste *liste);
  45 +
projets/projetslistechainee/Liste/libFile.o 0 → 100644
No preview for this file type
projets/projetslistechainee/Liste/libListe.a 0 → 100644
No preview for this file type
projets/projetslistechainee/Liste/listechainee.c 0 → 100644
@@ -0,0 +1,278 @@ @@ -0,0 +1,278 @@
  1 +#include <stdio.h>
  2 +#include <stdlib.h>
  3 +#include <string.h>
  4 +
  5 +/* typedef struct Element Element;
  6 +
  7 +struct Element
  8 +
  9 +{
  10 +
  11 + int nombre;
  12 +
  13 + Element *suivant;
  14 +
  15 +};
  16 +
  17 +
  18 +typedef struct Liste Liste;
  19 +
  20 +struct Liste
  21 +
  22 +{
  23 +
  24 + Element *premier;
  25 +
  26 +};
  27 +
  28 +
  29 +Liste *initialisation()
  30 +{
  31 + Liste *liste = malloc(sizeof(*liste));
  32 + Element *element = malloc(sizeof(*element));
  33 +
  34 + if (liste == NULL || element == NULL)
  35 + {
  36 + exit(EXIT_FAILURE);
  37 + }
  38 +
  39 + element->nombre = 0;
  40 + element->suivant = NULL;
  41 + liste->premier = element;
  42 +
  43 + return liste;
  44 +}
  45 +
  46 +void insertion(Liste *liste, int nvNombre)
  47 +{
  48 +
  49 + Element *nouveau = malloc(sizeof(*nouveau));
  50 + if (liste == NULL || nouveau == NULL)
  51 + {
  52 + exit(EXIT_FAILURE);
  53 + }
  54 + nouveau->nombre = nvNombre;
  55 +
  56 +
  57 + nouveau->suivant = liste->premier;
  58 + liste->premier = nouveau;
  59 +}
  60 +
  61 +void afficherListe(Liste *liste)
  62 +{
  63 + if (liste == NULL)
  64 + {
  65 + exit(EXIT_FAILURE);
  66 + }
  67 +
  68 + Element *actuel = liste->premier;
  69 +
  70 + while (actuel != NULL)
  71 + {
  72 + printf("%d -> ", actuel->nombre);
  73 + actuel = actuel->suivant;
  74 + }
  75 + printf("NULL\n");
  76 +}
  77 +
  78 +void suppression(Liste *liste)
  79 +{
  80 + if (liste == NULL)
  81 + {
  82 + exit(EXIT_FAILURE);
  83 + }
  84 +
  85 + if (liste->premier != NULL)
  86 + {
  87 + Element *aSupprimer = liste->premier;
  88 + liste->premier = liste->premier->suivant;
  89 + free(aSupprimer);
  90 + }
  91 +} */
  92 +
  93 +typedef struct Element Element;
  94 +
  95 +struct Element
  96 +
  97 +{
  98 +
  99 + //int nombre;
  100 + int x;
  101 + int y;
  102 + Element *suivant;
  103 +
  104 +};
  105 +
  106 +
  107 +typedef struct Liste Liste;
  108 +
  109 +struct Liste
  110 +
  111 +{
  112 + int nbelements;
  113 +
  114 + Element *premier;
  115 +
  116 +};
  117 +
  118 +
  119 +Liste *initialisation()
  120 +{
  121 + Liste *liste = malloc(sizeof(*liste));
  122 + Element *element = malloc(sizeof(*element));
  123 +
  124 + if (liste == NULL || element == NULL)
  125 + {
  126 + exit(EXIT_FAILURE);
  127 + }
  128 +
  129 + //element->nombre = 0;
  130 + element->x =0;
  131 + element->y =0;
  132 +
  133 + element->suivant = NULL;
  134 + liste->premier = element;
  135 + liste->nbelements =0;
  136 +
  137 + return liste;
  138 +}
  139 +
  140 +void insertion(Liste *liste, int x, int y)
  141 +{
  142 + /* Création du nouvel élément */
  143 + Element *nouveau = malloc(sizeof(*nouveau));
  144 + if (liste == NULL || nouveau == NULL)
  145 + {
  146 + exit(EXIT_FAILURE);
  147 + }
  148 + nouveau->x = x;
  149 + nouveau->y = y;
  150 +
  151 + /* Insertion de l'élément au début de la liste */
  152 + nouveau->suivant = liste->premier;
  153 + liste->premier = nouveau;
  154 + liste->nbelements=liste->nbelements+1;
  155 +}
  156 +
  157 +void afficherListe(Liste *liste)
  158 +{
  159 + if (liste == NULL)
  160 + {
  161 + exit(EXIT_FAILURE);
  162 + }
  163 +
  164 + Element *actuel = liste->premier;
  165 +
  166 + while (actuel != NULL)
  167 + {
  168 + printf("combinaison x,y : %d , %d \n", actuel->x,actuel->y);
  169 + actuel = actuel->suivant;
  170 + }
  171 +}
  172 +
  173 +void suppression(Liste *liste)
  174 +{
  175 + if (liste == NULL)
  176 + {
  177 + exit(EXIT_FAILURE);
  178 + }
  179 +
  180 + if (liste->premier != NULL)
  181 + {
  182 + Element *aSupprimer = liste->premier;
  183 + liste->premier = liste->premier->suivant;
  184 + free(aSupprimer);
  185 + }
  186 +}
  187 +
  188 +int abstete(Liste *liste){
  189 +
  190 + Element *actuel = liste->premier;
  191 + return actuel->x;
  192 +
  193 +}
  194 +
  195 +int tailledelachaine(Liste *liste) {
  196 +
  197 + return liste->nbelements;
  198 +
  199 +}
  200 +
  201 +
  202 +int ordtete(Liste *liste) {
  203 + Element *actuel = liste->premier;
  204 + return actuel->y;
  205 +}
  206 +
  207 +int abscul(Liste *liste) {
  208 + Element *actuel = liste->premier;
  209 + int i;
  210 + for(i=1;i<liste->nbelements;i++)
  211 + {
  212 + actuel = actuel->suivant;
  213 + }
  214 + return actuel->x;
  215 +}
  216 +
  217 +int ordcul(Liste *liste) {
  218 + Element *actuel = liste->premier;
  219 + int i;
  220 + for(i=1;i<liste->nbelements;i++)
  221 + {
  222 + actuel = actuel->suivant;
  223 + }
  224 + return actuel->y;
  225 +}
  226 +
  227 +
  228 +void freelastbloc(Liste *liste) {
  229 + int i;
  230 + Element *actuel = liste->premier;
  231 + for(i=1; i<liste->nbelements-1; i++){
  232 + actuel = actuel->suivant;
  233 + }
  234 + Element *asupprimer = actuel->suivant;
  235 + free(asupprimer);
  236 + actuel->suivant = NULL;
  237 + liste->nbelements = liste->nbelements-1;
  238 +}
  239 +
  240 +void freeListe(Liste *liste){
  241 + while(liste->premier!=NULL) suppression(liste);
  242 +}
  243 +
  244 +int main()
  245 +
  246 +{
  247 +
  248 + Liste *maListe = initialisation();
  249 +
  250 +
  251 + insertion(maListe, 4 , 8);
  252 +
  253 + insertion(maListe, 3 , 9);
  254 +
  255 + insertion(maListe, 7 , 12);
  256 +
  257 + insertion(maListe, 10 , 15);
  258 +
  259 + printf("\n\n\n");
  260 +
  261 + int a = ordcul(maListe);
  262 +
  263 + printf("%d \n",a);
  264 +
  265 + freelastbloc(maListe);
  266 +
  267 + afficherListe(maListe);
  268 +
  269 + freeListe(maListe);
  270 +
  271 + printf("\n ca va free");
  272 +
  273 + afficherListe(maListe);
  274 +
  275 +printf("\n ca a free");
  276 + return 0;
  277 +
  278 +}
projets/projetslistechainee/Liste/listechainee.c~ 0 → 100644
@@ -0,0 +1,275 @@ @@ -0,0 +1,275 @@
  1 +#include <stdio.h>
  2 +#include <stdlib.h>
  3 +#include <string.h>
  4 +
  5 +/* typedef struct Element Element;
  6 +
  7 +struct Element
  8 +
  9 +{
  10 +
  11 + int nombre;
  12 +
  13 + Element *suivant;
  14 +
  15 +};
  16 +
  17 +
  18 +typedef struct Liste Liste;
  19 +
  20 +struct Liste
  21 +
  22 +{
  23 +
  24 + Element *premier;
  25 +
  26 +};
  27 +
  28 +
  29 +Liste *initialisation()
  30 +{
  31 + Liste *liste = malloc(sizeof(*liste));
  32 + Element *element = malloc(sizeof(*element));
  33 +
  34 + if (liste == NULL || element == NULL)
  35 + {
  36 + exit(EXIT_FAILURE);
  37 + }
  38 +
  39 + element->nombre = 0;
  40 + element->suivant = NULL;
  41 + liste->premier = element;
  42 +
  43 + return liste;
  44 +}
  45 +
  46 +void insertion(Liste *liste, int nvNombre)
  47 +{
  48 +
  49 + Element *nouveau = malloc(sizeof(*nouveau));
  50 + if (liste == NULL || nouveau == NULL)
  51 + {
  52 + exit(EXIT_FAILURE);
  53 + }
  54 + nouveau->nombre = nvNombre;
  55 +
  56 +
  57 + nouveau->suivant = liste->premier;
  58 + liste->premier = nouveau;
  59 +}
  60 +
  61 +void afficherListe(Liste *liste)
  62 +{
  63 + if (liste == NULL)
  64 + {
  65 + exit(EXIT_FAILURE);
  66 + }
  67 +
  68 + Element *actuel = liste->premier;
  69 +
  70 + while (actuel != NULL)
  71 + {
  72 + printf("%d -> ", actuel->nombre);
  73 + actuel = actuel->suivant;
  74 + }
  75 + printf("NULL\n");
  76 +}
  77 +
  78 +void suppression(Liste *liste)
  79 +{
  80 + if (liste == NULL)
  81 + {
  82 + exit(EXIT_FAILURE);
  83 + }
  84 +
  85 + if (liste->premier != NULL)
  86 + {
  87 + Element *aSupprimer = liste->premier;
  88 + liste->premier = liste->premier->suivant;
  89 + free(aSupprimer);
  90 + }
  91 +} */
  92 +
  93 +typedef struct Element Element;
  94 +
  95 +struct Element
  96 +
  97 +{
  98 +
  99 + //int nombre;
  100 + int x;
  101 + int y;
  102 + Element *suivant;
  103 +
  104 +};
  105 +
  106 +
  107 +typedef struct Liste Liste;
  108 +
  109 +struct Liste
  110 +
  111 +{
  112 + int nbelements;
  113 +
  114 + Element *premier;
  115 +
  116 +};
  117 +
  118 +
  119 +Liste *initialisation()
  120 +{
  121 + Liste *liste = malloc(sizeof(*liste));
  122 + Element *element = malloc(sizeof(*element));
  123 +
  124 + if (liste == NULL || element == NULL)
  125 + {
  126 + exit(EXIT_FAILURE);
  127 + }
  128 +
  129 + //element->nombre = 0;
  130 + element->x =0;
  131 + element->y =0;
  132 +
  133 + element->suivant = NULL;
  134 + liste->premier = element;
  135 + liste->nbelements =0;
  136 +
  137 + return liste;
  138 +}
  139 +
  140 +void insertion(Liste *liste, int x, int y)
  141 +{
  142 + /* Création du nouvel élément */
  143 + Element *nouveau = malloc(sizeof(*nouveau));
  144 + if (liste == NULL || nouveau == NULL)
  145 + {
  146 + exit(EXIT_FAILURE);
  147 + }
  148 + nouveau->x = x;
  149 + nouveau->y = y;
  150 +
  151 + /* Insertion de l'élément au début de la liste */
  152 + nouveau->suivant = liste->premier;
  153 + liste->premier = nouveau;
  154 + liste->nbelements=liste->nbelements+1;
  155 +}
  156 +
  157 +void afficherListe(Liste *liste)
  158 +{
  159 + if (liste == NULL)
  160 + {
  161 + exit(EXIT_FAILURE);
  162 + }
  163 +
  164 + Element *actuel = liste->premier;
  165 +
  166 + while (actuel != NULL)
  167 + {
  168 + printf("combinaison x,y : %d , %d \n", actuel->x,actuel->y);
  169 + actuel = actuel->suivant;
  170 + }
  171 +}
  172 +
  173 +void suppression(Liste *liste)
  174 +{
  175 + if (liste == NULL)
  176 + {
  177 + exit(EXIT_FAILURE);
  178 + }
  179 +
  180 + if (liste->premier != NULL)
  181 + {
  182 + Element *aSupprimer = liste->premier;
  183 + liste->premier = liste->premier->suivant;
  184 + free(aSupprimer);
  185 + }
  186 +}
  187 +
  188 +int abstete(Liste *liste){
  189 +
  190 + Element *actuel = liste->premier;
  191 + return actuel->x;
  192 +
  193 +}
  194 +
  195 +int tailledelachaine(Liste *liste) {
  196 +
  197 + return liste->nbelements;
  198 +
  199 +}
  200 +
  201 +
  202 +int ordtete(Liste *liste) {
  203 + Element *actuel = liste->premier;
  204 + return actuel->y;
  205 +}
  206 +
  207 +int abscul(Liste *liste) {
  208 + Element *actuel = liste->premier;
  209 + int i;
  210 + for(i=1;i<liste->nbelements;i++)
  211 + {
  212 + actuel = actuel->suivant;
  213 + }
  214 + return actuel->x;
  215 +}
  216 +
  217 +int ordcul(Liste *liste) {
  218 + Element *actuel = liste->premier;
  219 + int i;
  220 + for(i=1;i<liste->nbelements;i++)
  221 + {
  222 + actuel = actuel->suivant;
  223 + }
  224 + return actuel->y;
  225 +}
  226 +
  227 +
  228 +void freelastbloc(Liste *liste) {
  229 + int i;
  230 + Element *actuel = liste->premier;
  231 + for(i=1; i<liste->nbelements-1; i++){
  232 + actuel = actuel->suivant;
  233 + }
  234 + Element *asupprimer = actuel->suivant;
  235 + free(asupprimer);
  236 + actuel->suivant = NULL;
  237 + liste->nbelements = liste->nbelements-1;
  238 +}
  239 +
  240 +void freeListe(Liste *liste){
  241 + while(liste->premier!=NULL) suppression(liste);
  242 +}
  243 +
  244 +
  245 +int main()
  246 +
  247 +{
  248 +
  249 + Liste *maListe = initialisation();
  250 +
  251 +
  252 + insertion(maListe, 4 , 8);
  253 +
  254 + insertion(maListe, 3 , 9);
  255 +
  256 + insertion(maListe, 7 , 12);
  257 +
  258 + insertion(maListe, 10 , 15);
  259 +
  260 + printf("\n\n\n");
  261 +
  262 + int a = ordcul(maListe);
  263 +
  264 + printf("%d \n",a);
  265 +
  266 + freelastbloc(maListe);
  267 +
  268 + afficherListe(maListe);
  269 +
  270 + freeListe(maListe);
  271 +
  272 + afficherListe(maListe);
  273 + return 0;
  274 +
  275 +}
projets/projetslistechainee/Liste/listechainee.o 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/game_over.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_bombe.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_bouclier.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_canon.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_canon_ferraille.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_missile.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_monstre1_1.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_monstre1_2.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_monstre2_1.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_monstre2_2.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_monstre3_1.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_monstre3_2.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_monstre_bouillie.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/invader_ovni.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/level1.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/level2.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/level3.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/level_cleared.PNG 0 → 100644

15.3 KB

projets/projetslistechainee/Lutins/level_cleared.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_champi.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_corps_bas.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_corps_droite.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_corps_gauche.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_corps_haut.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_tete_bas.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_tete_droite.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_tete_gauche.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/millepatte_tete_haut.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Lutins/youwin.bmp 0 → 100644
No preview for this file type
projets/projetslistechainee/Makefile 0 → 100644
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
  1 +REPERTOIRES = Graphique Liste Testliste Centipede
  2 +COMPILE = $(REPERTOIRES:%=all-%)
  3 +DEVERMINE = $(REPERTOIRES:%=debug-%)
  4 +NETTOYAGE = $(REPERTOIRES:%=clean-%)
  5 +export CFLAGS += -g -Wall
  6 +
  7 +all: $(COMPILE)
  8 +$(COMPILE):
  9 + $(MAKE) -C $(@:all-%=%)
  10 +
  11 +debug: $(DEVERMINE)
  12 +$(DEVERMINE): CFLAGS += -g -DDEVERMINE
  13 +$(DEVERMINE):
  14 + $(MAKE) -C $(@:debug-%=%)
  15 +
  16 +clean: $(NETTOYAGE)
  17 +$(NETTOYAGE):
  18 + $(MAKE) -C $(@:clean-%=%) clean
  19 +
  20 +all-Main: all-Bibliotheque
  21 +debug-Main: debug-Bibliotheque
  22 +
  23 +.PHONY: $(COMPILE) $(DEVERMINE) $(NETTOYAGE)
  24 +.PHONY: all debug clean
projets/projetslistechainee/Testliste/Makefile 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +SOURCES = $(wildcard *.c)
  2 +OBJETS = $(SOURCES:.c=.o)
  3 +BIBLIOTHEQUES = -L ../Liste -lListe
  4 +EXECUTABLE = projet
  5 +CFLAGS += -Wall -I ../Liste
  6 +
  7 +all: $(EXECUTABLE)
  8 +$(EXECUTABLE): $(OBJETS)
  9 + $(CC) -o $@ $^ $(BIBLIOTHEQUES)
  10 +
  11 +clean:
  12 + rm -rf $(EXECUTABLE) *.o
projets/projetslistechainee/Testliste/projet 0 → 100644
No preview for this file type
projets/projetslistechainee/Testliste/test.c 0 → 100644
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +#include <stdio.h>
  2 +#include <stdlib.h>
  3 +#include "libFile.h"
  4 +#include <string.h>
  5 +
  6 +
  7 +int main(){
  8 +
  9 +liste_t desnombres={NULL,0,0};
  10 +
  11 +int petit = 10;
  12 +int moyen = 100;
  13 +int grand = 1000;
  14 +
  15 +enfiler(&desnombres,&petit,sizeof(int));
  16 +enfiler(&desnombres,&moyen,sizeof(int));
  17 +enfiler(&desnombres,&grand,sizeof(int));
  18 +enfiler(&desnombres,&petit,sizeof(int));
  19 +
  20 +//afficher(&desnombres,affichage);
  21 +
  22 +//defiler(&desnombres);
  23 +
  24 +//afficher(&desnombres,affichage);
  25 +
  26 +return 0;
  27 +}
projets/projetslistechainee/Testliste/test.o 0 → 100644
No preview for this file type
projets/projetslistechainee/scores.txt 0 → 100644
No preview for this file type