Jeu de banco

Résolu
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 28 avril 2006 à 21:58
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 3 oct. 2006 à 17:55
Je souhaitait faire un jeu qui permette de jouer au banco(jeu de la francaise des jeux) et lorsque je le compile et que j'y joue je gagne toujours 1 ou 2 euros mais ne repart jamais sans rien  , d'où peut venir le probleme?

Est-ce que ca peut venir de : "int ticket((rand()%180000)+1);" ?

Mon code (c++) :

#include
#include <cstdlib>
#include
#include <vector>

using namespace std;


int getint() {
for(;;) {
int valeur;
cin >> valeur;
if(cin.fail()) {
cin.clear();
string inutile;
getline(cin,inutile);
cout <<"\nCe n'etait pas un nombre entier, essayez encore.\n";
} else { return valeur;
}
}
}


void jeubanco(playpen & jeu) {
int ticket((rand()%180000)+1);
int categorie;
if(ticket<22176) categorie=1;
else {
if(ticket<36176) categorie=2;
else {
if(ticket<40876) categorie=3;
else {
if(ticket<41351) categorie=4;
else {
if(ticket<41631) categorie=5;
else {
if(ticket<41634) categorie=6;
else {
if(ticket<41638) categorie=7;
else categorie=0;
}}}}}}
Wait(2000);
if(categorie==0) {
cout <<"\n\nVous n'avez rien gagne.";
}
if(categorie==1) {
cout <<"\n\nVous avez gagne 1 euro.";
}
if(categorie==2) {
cout <<"\n\nVous avez gagne 2 euros.";
}
if(categorie==3) {
cout <<"\n\nVous avez gagne 5 euros.";
}
if(categorie==4) {
cout <<"\n\nVous avez gagne 15 euros.";
}
if(categorie==5) {
cout <<"\n\nVous avez gagne 100 euros.";
}
if(categorie==6) {
cout <<"\n\nVous avez gagne 200 euros.";
}
if(categorie==7) {
cout <<"\n\nVous avez gagne 1000 euros.";
}
}


int main() {
srand((unsigned) time(NULL));
for(int choix(0);choix!=2;) {
cout <<"\n\n\nBanco et Morpion";
cout <<"\n\n1 - Jouer au Banco";
cout <<"\n--------------";
cout <<"\n2 - Quitter";
cout <<"\n\nVotre choix : ";
choix=getint();
if(choix==1) jeubanco(jeu);
}
}

Merci

3 réponses

ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
3 oct. 2006 à 17:55
Salut,

j'ai trouvé la réponse :
j'ai coupé int ticket((rand()%180000)+1); en deux bouts puis je l'ai rassemblé en un!

Explications :
int ticket_prov1((rand()%180)+1);
int ticket_prov2((rand()%1000)+1);
int ticket(ticket_prov1*1000+ticket_prov2);

A+

Nico
3
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 avril 2006 à 00:49
Remplace ca:

if(ticket<22176) categorie=1;

else {

if(ticket<36176) categorie=2;

else {

if(ticket<40876) categorie=3;

else {

if(ticket<41351) categorie=4;

else {

if(ticket<41631) categorie=5;

else {

if(ticket<41634) categorie=6;

else {

if(ticket<41638) categorie=7;

else categorie=0;


par ca:

if(ticket<22176) categorie=1;


else if(ticket<36176) categorie=2;


else if(ticket<40876) categorie=3;


else if(ticket<41351) categorie=4;


else if(ticket<41631) categorie=5;


else if(ticket<41634) categorie=6;


else if(ticket<41638) categorie=7;


else categorie=0;


Deja on lit mieux. Ensuite remplace ca:

if(categorie==0) {

cout <<"\n\nVous n'avez rien gagne.";

}

if(categorie==1) {

cout <<"\n\nVous avez gagne 1 euro.";

}

if(categorie==2) {

cout <<"\n\nVous avez gagne 2 euros.";

}

if(categorie==3) {

cout <<"\n\nVous avez gagne 5 euros.";

}

if(categorie==4) {

cout <<"\n\nVous avez gagne 15 euros.";

}

if(categorie==5) {

cout <<"\n\nVous avez gagne 100 euros.";

}

if(categorie==6) {

cout <<"\n\nVous avez gagne 200 euros.";

}

if(categorie==7) {

cout <<"\n\nVous avez gagne 1000 euros.";

}


Par ca:


switch(categorie)

{

    case 0: // <= deux points

        cout <<"\n\nVous n'avez rien gagne.";

    break;

    case 1:

        cout <<"\n\nVous avez gagne 1 euro.";

    break;

    case 2:

        cout <<"\n\nVous avez gagne 2 euros.";

    break;

    case 3:

        cout <<"\n\nVous avez gagne 5 euros.";

    break;

    case 4:

        cout <<"\n\nVous avez gagne 15 euros.";

    break;

    case 5:

        cout <<"\n\nVous avez gagne 100 euros.";

    break;

    case 6:

        cout <<"\n\nVous avez gagne 200 euros.";

    break;

    default:

        cout <<"\n\nVous avez gagne 1000 euros.";

    break;

}


Sinon pour ta question, je vois pas trop. Faudrait que tu regardes quels sont les valeurs que ticket prend.
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 avril 2006 à 00:50
Le defaut: dans le switch est à virer la.
0
Rejoignez-nous