Bomberman-borland c++ 6

0/5 (13 avis)

Vue 8 361 fois - Téléchargée 791 fois

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

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
31 décembre 2003

j'arrive meme pas a le lancer le jeu !!! (maguar)
Messages postés
36
Date d'inscription
samedi 14 décembre 2002
Statut
Membre
Dernière intervention
24 juillet 2006

L'ai vu effectivement.
Bon ben....je vais prendre le temps d'essayer ton jeux après avoir essayé le leur.

@+
Messages postés
3
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
5 août 2003

Merci
Donc en fait c normal qu'il ont les meme graphisme puisque comme je l'ai dit je les ait pris dans la version visual basic de pcteam. Or pcteam appartient au meme groupe de presse que codermag.
Messages postés
36
Date d'inscription
samedi 14 décembre 2002
Statut
Membre
Dernière intervention
24 juillet 2006

Salut,
Code(R) est un magazine de programmation et notamment de programmation de jeux vidéos. Dans le numéro de ce mois-ci, ils expliquent comment créer un Bomberman...ils utilisent les mêmes graphismes que ton jeu.
Tu peux le trouver chez ton marchand de journaux ;-)
ou sur leur site :
http://www.codermag.com

@+
Messages postés
3
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
5 août 2003

Désolé mais qu'appelle tu "Code R" ? Ou je peut le trouver?
En fait je me suis juste inspiré de la version visual basic "team bomber" dans lequel j'ai repris les graphismes. Le reste (programmation) c'est moi qui l'ai fait seul.
Afficher les 13 commentaires

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.