1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#include <iostream>//gestion des flux d'entree/sorties standards
#include <stdexcept>//on va utiliser les exception STL par facilité ;)
//normalement, aucun parametre n'est necessaire lors de l'appel, mais bon, c'est plus "portable" ;)
int main(int argc, char *argv)
{
int choix //un entier pour notre switch ;)
srand(time(NULL));//initialisation du generateur aleatoire
// la boucle doit etre effectuée au minimum une fois
// la boucle do...while est géniale pour cela.
do
{
cout << "Voici le jeux du pierre-feuille-ciseaux.\n 1 = pierre\n 2=feuille\n 3=ciseaux\n 4 pour quitter"
<< endl;
// si la récupération du choix de l'utilisateur échoue, c'est qu'il est distrait
// raison de l'utilisation de try... catch(...)
try
{
//sécurisons un peu le choix de l'utilisateur
if(!(cin>>choix))
throw std::invalid_argument("mauvaise entree");
//grace au code ci-dessus, on passera dans le catch() si l'utilisateur introduit
//autre chose qu'une variable numérique
switch (choix)
{
case 4:
//l'utilisateur a choisi de sortir, on ne fait rien
break;
case 1:
//l'utilisateur a choisi pierre
pierre();
break;
case 2:
//l'utilisateur a choisi papier
papier();
break;
case 3:
//l'utilisateur a choisi ciseaux
ciseaux();
break;
default:
//l'utilisateur a bien introduit une valeur numérique, mais non prise en compte
//on n'est pas content, et on le lui dit
cout<<"veuillez limiter votre choix à 1, 2, 3 ou 4"<<endl;
}
}
catch(...)
{
//toutes les exceptions seront récupérées ici
//la conversion a échoué: on demande à l'utilisateur de choisir 1, 2, 3 ou 4
cout<<"Veuillez limiter votre choix à 1, 2, 3, ou 4"<<std::endl;
}
}while(tempo!="4");
//si on sort de la boucle, on quitte l'application, on renvoi 0 qui est le signe que tout s'est bien passé
return 0;
}
//je passe les fonctions pierre, papier et ciseaux |
Partager