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   -#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 7 #include <SDL/SDL.h>
8 8 #define MAX_ELEMENTS 50
9 9  
10   -typedef struct{
  10 +typedef struct {
11 11 char pseudo[MAX_ELEMENTS];
12   - int scorefait;
  12 + char score;
13 13 }scorejoueur;
14 14  
  15 +typedef struct {
  16 + scorejoueur classement[10];
  17 +}classement;
15 18  
16 19 typedef struct {
17 20 int x;
... ... @@ -32,16 +35,6 @@ for(i = 0 ; i &lt; 20; i++)
32 35 rectanglePlein(i*50,0,1,1000,5); //pose de la grille
33 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 39 void creerchampignons(int n,liste_poly *muschrooms,int champi){
47 40 position poschampi;
... ... @@ -96,10 +89,11 @@ int main() {
96 89 unsigned char bas;
97 90 int largeur = 1000;
98 91 int hauteur = 1000;
99   - char *name;
100 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 97 position *pos;
104 98 position posmillepatte;
105 99  
... ... @@ -121,21 +115,16 @@ int main() {
121 115 int youwin = chargerLutin("Lutins/youwin.bmp",0);
122 116 int Tete;
123 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 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 122 creerSurface(largeur,hauteur,titre);
133 123 majSurface();
134 124 int gomme = creerLutin(0,0,50,50,-1);
135 125  
136 126 while(level<=3) {
137 127  
138   - queue = 0;
139 128 liste_poly muschrooms={.nombre=0};
140 129 liste_t listecenti={NULL,0,0};
141 130 int w,t,compteur=0,allonge;
... ... @@ -245,29 +234,68 @@ while(level&lt;=3) {
245 234 speed = speed/2.2;
246 235 level++;
247 236  
248   -}
  237 +}
  238 +
249 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 299 return 0;
271 300 }
272 301  
273   -
274 302 \ No newline at end of file
... ...
projets/projetsfile/Centipede/progprinc.c~ 0 → 100644
... ... @@ -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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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 @@
  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