
dletozeun
|
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 <allegro.h> #include "hbomberman.h" #include<iostream.h> #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;a<bombemax;a++) { if(boum[a]==-1) { map[xmap[1]][ymap[1]]=3; xbombe[a]=xmap[1]; ybombe[a]=ymap[1]; boum[a]=(timer+300); return 0; } } } }
void pete_bombe() { for(pos=0;pos<bombemax;pos++) { if(boum[pos]<timer&&boum[pos]!=-1) { map[xbombe[pos]][ybombe[pos]]=0; extincteur[pos]=timer+25; //parametrage pour l'explosion: if(p[pos]>pmax) { 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();
|