si, pero en teoría sacando todos los 0 que sobran y poniendo los : me debería de funcionar, no?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
#include <allegro.h>
#include <stdio.h>
void init();
void deinit();
BITMAP *buffer = create_bitmap(640,480);
int vectorm[3][5];
int punts,tocat=1;
int e[5];
int f[3];
int g[5];
int h[3];
void nau(int a,int b,int c,int d)
{
rectfill(buffer,a,b,c,d,4);
rectfill(buffer,a+25,b-10,c-25,d,4);
rectfill(buffer,a+30,b-15,c-30,d,4);
}
void bnau(int a,int b,int c,int d)
{
rectfill(buffer,a,b,c,d,0);
rectfill(buffer,a+25,b-10,c-25,d,0);
rectfill(buffer,a+30,b-15,c-30,d,0);
}
void bmarciano(int m,int z)
{
rectfill(buffer,e[z],f[m],g[z],h[m],0);
rectfill(buffer,e[z]-5,f[m],g[z]-40,h[m]+5,0);
rectfill(buffer,e[z]+40,f[m],g[z]-5,h[m]+5,0);
}
void dibuixar()
{
int c,r;
for(c=0;c<3;c++)
{
for(r=0;r<5;r++)
{
if(vectorm[c][r]==0)
{
rectfill(buffer,e[r],f[c],g[r],h[c],10);
rectfill(buffer,e[r]-5,f[c],g[r]-40,h[c]+5,10);
rectfill(buffer,e[r]+40,f[c],g[r]-5,h[c]+5,10);
rectfill(buffer,e[r]+5,f[c]+5,g[r]-30,h[c]-12,0);
rectfill(buffer,e[r]+25,f[c]+5,g[r]-10,h[c]-12,0);
}
}
}
}
void disparar(int x,int y,int a,int b,int c,int d)
{
int z;
int m;
int salt=0;
while(y>-5)
{
circlefill(buffer,x,y,3,15);
circlefill(buffer,x,y,3,0);
y=y-1;
for(m=0;m<3;m++)
{
if(y>=f[m] && y<=h[m])
{
for(z=0;z<5;z++)
{
if(x>=e[z] && x<=g[z])
{
if(vectorm[m][z]==0)
{
punts++;
printf("Tens %d punts\n",punts);
vectorm[m][z]=1;
bmarciano(m,z);
//cleardevice();
nau(a,b,c,d);
dibuixar();
salt=1;
}
}
if(salt) break;
}
}
if(salt) break;
}
if(salt) break;
}
if(punts>14)
{
printf("FI DEL JOC");
// outtextxy(200,200,"FI DEL JOC");
exit(1);
}
}
void ini_e_g()
{
int i;
for (i=1;i<5;i++)
{
e[i]=e[i-1]+90;
g[i]=g[i-1]+90;
}
}
void ini_f_h()
{
int x;
for(x=1;x<3;++x)
{
f[x]=f[x-1]+60;
h[x]=h[x-1]+60;
}
}
void ini_vectorm()
{
int x,h;
for(x=0;x<3;++x)
{
for(h=0;h<5;++h)
{
vectorm[x][h]=0;
}
}
}
int main()
{
init();
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 500,500,0,0);
int a=100; //barres de la nau
int b=450;
int c=170;
int d=470;
e[0]=40; //barres del marciano
f[0]=20;
g[0]=80;
h[0]=40;
ini_e_g();
ini_f_h();
ini_vectorm();
int x;
int y;
punts=0;
while (!key[KEY_ESC])
{
if(key[KEY_LEFT]);
if(key[KEY_RIGHT]);
if(key[KEY_SPACE]);
blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
}
deinit();
return 0;
}
END_OF_MAIN()
void init()
{
allegro_init();
install_keyboard();
install_timer();
/* add other initializations here */
}
void deinit()
{
clear_keybuf();
/* add other deinitializations here */
}
BITMAP *buffer = create_bitmap(500,500);
#include <winbgim.h>
#include <stdio.h>
#include <conio.h>
#include <vector>
#define KEY_UP 72
#define KEY_LEFT 75
#define KEY_RIGHT 77
#define KEY_DOWN 80
#define KEY_ESC 27
int vectorm[3][5];
int punts,tocat=1;
int e[5];
int f[3];
int g[5];
int h[3];
void nau(int a,int b,int c,int d)
{
setcolor(10);
setfillstyle(1,4);
bar3d(a,b,c,d,0,0);
bar3d(a+25,b-10,c-25,d,0,0);
bar3d(a+30,b-15,c-30,d,0,0);
}
void bnau(int a,int b,int c,int d)
{
setcolor(0);
bar3d(a,b,c,d,0,0);
bar3d(a+25,b-10,c-25,d,0,0);
bar3d(a+30,b-15,c-30,d,0,0);
}
void bmarciano(int m,int z)
{
setcolor(0);
bar3d(e[z],f[m],g[z],h[m],0,0);
bar3d(e[z]-5,f[m],g[z]-40,h[m]+5,0,0);
bar3d(e[z]+40,f[m],g[z]-5,h[m]+5,0,0);
}
void dibuixar()
{
int c,r;
for(c=0;c<3;c++)
{
for(r=0;r<5;r++)
{
if(vectorm[c][r]==0)
{
setcolor(4);
setfillstyle(1,10);
bar3d(e[r],f[c],g[r],h[c],0,0);
bar3d(e[r]-5,f[c],g[r]-40,h[c]+5,0,0);
bar3d(e[r]+40,f[c],g[r]-5,h[c]+5,0,0);
setfillstyle(1,0);
bar3d(e[r]+5,f[c]+5,g[r]-30,h[c]-12,0,0);
bar3d(e[r]+25,f[c]+5,g[r]-10,h[c]-12,0,0);
}
}
}
}
void disparar(int x,int y,int a,int b,int c,int d)
{
int z;
int m;
int salt=0;
while(y>-5)
{
setcolor(15);
fillellipse(x,y,3,3);
setcolor(0);
fillellipse(x,y,3,3);
y=y-1;
for(m=0;m<3;m++)
{
if(y>=f[m] && y<=h[m])
{
for(z=0;z<5;z++)
{
if(x>=e[z] && x<=g[z])
{
if(vectorm[m][z]==0)
{
punts++;
printf("Tens %d punts\n",punts);
vectorm[m][z]=1;
bmarciano(m,z);
cleardevice();
nau(a,b,c,d);
dibuixar();
salt=1;
}
}
if(salt) break;
}
}
if(salt) break;
}
if(salt) break;
}
if(punts>14)
{
printf("FI DEL JOC");
outtextxy(200,200,"FI DEL JOC");
exit(1);
}
}
void ini_e_g()
{
int i;
for (i=1;i<5;i++)
{
e[i]=e[i-1]+90;
g[i]=g[i-1]+90;
}
}
void ini_f_h()
{
int x;
for(x=1;x<3;++x)
{
f[x]=f[x-1]+60;
h[x]=h[x-1]+60;
}
}
void ini_vectorm()
{
int x,h;
for(x=0;x<3;++x)
{
for(h=0;h<5;++h)
{
vectorm[x][h]=0;
}
}
}
int main()
{
initwindow(500,500);
int a=100; //barres de la nau
int b=450;
int c=170;
int d=470;
e[0]=40; //barres del marciano
f[0]=20;
g[0]=80;
h[0]=40;
ini_e_g();
ini_f_h();
int x; //coordenades del disparo
int y;
punts=0; //contador de punts
ini_vectorm();
char k;
nau(a,b,c,d);
dibuixar();
while(k!=KEY_ESC)
{
if(kbhit())
{
k=(char)getch();
switch (k)
{
case KEY_RIGHT:
if(c>499);
else
{
bnau(a,b,c,d);
a=a+1;
c=c+1;
bnau(a,b,c,d);
a=a+1;
c=c+1;
nau(a,b,c,d);
bnau(a,b,c,d);
a=a+1;
c=c+1;
bnau(a,b,c,d);
a=a+1;
c=c+1;
nau(a,b,c,d);
}
break;
case KEY_LEFT:
if(a<1);
else
{
bnau(a,b,c,d);
a=a-1;
c=c-1;
bnau(a,b,c,d);
a=a-1;
c=c-1;
nau(a,b,c,d);
bnau(a,b,c,d);
a=a-1;
c=c-1;
bnau(a,b,c,d);
a=a-1;
c=c-1;
nau(a,b,c,d);
}
break;
case KEY_UP:
x=a+35;
y=d-38;
disparar(x,y,a,b,c,d);
break;
}
}
}
outtextxy(200,200,"Fi del Joc");
getchar();
getchar();
closegraph(); //close graphics window
return 0;
}