Petit jeu d'un debutant en c++, variable aléatoire et autres petits trucs utiles...

Description

Voila un petit truc sympa : joueur à Pierre Feuille Ciseaux Puits avec l'ordi... functions de bases, petite matrice de possibilité des résultats et leurs bibliothèques.

Source / Exemple :


#include <iostream.h>      // cout<< et cin>>
#include <string.h>
#include <conio.h>        // getch()
#include <stdio.h>        // getch()
#include <time.h>
#include <stdlib.h>
#include <conio.c>        // textcolor()
#include <windows.h>      // MessageBeep()

void asterisques() {
textcolor(1);
cout<<"                  ********************************************\n";
textcolor(7);
}

int main (){
do {
system("cls");
asterisques();
textcolor(2);
cout<<"                       CISEAUX - PIERRE - FEUILLE - PUITS\n";
asterisques();
int i;
i=0;
do {
i++;
    }
while ( i<10000000 );
int joueur, machine, vainqueur;
int g[4][4]={{0,-1,1,-1},{1,0,-1,-1},{-1,1,0,1},{1,1,-1,0}};
char _1[8]="Ciseaux", _2[7]="Pierre", _3[8]="Feuille";
char _4[6]="Puits", CHOIX[13+8]="Ton choix : ", CHOIX2[25+8]="Choix de l'ordinateur : ";
char blanc[31]="                              ";
 {
textcolor(6);
cout<<blanc<<"    "<<CHOIX<<"\n\n";
textcolor(7);
cout<<blanc<<"   1 ... "<<_1<<";\n";
cout<<blanc<<"   2 ... "<<_2<<";\n";
cout<<blanc<<"   3 ... "<<_3<<";\n";
cout<<blanc<<"   4 ... "<<_4<<".\n\n";
cout<<blanc<<"   ";
cin>>joueur;
if (joueur==1 || joueur==2 || joueur==3 || joueur==4) {}
else {
cout<<"\n"<<blanc<<"   Pauv' naz' !\n\n"<<blanc<<"        ";
getch();
getch();               // ben là y en fo 2 car 'cin' prcdt employé perturbe l'emploi du 'getch', alor gen é mi 2... ca se discute... C sur
return 0;
     }
  }
switch(joueur){
case 1:strcat(CHOIX,_1);break;
case 2:strcat(CHOIX,_2);break;
case 3:strcat(CHOIX,_3);break;
case 4:strcat(CHOIX,_4);break;
               }
   {
   time_t t;
   
   srand((unsigned) time(&t));
   machine = rand() % 4;
if ( machine==0 ) machine=4;
    }
      {
switch(machine){
case 1:strcat(CHOIX2,_1);break;
case 2:strcat(CHOIX2,_2);break;
case 3:strcat(CHOIX2,_3);break;
case 4:strcat(CHOIX2,_4);break;
                }
textcolor(6);
cout<<"\n\n"<<blanc<<CHOIX<<".";
textcolor(3);
cout<<"\n\n                  "<<CHOIX2<<".\n\n\n";
textcolor(7);

if (g[joueur-1][machine-1]==0) {textcolor(1);cout<<blanc<<"    Ex aequo !";}
if (g[joueur-1][machine-1]==1) {textcolor(2);cout<<blanc<<"      Gagn\202 !";MessageBeep( 0 );}
if (g[joueur-1][machine-1]==-1) {textcolor(4);cout<<blanc<<"      Perdu !";MessageBeep( -1 );}
joueur=0;                              // evite une boucle infini si, par exemple, une lettre est pressée en deuxième partie
textcolor(8);
cout<<"\n\n\n"<<"        Presse Ctrl+C pour sortir !!!     Sinon, Entr\202e pour continuer.\n"<<blanc<<"        ";
getch();
       }
}
while (1+1==2);
                    }

Conclusion :


C'est assez long, mais je pense l'avoir bien fignoler...
Le goto a été retiré et remplacé par une condition sure... 1+1=2 :-)
Sinon, qlqn saurait comment l'exécuter en plein écran sans l'éxécuter par command.com ??? ****
message d'erreur sous Dev-C++, ligne 74 :
warning: negative value `-1' passed as argument 1 of `MessageBeep(unsigned int)' ce qui permet de créer un bip aigû du à cette erreur, celle-ci est donc voulue !

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.