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

Soyez le premier à donner votre avis sur cette source.

Vue 7 737 fois - Téléchargée 311 fois

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

Ajouter un commentaire

Commentaires


salut j'ai juste un truc a dire, comment peut on proposer une merde comme celle-ci ton programme est farci d'erreur... je fout donc 1 etoile et crois moi c'est vraiment pour t inciter a faire mieux la prochaine fois car proposer un truc comme ca c'est vraiment pas top vu que le travail n'est pas fini... teste tes programmes avant de les proposer aux autres... sinon de l'idee est sympa mais pour un nouveau que veut apprendre, avec ton programme l ne pissera pas loin a moins d'avoir deja de notions en C sinon il nagera...
Messages postés
18
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
11 juillet 2005

Pour enlever cette erreur, il suffit que tu remplaces "iostream.h" par "iostream" et, ensuite, en dessous tu tapes : "using namespace std;"
Voilà ! :)
Messages postés
20
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
20 mars 2006

Bonjour, c'est une vieille source et je suis super debutant.
Je suis sous "dev c++ 4.9.8.0" et lorsque je compile ce code il s'arrête sur la ligne 31 de iostream.h:

31 C:\Dev-Cpp\include\c++\backward\iostream.h
In file included from C:/Dev-Cpp/include/c++/backward/iostream.h

Il y a encore plusieurs erreurs mais bon, une à la fois.
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

salut,

effectivement en C++ suspendre la ligne // #define getch getchar pose des problemes ça ne marche qu'en C.

cmarsc ;-)
Messages postés
6
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
18 mai 2002

modifier cette ligne dans conio.h induit plusieurs erreur dans conio.c utilisé pour textcolor... donc, pas terrible... ca m'apprendra à mettre de la couleur...
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.