j'ai réussi à le faire bouger dans toutes les directions et a afficher les pommes à différents endroits mais je n'arrive pas à couper la queue (ou alors je suis obligé d'utiliser plein de variables) et je n'arrive pas non plus a faire en sorte de perdre quand on se mange la queue. Si qqn pouvait m'aider ce serait pas de refus. voici mon programme:
(image est un carré blanc 15x15 et image2 un carré noir 15x15)
(up et left definissent le contour blanc de l'ecran en haut et a gauche (et donc a droite et en bas))
- Code: Tout sélectionner
#include <allegro.h>
#include <stdlib.h>
#include <stdio.h>
void init()
{
allegro_init();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0);
install_keyboard();
}
void deinit()
{
clear_keybuf();
}
int main()
{
int a,b,d,e,j,f,g,a1,a2,a3,a4,a5,a6,a7,a8,a9,b1,b2,b3,b4,b5,b6,b7,b8,b9;
int score,vitesse,niveau,pion;
score=0;niveau=1;pion=0;
d=15;
e=0;
a1=270;a2=240;a3=210;a4=180;a5=150;a6=120;a7=90;a8=60;a9=30;
b1=30;b2=30;b3=30;b4=30;b5=30;b6=30;b7=30;b8=30;b9=30;
a=((rand()%31)*15);
b=((rand()%31)*15);
init();
BITMAP *up;
BITMAP *left;
BITMAP *image;
image=load_bitmap("image.bmp", NULL);
left=load_bitmap("left.bmp", NULL);
up=load_bitmap("up.bmp", NULL);
draw_sprite(screen, left, 0, 0);
draw_sprite(screen, left, 590,0 );
draw_sprite(screen, up, 0, 0);
draw_sprite(screen, up, 0, 590);
draw_sprite(screen, image, a, b);
textout_ex(screen,font,"SCORE:",630,50,makecol(255,255,255),makecol(0,0,0));
textout_ex(screen,font,"NOMBRE DE PIONS:",630,100,makecol(255,255,255),makecol(0,0,0));
textout_ex(screen,font,"NIVEAU:",630,150,makecol(255,255,255),makecol(0,0,0));
textout_ex(screen,font,"[ESC] pour quitter",630,350,makecol(255,255,255),makecol(0,0,0));
while (1)
{
textprintf_ex(screen,font,700,50,makecol(255,255,255),makecol(0,0,0),"%d",score);
textprintf_ex(screen,font,700,150,makecol(255,255,255),makecol(0,0,0),"%d",niveau);
textprintf_ex(screen,font,770,100,makecol(255,255,255),makecol(0,0,0),"%d",pion);
vitesse=17441000-750000*niveau;
if(key[KEY_ESC]) break;
BITMAP *image2;
BITMAP *image;
image = load_bitmap("image.bmp", NULL);
image2 = load_bitmap("image2.bmp", NULL);
if (!image) exit(-1);
draw_sprite(screen, image, a1, b1);
draw_sprite(screen, image2,a9,b9);
if(key[KEY_UP])
{
d=0;
e=-15;
}
if(key[KEY_DOWN])
{
d=0;
e=15;
}
if(key[KEY_LEFT])
{
d=-15;
e=0;
}
if(key[KEY_RIGHT])
{
d=15;
e=0;
}
a9=a8;a8=a7;a7=a6;a6=a5;a5=a4;a4=a3;a3=a2;a2=a1;
b9=b8;b8=b7;b7=b6;b6=b5;b5=b4;b4=b3;b3=b2;b2=b1;
a1=a1+d;b1=b1+e;
if(a1>590) break;
if(a1<10) break;
if(b1<10) break;
if(b1>590) break;
if(a1==a && b1==b)
{
score=score+2*niveau;
pion++;
a=((rand()%30)*15)+15;
b=((rand()%30)*15)+15;
draw_sprite(screen, image, a, b);
if((pion%5)==0) niveau++;
}
for(j=0;j<vitesse;j++);
}
deinit();
return 0;
}
END_OF_MAIN()
merci de votre aide


