Bomberman-borland c++ 6

Description

Un jeu très connu adapté d'une version en visual basic. Il ne possède aucune intelligence artificielle puisque c'est un jeu deux joueurs. Il y a quelques petits défauts et il faudrait le reprogrammer en objet car il tourne parfois lentement sur certain PC !

Source / Exemple :


#include <vcl.h>
#include "Bomberman.h"
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"

TForm1 *Form1;

int Bombe1=0;
int Bombe2=0;

int Bombe1Left;
int Bombe1Top;

int Bombe2Left;
int Bombe2Top;

int Music; //Déclaration variable des différentes musics

int J1Left,J1Top;     //Déclaration coordonnées Joueur1
int B1Left,B1Top;     //Déclaration coordonnées Bombe du Joueur 1

int J2Left,J2Top;     //Déclaration coordonnées joueur2
int B2Left,B2Top;     //Déclaration coordonnées Bombe du Joueur 2
int ScoreJ1=0,ScoreJ2=0;  //Déclaration score joueur 1 et 2

bool Priorite=False; //Déclaration de la variable autorisant ou non le déplacement des joueurs
bool PrioriteB1J1=True;
bool PrioriteB1J2=True;

int x=0; //Déclaration variable mouvement Joueur1
int y=0; //Déclaration variable mouvement Joueur1
int z=0; //Déclaration variable mouvement Joueur1
int w=0; //Déclaration variable mouvement Joueur1

int a=0; //Déclaration variable mouvement Joueur2
int b=0; //Déclaration variable mouvement Joueur2
int c=0; //Déclaration variable mouvement Joueur2
int d=0; //Déclaration variable mouvement Joueur2

int NbBombeJ1=1; //Déclaration variable du nombre de bombe du joueur 1
int NbBombeJ2=1; //Déclaration variable du nombre de bombe du joueur 2

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 BomberManWorld->Caption="BomberManWorld";
 Form1->Position=poDesktopCenter; //Centre la fenètre sur le bureau
 Form1->Align=alNone;             //Désactive l'alignement automatique
 Form1->AutoScroll=False;         //Désactive les barres de défilement
 Form1->AutoSize=False;           //Désactive la taille de fenètre automatique

 ScoreJoueur1->Caption=ScoreJ1;
 ScoreJoueur2->Caption=ScoreJ2;
 BombeJoueur1->Caption=NbBombeJ1;
 BombeJoueur2->Caption=NbBombeJ2;

 Go->Visible=False;
 Ready->Visible=False;

 Joueur1->Left=16;  J1Left=16; //Coordonnée Gauche du Joueur1 affecté à J1Left
 Joueur1->Top=48;   J1Top=48;  //Coordonnée Haut du Joueur1 affecté à J1Top

 Joueur2->Left=592;  J2Left=592; //Coordonnée Gauche du Joueur2 affecté à J1Left
 Joueur2->Top=496;   J2Top=496;  //Coordonnée Haut du Joueur2 affecté à J1Top

}
//---------------------------------------------------------------------------
void __fastcall TForm1::QuitterClick(TObject *Sender)
{
 PostQuitMessage(0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NouvellePartieClick(TObject *Sender)
{
 BomberManWorld->Caption="BomberManWorld" ;
 MediaPlayer1->Stop();
 MediaPlayer1->Play();
 Priorite=False;
 Ready->Visible=True;
 TimerReady->Enabled=True;
 ScoreJ1=0;
 ScoreJ2=0;
 ScoreJoueur1->Caption=ScoreJ1;
 ScoreJoueur2->Caption=ScoreJ2;

 NbBombeJ1=1;
 NbBombeJ2=1;
 BombeJoueur1->Caption=NbBombeJ1;
 BombeJoueur2->Caption=NbBombeJ2;

 a=0;b=0;c=0;d=0;
 w=0;x=0;y=0;z=0;

 Joueur1->Picture->LoadFromFile("Joueur1Face1.bmp");
 Joueur2->Picture->LoadFromFile("Joueur2Haut1.bmp");

 Joueur1->Left=16;  J1Left=16; //Coordonnée Gauche du Joueur1 affecté à J1Left
 Joueur1->Top=48;   J1Top=48;  //Coordonnée Haut du Joueur1 affecté à J1Top

 Joueur2->Left=592;  J2Left=592; //Coordonnée Gauche du Joueur2 affecté à J1Left
 Joueur2->Top=496;   J2Top=496;  //Coordonnée Haut du Joueur2 affecté à J1Top

 //Caisse1->Visible=True;
 //Caisse2->Visible=True;
 //Caisse3->Visible=True;
 //Caisse4->Visible=True;
 //Caisse5->Visible=True;
 //Caisse6->Visible=True;

 NouvellePartie->Enabled=False;
 NouvellePartie->Enabled=True;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TimerReadyTimer(TObject *Sender)
{
 Ready->Visible=False;
 TimerReady->Enabled=False;
 Go->Visible=True;
 TimerGo->Enabled=True;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TimerGoTimer(TObject *Sender)
{
 Go->Visible=False;
 TimerGo->Enabled=False;
 Priorite=True;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{

 if (Priorite==True) {   w++; x++; y++; z++;

                        if (Key == VK_UP) {
                                           if(w==0) {Joueur1->Picture->LoadFromFile("Joueur1Haut1.bmp");}
                                           if(w==4) {Joueur1->Picture->LoadFromFile("Joueur1Haut2.bmp");}
                                           if(w==8) {Joueur1->Picture->LoadFromFile("Joueur1Haut3.bmp");}
                                           if(w==12){Joueur1->Picture->LoadFromFile("Joueur1Haut4.bmp");}
                                           if(w==16){Joueur1->Picture->LoadFromFile("Joueur1Haut5.bmp");}
                                           if(w==20){Joueur1->Picture->LoadFromFile("Joueur1Haut6.bmp");}
                                           if(w>20) {w=0;}

                                           J1Top=J1Top-4; //Déplacement Joueur1 vers le haut
                                           if (J1Top<=48) J1Top=48; //Blocage joueur1 dans le terrain de jeu
                                           x=0;y=0;z=0;
                                          }

                         if (Key == VK_DOWN) {
                                             if(x==0) {Joueur1->Picture->LoadFromFile("Joueur1Face1.bmp");}
                                             if(x==4) {Joueur1->Picture->LoadFromFile("Joueur1Face2.bmp");}
                                             if(x==8) {Joueur1->Picture->LoadFromFile("Joueur1Face3.bmp");}
                                             if(x==12) {Joueur1->Picture->LoadFromFile("Joueur1Face4.bmp");}
                                             if(x==16) {Joueur1->Picture->LoadFromFile("Joueur1Face5.bmp");}
                                             if(x==20) {Joueur1->Picture->LoadFromFile("Joueur1Face6.bmp");}
                                             if(x>20) {x=0;}

                                             J1Top=J1Top+4; //Déplacement Joueur1 vers le bas
                                             if (J1Top>=496) J1Top=496; //Blocage joueur1 dans le terrain de jeu
                                              y=0;z=0;w=0;
                                            }

                        if (Key == VK_LEFT) {
                                             if(y==0) {Joueur1->Picture->LoadFromFile("Joueur1Gauche1.bmp");}
                                             if(y==4) {Joueur1->Picture->LoadFromFile("Joueur1Gauche2.bmp");}
                                             if(y==8) {Joueur1->Picture->LoadFromFile("Joueur1Gauche3.bmp");}
                                             if(y==12){Joueur1->Picture->LoadFromFile("Joueur1Gauche4.bmp");}
                                             if(y==16){Joueur1->Picture->LoadFromFile("Joueur1Gauche5.bmp");}
                                             if(y==20){Joueur1->Picture->LoadFromFile("Joueur1Gauche6.bmp");}
                                             if(y>20) {y=0;}

                                             J1Left=J1Left-4; //Déplacement Joueur1 vers la gauche
                                             if (J1Left<16) J1Left=16; //Blocage joueur1 dans le terrain de jeu
                                             x=0;z=0;w=0;
                                            }

                        if (Key == VK_RIGHT) {
                                              if(z==0) {Joueur1->Picture->LoadFromFile("Joueur1Droite1.bmp");}
                                              if(z==4) {Joueur1->Picture->LoadFromFile("Joueur1Droite2.bmp");}
                                              if(z==8) {Joueur1->Picture->LoadFromFile("Joueur1Droite3.bmp");}
                                              if(z==12){Joueur1->Picture->LoadFromFile("Joueur1Droite4.bmp");}
                                              if(z==16){Joueur1->Picture->LoadFromFile("Joueur1Droite5.bmp");}
                                              if(z==20){Joueur1->Picture->LoadFromFile("Joueur1Droite6.bmp");}
                                              if(z>20) {z=0;}

                                              J1Left=J1Left+4; //Déplacement Joueur1 vers la droite
                                              if (J1Left>=592) J1Left=592; //Blocage joueur1 dans le terrain de jeu
                                              x=0;y=0;w=0;
                                             }

                       if (Key == VK_SPACE) {
                                              if (PrioriteB1J1==True) {
                                                                      TimerB1J1->Enabled=True;
                                                                      Bombe1J1->Left=J1Left;  Bombe1Left=J1Left;
                                                                      Bombe1J1->Top=J1Top;    Bombe1Top=J1Top;
                                                                      Bombe1J1->Visible=True;
                                                                      PrioriteB1J1=False;
                                                                     }
                                            }

                        a++; b++; c++; d++;

                        if (Key == VK_NUMPAD8)  {
                                                 if(a==0) {Joueur2->Picture->LoadFromFile("Joueur2Haut1.bmp");}
                                                 if(a==4) {Joueur2->Picture->LoadFromFile("Joueur2Haut2.bmp");}
                                                 if(a==8) {Joueur2->Picture->LoadFromFile("Joueur2Haut3.bmp");}
                                                 if(a==12){Joueur2->Picture->LoadFromFile("Joueur2Haut4.bmp");}
                                                 if(a==16){Joueur2->Picture->LoadFromFile("Joueur2Haut5.bmp");}
                                                 if(a==20){Joueur2->Picture->LoadFromFile("Joueur2Haut6.bmp");}
                                                 if(a>20) {a=0;}

                                                 J2Top=J2Top-4; //Déplacement Joueur2 vers le haut
                                                 if (J2Top<=48) J2Top=48; //Blocage joueur2 dans le terrain de jeu
                                                 b=0;c=0;d=0;
                                                }

                        if (Key == VK_NUMPAD5) {
                                                if(b==0) {Joueur2->Picture->LoadFromFile("Joueur2Face1.bmp");}
                                                if(b==4) {Joueur2->Picture->LoadFromFile("Joueur2Face2.bmp");}
                                                if(b==8) {Joueur2->Picture->LoadFromFile("Joueur2Face3.bmp");}
                                                if(b==12) {Joueur2->Picture->LoadFromFile("Joueur2Face4.bmp");}
                                                if(b==16) {Joueur2->Picture->LoadFromFile("Joueur2Face5.bmp");}
                                                if(b==20) {Joueur2->Picture->LoadFromFile("Joueur2Face6.bmp");}
                                                if(b>20) {b=0;}

                                                J2Top=J2Top+4; //Déplacement Joueur2 vers le bas
                                                if (J2Top>=496) J2Top=496; //Blocage joueur2 dans le terrain de jeu
                                                a=0;c=0;d=0;
                                                }

                        if (Key == VK_NUMPAD4) {
                                                if(c==0) {Joueur2->Picture->LoadFromFile("Joueur2Gauche1.bmp");}
                                                if(c==4) {Joueur2->Picture->LoadFromFile("Joueur2Gauche2.bmp");}
                                                if(c==8) {Joueur2->Picture->LoadFromFile("Joueur2Gauche3.bmp");}
                                                if(c==12){Joueur2->Picture->LoadFromFile("Joueur2Gauche4.bmp");}
                                                if(c==16){Joueur2->Picture->LoadFromFile("Joueur2Gauche5.bmp");}
                                                if(c==20){Joueur2->Picture->LoadFromFile("Joueur2Gauche6.bmp");}
                                                if(c>20) {c=0;}

                                                J2Left=J2Left-4; //Déplacement Joueur2 vers la gauche
                                                if (J2Left<16) J2Left=16; //Blocage joueur2 dans le terrain de jeu
                                                a=0;b=0;d=0;
                                               }

                        if (Key == VK_NUMPAD6) {
                                                if(d==0) {Joueur2->Picture->LoadFromFile("Joueur2Droite1.bmp");}
                                                if(d==4) {Joueur2->Picture->LoadFromFile("Joueur2Droite2.bmp");}
                                                if(d==8) {Joueur2->Picture->LoadFromFile("Joueur2Droite3.bmp");}
                                                if(d==12){Joueur2->Picture->LoadFromFile("Joueur2Droite4.bmp");}
                                                if(d==16){Joueur2->Picture->LoadFromFile("Joueur2Droite5.bmp");}
                                                if(d==20){Joueur2->Picture->LoadFromFile("Joueur2Droite6.bmp");}
                                                if(d>20) {d=0;}

                                                J2Left=J2Left+4; //Déplacement Joueur2 vers la droite
                                                if (J2Left>=592) J2Left=592; //Blocage joueur2 dans le terrain de jeu
                                                a=0;b=0;c=0;
                                               }

                      if (Key == VK_NUMPAD0) {
                                              if (PrioriteB1J2==True) {
                                                                      TimerB1J2->Enabled=True;
                                                                      Bombe1J2->Left=J2Left;  Bombe2Left=J2Left;
                                                                      Bombe1J2->Top=J2Top;    Bombe2Top=J2Top;
                                                                      Bombe1J2->Visible=True;
                                                                      PrioriteB1J2=False;
                                                                     }
                                            }

                        }

 Joueur2->Left=J2Left;
 Joueur2->Top=J2Top;
 Joueur1->Left=J1Left;
 Joueur1->Top=J1Top;

 return;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::NouveauRoundClick(TObject *Sender)
{
 if (ScoreJ1==5) BomberManWorld->Caption="Joueur1 Gagnant";
 if (ScoreJ2==5) BomberManWorld->Caption="Joueur2 Gagnant";
 Priorite=False;
 Ready->Visible=True;
 TimerReady->Enabled=True;

 Joueur1->Left=16;  J1Left=16; //Coordonnée Gauche du Joueur1 affecté à J1Left
 Joueur1->Top=48;   J1Top=48;  //Coordonnée Haut du Joueur1 affecté à J1Top

 Joueur2->Left=592;  J2Left=592; //Coordonnée Gauche du Joueur2 affecté à J1Left
 Joueur2->Top=496;   J2Top=496;  //Coordonnée Haut du Joueur2 affecté à J1Top

 a=0;b=0;c=0;d=0;
 w=0;x=0;y=0;z=0;

 Joueur1->Picture->LoadFromFile("Joueur1Face1.bmp");
 Joueur2->Picture->LoadFromFile("Joueur2Haut1.bmp");

 //Caisse1->Visible=True;
 //Caisse2->Visible=True;
 //Caisse3->Visible=True;
 //Caisse4->Visible=True;
 //Caisse5->Visible=True;
 //Caisse6->Visible=True;

 NouveauRound->Enabled=False;
 NouveauRound->Enabled=True;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::TimerB1J1Timer(TObject *Sender)
{
 Bombe1++;
 if (Bombe1==1) Bombe1J1->Picture->LoadFromFile("Bombe2.bmp");
 if (Bombe1==2) Bombe1J1->Picture->LoadFromFile("Bombe3.bmp");
 if (Bombe1==3) Bombe1J1->Picture->LoadFromFile("Bombe2.bmp");
 if (Bombe1==4) Bombe1J1->Picture->LoadFromFile("Bombe1.bmp");
 if (Bombe1==5) Bombe1J1->Picture->LoadFromFile("Bombe2.bmp");
 if (Bombe1==6) Bombe1J1->Picture->LoadFromFile("Bombe3.bmp");
 if (Bombe1==7) Bombe1J1->Picture->LoadFromFile("Bombe2.bmp");
 if (Bombe1==8) Bombe1J1->Picture->LoadFromFile("Bombe1.bmp");
 if (Bombe1==9) {Bombe1J1->Picture->LoadFromFile("Bombe2.bmp");
                MediaPlayer2->Play();
                ExpDroite1->Left=Bombe1Left+57;
                ExpDroite1->Top=Bombe1Top;
                ExpGauche1->Left=Bombe1Left-57;
                ExpGauche1->Top=Bombe1Top;
                ExpHaut1->Left=Bombe1Left;
                ExpHaut1->Top=Bombe1Top-57;
                ExpBas1->Left=Bombe1Left;
                ExpBas1->Top=Bombe1Top+57;
                ExpCentre1->Left=Bombe1Left;
                ExpCentre1->Top=Bombe1Top;

                ExpCentre1->Visible=True;
                ExpDroite1->Visible=True;
                ExpGauche1->Visible=True;
                ExpHaut1->Visible=True;
                ExpBas1->Visible=True;
                if (J1Left > Bombe1Left-65 && J1Left < Bombe1Left+114)
                    {
                     if (J1Top > Bombe1Top-65 && J1Top < Bombe1Top+114)
                         {Joueur1->Picture->LoadFromFile("grille1.bmp");
                          Priorite=False;
                          ScoreJ2++;
                          ScoreJoueur2->Caption=ScoreJ2;
                           
                         }
                    }
                if (J2Left > Bombe1Left-65 && J2Left < Bombe1Left+114)
                    {
                     if (J2Top > Bombe1Top-65 && J2Top < Bombe1Top+114)
                         {Joueur2->Picture->LoadFromFile("grille2.bmp");
                          Priorite=False;
                          ScoreJ1++;
                          ScoreJoueur1->Caption=ScoreJ1;
                         }
                    }
                if (ScoreJ1==5) BomberManWorld->Caption="Joueur1 Gagnant";
                if (ScoreJ2==5) BomberManWorld->Caption="Joueur2 Gagnant";
                TimerExp1->Enabled=True;
               }

}
//---------------------------------------------------------------------------

void __fastcall TForm1::TimerExp1Timer(TObject *Sender)
{
 TimerB1J1->Enabled=False;
 TimerExp1->Enabled=False;
 ExpCentre1->Visible=False;
 ExpDroite1->Visible=False;
 ExpGauche1->Visible=False;
 ExpHaut1->Visible=False;
 ExpBas1->Visible=False;
 Bombe1J1->Visible=False;
 PrioriteB1J1=True;
 Bombe1=0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::AProposDeClick(TObject *Sender)
{
 MediaPlayer1->Eject();        
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TimerB1J2Timer(TObject *Sender)
{
 Bombe2++;
 if (Bombe2==1) Bombe1J2->Picture->LoadFromFile("Bombe2.bmp");
 if (Bombe2==2) Bombe1J2->Picture->LoadFromFile("Bombe3.bmp");
 if (Bombe2==3) Bombe1J2->Picture->LoadFromFile("Bombe2.bmp");
 if (Bombe2==4) Bombe1J2->Picture->LoadFromFile("Bombe1.bmp");
 if (Bombe2==5) Bombe1J2->Picture->LoadFromFile("Bombe2.bmp");
 if (Bombe2==6) Bombe1J2->Picture->LoadFromFile("Bombe3.bmp");
 if (Bombe2==7) Bombe1J2->Picture->LoadFromFile("Bombe2.bmp");
 if (Bombe2==8) Bombe1J2->Picture->LoadFromFile("Bombe1.bmp");
 if (Bombe2==9) {Bombe1J2->Picture->LoadFromFile("Bombe2.bmp");
                MediaPlayer2->Play();
                ExpDroite2->Left=Bombe2Left+57;
                ExpDroite2->Top=Bombe2Top;
                ExpGauche2->Left=Bombe2Left-57;
                ExpGauche2->Top=Bombe2Top;
                ExpHaut2->Left=Bombe2Left;
                ExpHaut2->Top=Bombe2Top-57;
                ExpBas2->Left=Bombe2Left;
                ExpBas2->Top=Bombe2Top+57;
                ExpCentre2->Left=Bombe2Left;
                ExpCentre2->Top=Bombe2Top;

                ExpCentre2->Visible=True;
                ExpDroite2->Visible=True;
                ExpGauche2->Visible=True;
                ExpHaut2->Visible=True;
                ExpBas2->Visible=True;
                if (J1Left > Bombe2Left-65 && J1Left < Bombe2Left+114)
                    {
                     if (J1Top > Bombe2Top-65 && J1Top < Bombe2Top+114)
                         {Joueur1->Picture->LoadFromFile("grille1.bmp");
                          Priorite=False;
                          ScoreJ2++;
                          ScoreJoueur2->Caption=ScoreJ2;
                         }
                    }
                if (J2Left > Bombe2Left-65 && J2Left < Bombe2Left+114)
                    {
                     if (J2Top > Bombe2Top-65 && J2Top < Bombe2Top+114)
                         {Joueur2->Picture->LoadFromFile("grille2.bmp");
                          Priorite=False;
                          ScoreJ1++;
                          ScoreJoueur1->Caption=ScoreJ1;
                         }
                    }
                 if (ScoreJ1==5) BomberManWorld->Caption="Joueur1 Gagnant";
                 if (ScoreJ2==5) BomberManWorld->Caption="Joueur2 Gagnant";    
                TimerExp2->Enabled=True;
               }

}
//---------------------------------------------------------------------------

void __fastcall TForm1::TimerExp2Timer(TObject *Sender)
{
 TimerB1J2->Enabled=False;
 TimerExp2->Enabled=False;
 ExpCentre2->Visible=False;
 ExpDroite2->Visible=False;
 ExpGauche2->Visible=False;
 ExpHaut2->Visible=False;
 ExpBas2->Visible=False;
 Bombe1J2->Visible=False;
 PrioriteB1J2=True;
 Bombe2=0;
}
//---------------------------------------------------------------------------

Conclusion :


Malheureusement je n'est pû mettre que les images et les sons dans le zip. Si vous voulez tous les fichiers (borland 6) ainsi que l'executable n'hésitez pas a me contacter: florent69@free.fr ou aller sur http://vyse01.free.fr et télécharger le pack COMPLET "bomberman.rar".
Je sais que le programme est loin d'être parfait mais soyez indulgent c'est mon premier programmme en C++ et il m'a comme même valut un 18 en projet informatique..... Voila je vous laisse le soin de le reprogrammmer tout bien où juste d'y jouer!!!! A noter pour ceux qui voudraient le reprogrammer qu'il faudrait l'orienter objet et utliser une matrice.....Bonne prog!!!

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.