rewuo
13-04-2009, 13:39
Duque l'altro giorno ho provato a creare tramite c++ un'eseguibile per poter giocare a morra cinese contro il mio pc ma ho avuto un po' di poblemi in quanto ho impostato il tutto in modo da fare 13 manches e con un paio di contatori faccio in modo che alla fine chi vince più manches vinca la partita, sembrava tutto a posto ma il programma si chiude da solo alla 12 manches, non so più che fare...sono fermo da una settimana...e non mi è venuta in mente nessuna soluzione...se molto gentilmente potete darmi una mano...
Vi posto qui sotto il codice...
/*
* morra.cpp
* morra
*
*
*/
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int youW=0;
int pcW=0;
unsigned you, pc; // variabili intere contenenti le opzioni scelte
you = 0;
unsigned seed= time(NULL);
srand(seed);
// presentazione del gioco e spiegazione delle regole
cout << "Salve, benvenuto nel gioco di Morra cinese anche detto Sasso, Carta, Forbice...\n\n";
cout << "Per giocare scegli un numero ricordando che: \n \t 1 = carta, \n\t 2 = forbice, \n\t 3= sasso \n";
cout << "Dopo che avrai scelto la tua carta toccherà a me giocare.\n Infine vedremo chi vince secondo le seguenti regole: \n\t Carta batte sasso \n\t Sasso batte forbice \n\t Forbice batte Carta\n\n Avanti giochiamo...\n";
cout << "Questo per tredici volte, alla fine chi avrà vinto più manches sarà il vincitore.\n";
for(int i=1; i<13; i++){ // gioca 13 volte a morra
while((you>3)||(you <=0)){
cout << "Scegli la tua carta... ";
cin >> you; // il giocatore sceglie la sua carta
}
if(you == 1) cout << "Hai scelto di buttare carta carta\n\n";
else if(you == 2) cout << "Hai scelto di buttare forbice\n\n";
else if(you == 3) cout << "Hai scelto di buttare sasso\n\n";
pc=rand()%3+1; // pc gioca la sua, genera un numero fra 1 e 3
cout << "Ora gioco io...\n\n" << "Io butto ";
if (pc==1) cout << "Carta\n";
if (pc==2) cout << "Forbice\n";
if (pc==3) cout << "Sasso\n";
if((you==1)&&(pc==1)){ cout << "Pareggio\n";
pcW=pcW+1;
youW=youW+1;
}
else if ((you==1)&&(pc==2)){ cout << "Ho vinto io! Forbice batte Carta\n";
pcW=pcW+1;
}
else if ((you==1)&&(pc==3)){ cout << "Hai vinto tu!! Carta batte Sasso\n";
youW=youW+1;
}
else if ((you==2)&&(pc==1)){ cout << "Ho vinto io! Forbice batte Carta\n";
pcW=pcW+1;
}
else if ((you==2)&&(pc==2)){ cout << "Pareggio\n";
pcW=pcW+1;
youW=youW+1;
}
else if ((you==2)&&(pc==3)){ cout << "Ho vinto io! Forbice batte Sasso\n";
pcW=pcW+1;
}
else if ((you==3)&&(pc==1)){ cout << "Ho vinto io! Carta Batte Sasso\n";
pcW=pcW+1;
}
else if ((you==3)&&(pc==2)){ cout << "Hai vinto tu!! Sasso batte Forbice\n";
youW=youW+1;
}
else if ((you==3)&&(pc==3)){ cout << "Pareggio \n";
pcW=pcW+1;
youW=youW+1;
}
you=0;
}
if (pcW>youW) cout << "Ho vinto io per " << pcW << " manches a " << youW << " manches.";
if (youW>pcW) cout << "Hai vinto tu per " << youW << " manches a " << pcW << " manches.";
if (pcW==youW) cout << "Abbiamo finito in pareggio, tutti e due con " << youW << "manches vinte.";
return 0;
}
Vi posto qui sotto il codice...
/*
* morra.cpp
* morra
*
*
*/
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int youW=0;
int pcW=0;
unsigned you, pc; // variabili intere contenenti le opzioni scelte
you = 0;
unsigned seed= time(NULL);
srand(seed);
// presentazione del gioco e spiegazione delle regole
cout << "Salve, benvenuto nel gioco di Morra cinese anche detto Sasso, Carta, Forbice...\n\n";
cout << "Per giocare scegli un numero ricordando che: \n \t 1 = carta, \n\t 2 = forbice, \n\t 3= sasso \n";
cout << "Dopo che avrai scelto la tua carta toccherà a me giocare.\n Infine vedremo chi vince secondo le seguenti regole: \n\t Carta batte sasso \n\t Sasso batte forbice \n\t Forbice batte Carta\n\n Avanti giochiamo...\n";
cout << "Questo per tredici volte, alla fine chi avrà vinto più manches sarà il vincitore.\n";
for(int i=1; i<13; i++){ // gioca 13 volte a morra
while((you>3)||(you <=0)){
cout << "Scegli la tua carta... ";
cin >> you; // il giocatore sceglie la sua carta
}
if(you == 1) cout << "Hai scelto di buttare carta carta\n\n";
else if(you == 2) cout << "Hai scelto di buttare forbice\n\n";
else if(you == 3) cout << "Hai scelto di buttare sasso\n\n";
pc=rand()%3+1; // pc gioca la sua, genera un numero fra 1 e 3
cout << "Ora gioco io...\n\n" << "Io butto ";
if (pc==1) cout << "Carta\n";
if (pc==2) cout << "Forbice\n";
if (pc==3) cout << "Sasso\n";
if((you==1)&&(pc==1)){ cout << "Pareggio\n";
pcW=pcW+1;
youW=youW+1;
}
else if ((you==1)&&(pc==2)){ cout << "Ho vinto io! Forbice batte Carta\n";
pcW=pcW+1;
}
else if ((you==1)&&(pc==3)){ cout << "Hai vinto tu!! Carta batte Sasso\n";
youW=youW+1;
}
else if ((you==2)&&(pc==1)){ cout << "Ho vinto io! Forbice batte Carta\n";
pcW=pcW+1;
}
else if ((you==2)&&(pc==2)){ cout << "Pareggio\n";
pcW=pcW+1;
youW=youW+1;
}
else if ((you==2)&&(pc==3)){ cout << "Ho vinto io! Forbice batte Sasso\n";
pcW=pcW+1;
}
else if ((you==3)&&(pc==1)){ cout << "Ho vinto io! Carta Batte Sasso\n";
pcW=pcW+1;
}
else if ((you==3)&&(pc==2)){ cout << "Hai vinto tu!! Sasso batte Forbice\n";
youW=youW+1;
}
else if ((you==3)&&(pc==3)){ cout << "Pareggio \n";
pcW=pcW+1;
youW=youW+1;
}
you=0;
}
if (pcW>youW) cout << "Ho vinto io per " << pcW << " manches a " << youW << " manches.";
if (youW>pcW) cout << "Hai vinto tu per " << youW << " manches a " << pcW << " manches.";
if (pcW==youW) cout << "Abbiamo finito in pareggio, tutti e due con " << youW << "manches vinte.";
return 0;
}