dletozeun
Messages postés
546
Date d'inscription
vendredi 13 février 2004
Statut
Membre
Dernière intervention
9 janvier 2008
1
17 juin 2004 à 18:15
en tout cas devcpp ne me fais aucun warnings...
Le reste du du code ne te sera d'aucune utilité...
Je vois pas ce que tu trouverais dedans vu que l'erreur est au debut...
mais bon le voila (il est incomprehensible car je l'ai pas commenté
#include
#include "hbomberman.h"
#include
#include<stdlib.h>
char ip[16];
void time()
{
timer++;
}
END_OF_FUNCTION(time);
void clear_explosion()
{
for(int x=0;x<11;x++)
{
for(int y=0;y<15;y++)
{
if(extincteur[clearexp[x][y]]<timer)
explosion[x][y]=0;
}
}
}
void onde2choc()
{
if(xbaccel!=-1);
{
for(int a=0;a<6;a++)
{
if(xbombe[a]==xbaccel && ybombe[a]==ybaccel)
boum[a]=timer+3;
}
}
xbaccel=-1;
}
void draw_bloc()
{
for(int y=0;y<15;y++)
{
for(int x=0;x<11;x++)
{
if(map[x][y]==1)
draw_sprite(buffer,bloc,(x*64)+15,(y*48)+32);
if(map[x][y]==2||(map[x][y]>3&&map[x][y]<6))
draw_sprite(buffer,bloc2,(x*64)+15,(y*48)+32);
if(map[x][y]==3)
draw_sprite(buffer,bombe,(x*64)+23,(y*48)+32);
if(map[x][y]==6)
draw_sprite(buffer,bonus_feu,(x*64)+23,(y*48)+32);
if(map[x][y]==7)
draw_sprite(buffer,bonus_bombe,(x*64)+23,(y*48)+32);
}
}
}
void draw_bomberman()
{
if(pos_bomber==1)
draw_sprite(buffer,bombermanf,xbon,ybon);
if(pos_bomber==2)
draw_sprite(buffer,bombermando,xbon,ybon);
if(pos_bomber==3)
draw_sprite(buffer,bombermang,xbon,ybon);
if(pos_bomber==4)
draw_sprite(buffer,bombermand,xbon,ybon);
}
void draw_exp()
{
for(int x=0;x<11;x++)
{
for(int y=0;y<15;y++)
{
if(explosion[x][y]==1)
{
draw_sprite(buffer,feuc,(x*64)+15,(y*48)+32);
}
if(explosion[x][y]==2)
{
draw_sprite(buffer,feulv,(x*64)+15,(y*48)+32);
}
if(explosion[x][y]==3)
{
draw_sprite(buffer,feub,(x*64)+15,(y*48)+32);
}
if(explosion[x][y]==4)
{
draw_sprite(buffer,feuh,(x*64)+15,(y*48)+32);
}
if(explosion[x][y]==5)
{
draw_sprite(buffer,feul,(x*64)+15,(y*48)+32);
}
if(explosion[x][y]==6)
{
draw_sprite(buffer,feud,(x*64)+15,(y*48)+32);
}
if(explosion[x][y]==7)
{
draw_sprite(buffer,feug,(x*64)+15,(y*48)+32);
}
}
}
clear_explosion();
}
void buffering()
{
clear_bitmap(buffer);
draw_sprite(buffer,sol,0,0);
draw_bloc();
draw_bomberman();
draw_exp();
draw_sprite(buffer,murb,0,752);
sprintf(str,"%d %d %d %d %d %d",xbon,ybon,xmap[1],ymap[1],timer,currentdep);
textout(buffer,font,str,700,4,makecol(255,0,0));
blit(buffer,screen,0,0,0,0,1024,768);
switch(npage)
{
case 1:buffer=page2;npage=2;break;
case 2:buffer=page3;npage=3;break;
case 3:buffer=page1;npage=1;break;
}
}
void init()
{
for(int a=0;a<4;a++)
{
for(int b=0;b<4;b++)
{
deplace[a][b]=8;
}
}
for(int a=0;a<6;a++)
{
boum[a]=-1;
p[a]=1;
decal[a]=1;
}
for(int a=0;a<11;a++)
{
for(int b=0;b<15;b++)
{
map[a][b]=0;
explosion[a][b]=0;
}
}
int p=1;
int q=1;
for(int x=1;x<10;x++)
{
for(int y=1;y<14;y++)
{
if(p==0)
{
map[x][y]=0;
p=1;
}
else if(q==1)
{
map[x][y]=1;
p=0;
}
}
q=q*-1;
}
srand((unsigned)time(NULL));
map[0][0]=-1;
map[1][0]=-1;
map[0][1]=-1;
map[10][14]=-1;
map[10][13]=-1;
map[9][14]=-1;
p=1;
q=1;
for(int y=0;y<15;y++)
{
for(int x=0;x<15;x++)
{
if((rand()%2==0||rand()%2==1||rand()%2==3)&&p==1&&map[x][y]!=-1)
{
map[x][y]=2;
}
if(q==-1)
p=(p*-1);
}
q=(q*-1);
p=1;
}
//disposition des bonus
p=1;
q=1;
for(int y=0;y<15;y++)
{
for(int x=0;x<15;x++)
{
if(rand()%5==0&&p==1&&map[x][y]==2)
{
map[x][y]=4;
}
else if(rand()%5==0&&p==1&&map[x][y]==2)
{
map[x][y]=5;
}
if(q==-1)
p=(p*-1);
}
q=(q*-1);
p=1;
}
map[0][0]=0;
map[1][0]=0;
map[0][1]=0;
map[10][14]=0;
map[10][13]=0;
map[9][14]=0;
}
void bouge_bon()
{
if(key[KEY_LEFT]&&(map[xmap[1]-1][ymap[1]]==0||map[xmap[1]-1][ymap[1]]==6||map[xmap[1]-1][ymap[1]]==7)&&xmap[1]>0&&deplace[0][0]==8&¤tdep==0)
{
deplace[0][0]=0;
xmap[1]=xmap[1]-1;
currentdep=1;
}
if(deplace[0][0]<8)
{
deplace[0][0]=deplace[0][0]+1;
pos_bomber=3;
xbon=xbon-8;
if(deplace[0][0]==8)
currentdep=0;
}
if(key[KEY_RIGHT]&&(map[xmap[1]+1][ymap[1]]==0||map[xmap[1]+1][ymap[1]]==6||map[xmap[1]+1][ymap[1]]==7)&&xmap[1]<10&&deplace[1][1]==8&¤tdep==0)
{
deplace[1][1]=0;
xmap[1]=xmap[1]+1;
currentdep=1;
}
if(deplace[1][1]<8)
{
deplace[1][1]=deplace[1][1]+1;
pos_bomber=4;
xbon=xbon+8;
if(deplace[1][1]==8)
currentdep=0;
}
if(key[KEY_UP]&&(map[xmap[1]][ymap[1]-1]==0||map[xmap[1]][ymap[1]-1]==6||map[xmap[1]][ymap[1]-1]==7)&&ymap[1]>0&&deplace[2][2]>5&¤tdep==0)
{
deplace[2][2]=0;
ymap[1]=ymap[1]-1;
currentdep=1;
}
if(deplace[2][2]<6)
{
deplace[2][2]=deplace[2][2]+1;
pos_bomber=2;
ybon=ybon-8;
if(deplace[2][2]==6)
currentdep=0;
}
if(key[KEY_DOWN]&&(map[xmap[1]][ymap[1]+1]==0||map[xmap[1]][ymap[1]+1]==6||map[xmap[1]][ymap[1]+1]==7)&&ymap[1]<14&&deplace[3][3]>5&¤tdep==0)
{
deplace[3][3]=0;
ymap[1]=ymap[1]+1;
currentdep=1;
}
if(deplace[3][3]<6)
{
deplace[3][3]=deplace[3][3]+1;
pos_bomber=1;
ybon=ybon+8;
if(deplace[3][3]==6)
currentdep=0;
}
if(map[xmap[1]][ymap[1]]==6)
{
map[xmap[1]][ymap[1]]=0;
if(pmax<12)
pmax=pmax+1;
}
if(map[xmap[1]][ymap[1]]==7)
{
map[xmap[1]][ymap[1]]=0;
if(bombemax<6)
bombemax=bombemax+1;
}
}
int bomberman_is_dead()
{
bomberman_alive=0;
return 0;
}
void draw_explosion(int xexp,int yexp)
{
int decale=decal[pos];
if(p[pos]!=pmax)
{
explosion[xexp][yexp]=1;
clearexp[xexp][yexp]=pos;
}
if((map[xexp-decale][yexp]==2||map[xexp-decale][yexp]==4||map[xexp-decale][yexp]==5)&&lockg[pos]==0)
peteblocg[pos]=-1;
if((map[xexp+decale][yexp]==2||map[xexp+decale][yexp]==4||map[xexp+decale][yexp]==5)&&lockd[pos]==0)
peteblocd[pos]=-1;
if((map[xexp][yexp-decale]==2||map[xexp][yexp-decale]==4||map[xexp][yexp-decale]==5)&&lockh[pos]==0)
petebloch[pos]=-1;
if((map[xexp][yexp+decale]==2||map[xexp][yexp+decale]==4||map[xexp][yexp+decale]==5)&&lockb[pos]==0)
peteblocb[pos]=-1;
if((map[xexp-1][yexp]!=1&&xexp!=0)||(map[xexp+1][yexp]!=1&&xexp!=10))
{
if(peteblocg[pos]<1)
{
if(xexp-decale>0&&decale!=p[pos]&&peteblocg[pos]!=-1&&p[pos]!=pmax+1)
{
explosion[xexp-decale][yexp]=5;
clearexp[xexp-decale][yexp]=pos;
}
else if(xexp-decale>-1&&explosion[xexp-decale][yexp]!=5&&explosion[xexp-decale][yexp]!=1)
{
explosion[xexp-decale][yexp]=7;
clearexp[xexp-decale][yexp]=pos;
}
if(map[xexp-decale][yexp]==3)
{
xbaccel=xexp-decale;
ybaccel=yexp;
}
}
if(peteblocd[pos]<1)
{
if(xexp+decale<10&&decale!=p[pos]&&peteblocd[pos]!=-1&&p[pos]!=pmax+1)
{
explosion[xexp+decale][yexp]=5;
clearexp[xexp+decale][yexp]=pos;
}
else if(xexp+decale<11&&explosion[xexp+decale][yexp]!=5&&explosion[xexp+decale][yexp]!=1)
{
explosion[xexp+decale][yexp]=6;
clearexp[xexp+decale][yexp]=pos;
}
if(map[xexp+decale][yexp]==3)
{
xbaccel=xexp+decale;
ybaccel=yexp;
}
}
if(peteblocg[pos]<1)
{
if(xexp-decale>-1&&map[xexp-decale][yexp]<3)
map[xexp-decale][yexp]=0;
else if(map[xexp-decale][yexp]==4&&xexp-decale>-1)
map[xexp-decale][yexp]=6;
else if(map[xexp-decale][yexp]==5&&xexp-decale>-1)
map[xexp-decale][yexp]=7;
}
if(peteblocd[pos]<1)
{
if(xexp+decale<11&&map[xexp+decale][yexp]<3)
map[xexp+decale][yexp]=0;
else if(map[xexp+decale][yexp]==4&&xexp+decale<11)
map[xexp+decale][yexp]=6;
else if(map[xexp+decale][yexp]==5&&xexp+decale<11)
map[xexp+decale][yexp]=7;
}
if((xexp-decale==xmap[1]&&yexp==ymap[1]&&peteblocg[pos]!=1)||(xexp+decale==xmap[1]&&yexp==ymap[1]&&peteblocd[pos]!=1))
bomberman_is_dead();
}
if((map[xexp][yexp-1]!=1&&yexp!=0)||(map[xexp][yexp+1]!=1&&yexp!=14))
{
if(petebloch[pos]<1)
{
if(yexp-decale>0&&decale!=p[pos]&&petebloch[pos]!=-1&&p[pos]!=pmax+1)
{
explosion[xexp][yexp-decale]=2;
clearexp[xexp][yexp-decale]=pos;
}
else if(yexp-decale>-1&&explosion[xexp][yexp-decale]!=2&&explosion[xexp][yexp-decale]!=1)
{
explosion[xexp][yexp-decale]=4;
clearexp[xexp][yexp-decale]=pos;
}
if(map[xexp][yexp-decale]==3)
{
xbaccel=xexp;
ybaccel=yexp-decale;
}
}
if(peteblocb[pos]<1)
{
if(yexp+decale<14&&decale!=p[pos]&&peteblocb[pos]!=-1&&p[pos]!=pmax+1)
{
explosion[xexp][yexp+decale]=2;
clearexp[xexp][yexp+decale]=pos;
}
else if(yexp+decale<15&&explosion[xexp][yexp+decale]!=2&&explosion[xexp][yexp+decale]!=1)
{
explosion[xexp][yexp+decale]=3;
clearexp[xexp][yexp+decale]=pos;
}
if(map[xexp][yexp+decale]==3)
{
xbaccel=xexp;
ybaccel=yexp+decale;
}
}
if(petebloch[pos]<1)
{
if(yexp-decale>-1&&map[xexp][yexp-decale]<3)
map[xexp][yexp-decale]=0;
else if(map[xexp][yexp-decale]==4&&yexp-decale>-1)
map[xexp][yexp-decale]=6;
else if(map[xexp][yexp-decale]==5&&yexp-decale>-1)
map[xexp][yexp-decale]=7;
}
if(peteblocb[pos]<1)
{
if(yexp+decale<15&&map[xexp][yexp+decale]<3)
map[xexp][yexp+decale]=0;
else if(map[xexp][yexp+decale]==4&&yexp+decale<15)
map[xexp][yexp+decale]=6;
else if(map[xexp][yexp+decale]==5&&yexp+decale<15)
map[xexp][yexp+decale]=7;
}
if((xexp==xmap[1]&&yexp-decale==ymap[1]&&petebloch[pos]!=1)||(xexp==xmap[1]&&yexp+decale==ymap[1]&&peteblocb[pos]!=1))
bomberman_is_dead();
}
if(peteblocg[pos]==-1)
{
peteblocg[pos]=1;
lockg[pos]=1;
}
if(peteblocd[pos]==-1)
{
peteblocd[pos]=1;
lockd[pos]=1;
}
if(petebloch[pos]==-1)
{
petebloch[pos]=1;
lockh[pos]=1;
}
if(peteblocb[pos]==-1)
{
peteblocb[pos]=1;
lockb[pos]=1;
}
sprintf(str,"%d %d %d %d",peteblocg[pos],peteblocd[pos],petebloch[pos],peteblocb[pos]);
textout(buffer,font,str,800,50,makecol(255,0,0));
}
int install_bombe()
{
if(map[xmap[1]][ymap[1]]!=3)
{
for(int a=0;apmax)
{
p[pos]=1;
boum[pos]=-1;
decal[pos]=1;
peteblocg[pos]=0;
peteblocd[pos]=0;
petebloch[pos]=0;
peteblocb[pos]=0;
lockg[pos]=0;
lockd[pos]=0;
lockh[pos]=0;
lockb[pos]=0;
}
else
{
if(decal[pos]==p[pos])
{
p[pos]=p[pos]+1;
}
else
decal[pos]=decal[pos]+1;
draw_explosion(xbombe[pos],ybombe[pos]);
}
}
}
}
void init_reseau()
{
cout<<"quel est l'ip du serveur?"<<endl;
cin>>ip;
system("pause");
}
int main()
{
init_reseau();
allegro_init();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT,1024,768, 0, 0);
install_keyboard();
install_timer();
install_int_ex(time,MSEC_TO_TIMER(10));
LOCK_VARIABLE(timer);
LOCK_FUNCTION(time);
page1=create_bitmap(1024,768);
page2=create_bitmap(1024,768);
page3=create_bitmap(1024,768);
buffer=page1;
bloc=load_bitmap("Tiles/bloc.bmp",NULL);
bloc2=load_bitmap("Tiles/bloc2.bmp",NULL);
sol=load_bitmap("Tiles/sol.bmp",NULL);
bombermanf=load_bitmap("Tiles/bomberman/bomberman face.bmp",NULL);
bombermando=load_bitmap("Tiles/bomberman/bomberman dos.bmp",NULL);
bombermang=load_bitmap("Tiles/bomberman/bomberman gauche.bmp",NULL);
bombermand=load_bitmap("Tiles/bomberman/bomberman droite.bmp",NULL);
bombe=load_bitmap("Tiles/bombe.bmp",NULL);
feuc=load_bitmap("Tiles/feu centre all.bmp",NULL);
feug=load_bitmap("Tiles/feu gauche.bmp",NULL);
feud=load_bitmap("Tiles/feu droit.bmp",NULL);
feul=load_bitmap("Tiles/feu long.bmp",NULL);
feulv=load_bitmap("Tiles/feu long v.bmp",NULL);
feub=load_bitmap("Tiles/feub.bmp",NULL);
feuh=load_bitmap("Tiles/feuh.bmp",NULL);
murb=load_bitmap("Tiles/mur bas.bmp",NULL);
bonus_feu=load_bitmap("Tiles/bonus feu.bmp",NULL);
bonus_bombe=load_bitmap("Tiles/bonus bombe.bmp",NULL);
int relache=1;
init();
strcpy(str,"Waiting for a client to connect...");
textout(buffer,font,str,200,300,makecol(255,0,0));
buffering();
connection();
while(!key[KEY_ESC]&&bomberman_alive==1)
{
buffering();
bouge_bon();
if(key[KEY_SPACE])
install_bombe();
pete_bombe();
onde2choc();
if(senddat==1)
{
senddat=0;
SendData(xmap[1],ymap[1]);
}
}
int a=timer+200;
while(timer<a)
{
}
destroy_bitmap(buffer);
destroy_bitmap(page1);
destroy_bitmap(page2);
destroy_bitmap(page3);
destroy_bitmap(bombermanf);
destroy_bitmap(bombermando);
destroy_bitmap(bombermang);
destroy_bitmap(bombermand);
destroy_bitmap(bloc);
destroy_bitmap(bloc2);
destroy_bitmap(sol);
destroy_bitmap(murb);
destroy_bitmap(feuc);
destroy_bitmap(feud);
destroy_bitmap(feug);
destroy_bitmap(feuh);
destroy_bitmap(feub);
destroy_bitmap(feul);
destroy_bitmap(feulv);
destroy_bitmap(bombe);
destroy_bitmap(bonus_feu);
destroy_bitmap(bonus_bombe);
remove_int(time);
allegro_exit();
return 0;
}
// Some Allegro magic to deal with WinMain().
END_OF_MAIN();