Petit jeu multijoueur du genre fight club v3.0

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 115 fois - Téléchargée 33 fois

Contenu du snippet

bon ce n'est pas grand chose... tout le combat se déroule au hazard... (on ne fait que choisir le nombre de joueur et leur nom) mais l'éssentiel y est...

Source / Exemple :


#include <stdlib.h>
#include <iostream.h>
#include <dos.h>
#include <conio.c>
#include <windows.h>

void bip1(){Beep(900,35);}

void bip2(){
   Beep(450,200);
   Sleep(75);
   Beep(550,200);
   Sleep(50);
   Beep(750,200);
   }

void bip3(){
   Beep(900,250);
   Sleep(50);
   Beep(800,150);
   Sleep(50);
   Beep(800,150);
   Sleep(50);
   Beep(800,150);
   Sleep(100);
   Beep(1000,250);
   Sleep(50);
   Beep(800,250);
   }

int vie[10],armure[10],a,dommage,joueur,combatant,victime,x;
bool vivant[10],fin=false;
char nom1[20],nom2[20],nom3[20],nom4[20],nom5[20],nom6[20],nom7[20],nom8[20],nom9[20],nom10[20];

void attaque(int x){
do{a=rand()%joueur;}while(a==x || vivant[a]==false); //trouver une victime
victime=a;

a=rand()%10; a++;
dommage=a-armure[victime];
if(dommage<0){dommage=0;}     //trouver et infliger les domages
vie[victime]-=dommage;
}

void combat(){do {
Sleep(200); system("cls"); //attendre 1/5 de seconde (pour ne pas faire dérouler le combat trop vite) et effacer l'ecran (pour la propretée)

for(x=0;x<=9;x++){if(vivant[x]){attaque(x);}}    //faire attaquer chaque joueur

if (vivant[0]==true) {textcolor(10); cout<<nom1<<": "<<vie[0]<<endl;}
if (vivant[1]==true) {textcolor(12); cout<<nom2<<": "<<vie[1]<<endl;}
if (vivant[2]==true) {textcolor(13); cout<<nom3<<": "<<vie[2]<<endl;}
if (vivant[3]==true) {textcolor(14); cout<<nom4<<": "<<vie[3]<<endl;}
if (vivant[4]==true) {textcolor(15); cout<<nom5<<": "<<vie[4]<<endl;}    //ecrire la vie des joueurs a l'écran
if (vivant[5]==true) {textcolor(10); cout<<nom6<<": "<<vie[5]<<endl;}
if (vivant[6]==true) {textcolor(11); cout<<nom7<<": "<<vie[6]<<endl;}
if (vivant[7]==true) {textcolor(12); cout<<nom8<<": "<<vie[7]<<endl;}
if (vivant[8]==true) {textcolor(13); cout<<nom9<<": "<<vie[8]<<endl;}
if (vivant[9]==true) {textcolor(14); cout<<nom10<<": "<<vie[9]<<endl;}
textcolor(15);
combatant=joueur;
for (int x=0; x<joueur; x++){
                             if(vie[x]<=0){  vivant[x]=false;      //determiner combien de joueur il reste
                                             combatant--;
                                          }
                            }

}while(combatant>1);//recommencer tant qu'il reste plus d'un joueur de vivant

}  //fin du combat

void main(){
do{ //la boucle qui recommence a chaque partie
bip2();
textcolor(15);
do{
system("cls");
cout<<"combien y a t'il de joueur: (maximum 10)  ";       //demander le nombre de joueur
cin>>joueur;
bip1();
}while(joueur>10 || joueur<2);

for (x=0; x<10; x++){
                     if(x<joueur){vivant[x]=true;}    //déclarer les joueurs mort ou vivant
                     else{vivant[x]=false;}
                    }

for(x=0; x<joueur; x++){
                        system("cls");
                        cout<<"entrez le nom du joueur "<<x+1<<endl;
                        if (x==0){cin>>nom1;}
                        if (x==1){cin>>nom2;}
                        if (x==2){cin>>nom3;}
                        if (x==3){cin>>nom4;}   //demander les noms
                        if (x==4){cin>>nom5;}
                        if (x==5){cin>>nom6;}
                        if (x==6){cin>>nom7;}
                        if (x==7){cin>>nom8;}
                        if (x==8){cin>>nom9;}
                        if (x==9){cin>>nom10;}
                        bip1();
                       }

for(x=0; x<joueur; x++){
                        a=rand()%51;
                        vie[x]=150+a;             //donner de la vie et de l'armure aux joueurs
                        armure[x]=rand()%4;
                       }

combat();

system("cls");
if (vivant[0]==true){cout<<"LE GAGNANT EST: "<<nom1;}else
if (vivant[1]==true){cout<<"LE GAGNANT EST: "<<nom2;}else
if (vivant[2]==true){cout<<"LE GAGNANT EST: "<<nom3;}else
if (vivant[3]==true){cout<<"LE GAGNANT EST: "<<nom4;}else
if (vivant[4]==true){cout<<"LE GAGNANT EST: "<<nom5;}else             //afficher le gagnant
if (vivant[5]==true){cout<<"LE GAGNANT EST: "<<nom6;}else
if (vivant[6]==true){cout<<"LE GAGNANT EST: "<<nom7;}else
if (vivant[7]==true){cout<<"LE GAGNANT EST: "<<nom8;}else
if (vivant[8]==true){cout<<"LE GAGNANT EST: "<<nom9;}else
if (vivant[9]==true){cout<<"LE GAGNANT EST: "<<nom10;}else
{cout<<"IL N'Y A PAS DE GAGNANT!";}
bip3();
Sleep(1500);

do{
system("cls");
cout<<"voulez vous rejouer? \n\n 1: oui \n 2: non (quiter) \n 3: a propos \n\n\n";
a=getche();

  switch (a){

         case('1'): cout<<""; a=1; //si on veut rejouer... (le programme rejout par défaut) le cout est la pour empecher une erreure sous devc++
                   break;

         case('2'): fin=true; a=1; bip1();
                   break;

         case('3'): a=0; bip2(); MessageBox (NULL, "\ncréer par: prokev \n\nsi vous rencontrez des problemes ou avez des questions:\n\t   prokev666@hotmail.com\n\n         ou pour obtenir d'autre programmes: \n\t   pages.infinit.net/prokev" , "a propos...", 0 + MB_ICONASTERISK + MB_SYSTEMMODAL);
                   break;

         default:   a=0;
                   break;
            }
}while (a==0);

}while (fin==false); //recommencer une autre partie ou quiter...

}   //fin du programme

Conclusion :


je travaille aussi sur une version aventure de ce jeux...

merci a ceux qui ont déposé des commentaires... j'ai enlever les goto et j'ai arranger la source pour qu'elle siot plus lisible... pour les erreures je crois que c'est arranger (en tout cas avec devc++ ca marche)

A voir également

Ajouter un commentaire Commentaires
Messages postés
126
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
4 mars 2005

En effet il y a 2 error(s), 1 warning(s)
mais il suffit d'enlever les deux 'int' et de remplacer le 'int main()'
par un 'void main()' et là:

Compiling...
new.cpp
Linking...
new.exe - 0 error(s), 0 warning(s)

sinon le jeu est amusant mais il y a des trucs a revoir!!!
(les goto rendent la sources horrible)
a part ca vraiment c pas mal!!!
Messages postés
92
Date d'inscription
dimanche 2 juin 2002
Statut
Membre
Dernière intervention
24 juin 2004

arg c quoi ce quoi de merde :
if (vivant[0]==true){attaque(0);}
if (vivant[1]==true){attaque(1);}
if (vivant[2]==true){attaque(2);}

fait plutot for(i=0;i<=9;i++)
if(vivant[i]) attaque(i);

Ca fait pas terrible sinon évite de mettre tout en un bloc ou sur une ligne c'est pas très lisible. ET ARRETE LES GOTO! On ne code pas avec des goto c'est pas propre. Bonnne chance quand même.
Messages postés
4
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
17 mai 2003

oui moi aussi je rencontre ces erreur!!!!!, mais apres quand je met en commentaire les deux 'int', y'a d'autre erreur :

Linking...
autre.obj : error LNK2005: _main already defined in image.obj
Debug/imagebougeant.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

imagebougeant.exe - 2 error(s), 0 warning(s)
Messages postés
368
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
27 janvier 2010
1
salut ,
apparement ya quelques erreurs dans le code :

Compiling...
ddutil.cpp
c:ddutil.cpp(48) : error C2374: 'x' : redefinition; multiple initialization
c:ddutil.cpp(46) : see declaration of 'x'
c:ddutil.cpp(50) : error C2374: 'x' : redefinition; multiple initialization
c:ddutil.cpp(46) : see declaration of 'x'
c:ddutil.cpp(75) : warning C4508: 'main' : function should return a value; 'void' return type assumed
Error executing cl.exe.

ddutil.obj - 2 error(s), 1 warning(s)

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.