|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2008
Città: Mogliano Veneto
Messaggi: 21
|
[C++] Problema codice Morra Cinese
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... 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;
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2006
Città: Mantova
Messaggi: 468
|
for(int i=1; i<=13; i++)
__________________
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Ciao, non hai fatto nessun errore particolarmente grave
Semplicemente devi sostituire le condizioni del ciclo più esterno con: Codice:
for (int i=0; i<13; i++) { // gioca 13 volte a morra
...
}
Fai più attenzione alla formattazione del tuo codice; indentare e usare righe vuote con attenzione e secondo una tua convenzione ti permetterà di rileggere e trovare gli errori molto più rapidamente
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: May 2008
Città: Mogliano Veneto
Messaggi: 21
|
Perfetto un'altra cosa, se io volessi cambiare il colore di sfondo e del testo posso farlo? se si come? grazie ancora
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
Scrivi system('color e qui il colore del background e di fianco il colore del testo') pero' no a lettere ma per esempio ('color 3F').Non so se mi sono spiegato bene
__________________
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Dec 2008
Messaggi: 68
|
Ho trovato il numero/lettera e il suo valore
Codice:
0=nero a=verde limone 1=blu scuro b=azzurro 2=verde c=rosso 3=verde acqua d=fucsia 4=bordeaux e=giallo 5=viola f=bianco 6=verde oliva 7=grigio chiaro 8=grigio 9=blu
__________________
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: May 2008
Città: Mogliano Veneto
Messaggi: 21
|
grazie a tutti...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:13.



















