Commit c3040ffaee534eae000268533bf2a003dac89028

Authored by Pierre Cwik
1 parent 44eb975c

avec game over

projets/Centipede/centipede
No preview for this file type
projets/Centipede/progprinc.c
... ... @@ -33,24 +33,28 @@ int main() {
33 33 int hauteur = 1000;
34 34 liste_champi muschrooms={.nombre=0};
35 35 liste_t listecenti={NULL,0,0};
36   - int h,w,l,i;
  36 + int h,w,l,i,t, allonge;
  37 + int s=0;
37 38 char *titre = "Le Centipède";
38 39  
39 40  
40 41 int champi = chargerLutin("Lutins/millepatte_champi.bmp",0);
41 42 int Teted = chargerLutin("Lutins/millepatte_tete_droite.bmp",0);
42   -/* int Teteg = chargerLutin("Lutins/millepatte_tete_gauche.bmp",0);
  43 + int Teteg = chargerLutin("Lutins/millepatte_tete_gauche.bmp",0);
43 44 int Teteh = chargerLutin("Lutins/millepatte_tete_haut.bmp",0);
44 45 int Teteb = chargerLutin("Lutins/millepatte_tete_bas.bmp",0);
45   - int Corpsg = chargerLutin("Lutins/millepatte_corps_gauche.bmp",0); */
  46 + int Corpsg = chargerLutin("Lutins/millepatte_corps_gauche.bmp",0);
46 47 int Corpsd = chargerLutin("Lutins/millepatte_corps_droite.bmp",0);
47   -/* int Corpsh = chargerLutin("Lutins/millepatte_corps_haut.bmp",0);
48   - int Corpsb = chargerLutin("Lutins/millepatte_corps_bas.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 + int Tete;
  52 + int Corps;
  53 + int abs, ord, obstacle, couleur;
  54 +
  55 + if(champi<0 || Teted<0 || Teteg<0 || Teteh <0 || Teteb<0 || Corpsg<0 || Corpsd<0 || Corpsh<0 || Corpsb<0 || gameover<0){ printf("Image pas là\n"); exit(-1); }
49 56  
50   - if(champi<0){ printf("Champi pas là\n"); exit(-1); }
51 57 tailleLutin(champi,&l,&h);
52   -
53   -
54 58 position *pos;
55 59 position poschampi;
56 60 position posmillepatte;
... ... @@ -60,18 +64,18 @@ int main() {
60 64 int x = 300;
61 65 int y = 500;
62 66  
63   - for(i=0; i<4; i++)
64   - {
65   - posmillepatte.x = (x + 50*i);
66   - posmillepatte.y = y;
67   - enfiler(&listecenti,&posmillepatte,sizeof(position));
68   - }
  67 + for(i=0; i<4; i++)
  68 + {
  69 + posmillepatte.x = (x + 50*i);
  70 + posmillepatte.y = y;
  71 + enfiler(&listecenti,&posmillepatte,sizeof(position));
  72 + }
69 73 //affichage des corpsd du centipede
70   - for(i=0; i<4; i++)
71   - {
72   - pos = enieme(i,&listecenti);
73   - afficherLutin(Corpsd,pos->x,pos->y);
74   - }
  74 + for(i=0; i<4; i++)
  75 + {
  76 + pos = enieme(i,&listecenti);
  77 + afficherLutin(Corpsd,pos->x,pos->y);
  78 + }
75 79  
76 80 posmillepatte.x = (x+200);
77 81 posmillepatte.y = y;
... ... @@ -79,76 +83,135 @@ int main() {
79 83 pos = enieme(4, &listecenti);
80 84 afficherLutin(Teted,pos->x,pos->y);
81 85  
82   - for(i = 0 ; i < 20; i++)
83   - {
84   - rectanglePlein(i*50,0,1,1000,5); //pose de la grille
85   - rectanglePlein(0,i*50,1000,1,5);
86   - }
87   -
88   - for(w=0;w<10;w++) {
89   - poschampi.x = (rand()%20)*50; //fixe coordonnées des champignons
90   - poschampi.y = (rand()%20)*50;
91   - if(poschampi.y > 550 || poschampi.y < 450) {
92   - muschrooms.contenu[muschrooms.nombre++]=poschampi; }
93   - else w--;
94   - }
  86 +/* for(i = 0 ; i < 20; i++)
  87 + {
  88 + rectanglePlein(i*50,0,1,1000,5); //pose de la grille
  89 + rectanglePlein(0,i*50,1000,1,5);
  90 + } */
  91 +
  92 +
  93 + for(w=0;w<20;w++)
  94 + {
  95 + poschampi.x = (rand()%20)*50; //fixe coordonnées des champignons
  96 + poschampi.y = (rand()%20)*50;
  97 + if(poschampi.y > 570 || poschampi.y < 430)
  98 + {
  99 + muschrooms.contenu[muschrooms.nombre++]=poschampi;
  100 + afficherLutin(champi,(muschrooms.contenu[w].x)+1,(muschrooms.contenu[w].y)+6);
  101 + }
  102 + else w--;
  103 + }
95 104  
96 105 printf("%d %d \n",l,h);
97   -
98   - for(w=0;w<10;w++){
99   - afficherLutin(champi,(muschrooms.contenu[w].x)+1,(muschrooms.contenu[w].y)+6);
100   - }//affiche les champis
101   - majSurface();
102   -
103   - int gomme = creerLutin(0,0,50,50,0);
104   - majSurface();
  106 + //affiche les champis
  107 + for(w=0;w<20;w++)
  108 + {
  109 + printf("les coordonnées de mes champis : %d %d \n", (muschrooms.contenu[w].x),(muschrooms.contenu[w].y));
  110 + }
  111 +
  112 + majSurface();
  113 +
  114 + int gomme = creerLutin(0,0,50,50,-1);
  115 +
  116 +/* afficherLutin(Corpsd,0,0)
  117 + int couleurcd = couleurPixel(25,25);
  118 + majSurface();
  119 + afficherLutin(gomme,0,0);
  120 + majSurface();
  121 +
  122 + afficherLutin(Corpsg,0,0)
  123 + int couleurcg = couleurPixel(25,25);
  124 + majSurface();
  125 + afficherLutin(gomme,0,0);
  126 + majSurface();
  127 +
  128 + afficherLutin(Corpsh,0,0)
  129 + int couleurch = couleurPixel(25,25);
  130 + majSurface();
  131 + afficherLutin(gomme,0,0);
  132 + majSurface();
  133 +
  134 + afficherLutin(Corpsb,0,0)
  135 + int couleurcb = couleurPixel(25,25);
  136 + majSurface();
  137 + afficherLutin(gomme,0,0);
  138 + majSurface(); */
  139 +
  140 + majSurface();
105 141  
106 142  
107 143  
108 144 while(1){
109   - if(lireTouche(&bas,&touche,(void **)&detail) && bas==1) {
110   -
111   - if(detail->sym==SDLK_RIGHT) {
112   - printf("dans le droite\n");
113   - pos = premier(&listecenti);
114   - afficherLutin(gomme,pos->x,pos->y);
115   - defiler(&listecenti);
116   -
117   - pos = dernier(&listecenti);
118   - afficherLutin(gomme,pos->x,pos->y);
119   - afficherLutin(Corpsd,(pos->x),pos->y);
120   - posmillepatte.x = pos->x+50;
121   - posmillepatte.y = pos->y;
122   - enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));
123   - afficherLutin(Teted,posmillepatte.x,posmillepatte.y);
124   - majSurface();
125   - }
126   -
127   - if(detail->sym==SDLK_LEFT) {
128   -
129   - }
130   -
131   - if(detail->sym==SDLK_UP) {
132   -
133   - }
134   -
135   - if(detail->sym==SDLK_DOWN) {
136   -
137   - }
138   -
139   -
140   -
  145 + if(lireTouche(&bas,&touche,(void **)&detail) && bas==1)
  146 + {
  147 + if(detail->sym==SDLK_RIGHT) t=0;
  148 + if(detail->sym==SDLK_UP) t=1;
  149 + if(detail->sym==SDLK_LEFT) t=2;
  150 + if(detail->sym==SDLK_DOWN) t=3;
  151 + }
  152 +
  153 + usleep(200000);
  154 +
  155 + if((t==0 && s!=2) || s==0) { abs=50; ord=0; Tete = Teted; Corps = Corpsd; s=0; }
  156 + if((t==1 && s!=3) || s==1) { abs=0; ord=(-50); Tete = Teteh; Corps = Corpsh; s=1; }
  157 + if((t==2 && s!=0) || s==2) { abs=-50; ord=0; Tete = Teteg; Corps = Corpsg; s=2; }
  158 + if((t==3 && s!=1) || s==3) { abs=0; ord=50; Tete = Teteb; Corps = Corpsb; s=3; }
  159 +
  160 + pos = dernier(&listecenti);
  161 + posmillepatte.x = pos->x+abs;
  162 + posmillepatte.y = pos->y+ord;
  163 + if(posmillepatte.x==1000 || posmillepatte.y==1000 || posmillepatte.x==-50 || posmillepatte.y==-50)
  164 + {
  165 + afficherLutin(gameover,250,433);
  166 + majSurface();
  167 + sleep(5);
  168 + fermerSurface();
  169 + }
  170 +
  171 + majSurface();
  172 + couleur = couleurPixel(posmillepatte.x+25,posmillepatte.y+25);
  173 + printf("la couleur est %d\n",couleur);
  174 + if(couleur!=1) obstacle = 1;
  175 + else obstacle = 0;
  176 + allonge = 0;
  177 +
  178 + if(obstacle==1){
  179 + for(w=0;w<20;w++)
  180 + {
  181 + if((muschrooms.contenu[w].x) == posmillepatte.x && (muschrooms.contenu[w].y) == posmillepatte.y) { allonge = 1; } }
  182 + if(allonge==1){
  183 + afficherLutin(gomme,pos->x,pos->y);
  184 + afficherLutin(Corps,(pos->x),pos->y);
  185 + enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));
  186 + afficherLutin(Tete,posmillepatte.x,posmillepatte.y);
  187 + }
  188 + else {
  189 + afficherLutin(gameover,250,433);
  190 + majSurface();
  191 + sleep(5);
  192 + fermerSurface();
  193 + }
  194 +
  195 + }
  196 +
  197 + if(obstacle==0){
  198 + afficherLutin(gomme,pos->x,pos->y);
  199 + afficherLutin(Corps,(pos->x),pos->y);
  200 + enfiler(&listecenti,&posmillepatte,sizeof(posmillepatte));
  201 + afficherLutin(Tete,posmillepatte.x,posmillepatte.y);
  202 + pos = premier(&listecenti);
  203 + afficherLutin(gomme,pos->x,pos->y);
  204 + defiler(&listecenti);
  205 + }
  206 + majSurface();
141 207  
142 208 if(touche=='a')
143 209 {
144 210 fermerSurface(); //condition d'arret
145   - return 0;
146   -
  211 + return 0;
147 212 }
148   - }}
149   -
150   -
  213 +}
151 214 return 0;
152 215 }
153 216  
154 217 -
  218 +
155 219 \ No newline at end of file
... ...
projets/Centipede/progprinc.c~ 0 → 100644
... ... @@ -0,0 +1,224 @@
  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
No preview for this file type
projets/Graphique/libgraph.a
No preview for this file type
projets/Liste/libFile.c
... ... @@ -13,8 +13,8 @@ element_t nouveau=malloc(taille);
13 13 memcpy(nouveau,e,taille);
14 14 if (l->nombre >= l->alloue)
15 15 {
16   - l->contenu = realloc(l->contenu, l->alloue+100);
17   - l->alloue+=100;
  16 + l->contenu = realloc(l->contenu, l->alloue+300);
  17 + l->alloue+=300;
18 18 }
19 19 l->contenu[l->nombre++]=nouveau;
20 20 return 0;
... ...
projets/Liste/libFile.o
No preview for this file type
projets/Liste/libListe.a
No preview for this file type
projets/Lutins/game_over.bmp 0 → 100644
No preview for this file type
projets/Testliste/projet 100755 → 100644
No preview for this file type