Commit cfd8c64452615525c7336ec26c794e26e20460be

Authored by Cwik Pierre
1 parent 9b666644

fin centipede

Showing 112 changed files with 2359 additions and 268 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 112 files are displayed.

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