Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //MORRA CINESE - By Luca Missaglia
- #include <conio.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <windows.h>
- //1=sasso 2=carta 3=forbice;
- void printRegole()
- {
- system("cls");
- printf("\nLe regole sono semplici:\n\n- Il sasso batte la forbice\n- La forbice batte la carta\n- La carta batte il sasso\n\n");
- printf("Ogni turno dovrai inserire la tua scelta tra sasso, carta oppure forbice.\nNon inserire scelte in maiuscolo altrimenti ");
- printf("il programma non funzionera'.\nSe per caso sbagli a digitare non ti preoccupare, il programma ti chiedera'\n");
- printf("di inserire di nuovo la tua scelta.\nIl programma rilevera' e annuncera' l'esito di ogni turno, che sia tu o\nil BOT a vincere.\n");
- printf("Nel primo caso incrementera' il tuo punteggio, nel secondo quello del BOT.\nChiunque raggiunga i 3 punti per primo vince il match.\n");
- printf("Ricorda: dopo che il programma rileva il risultato del turno \ndovrai premere un tasto qualunque per poter passare al successivo.\n");
- printf("Spero che ti diverta a sfidare il mio BOT :)\n\n\nLuca\n\nPremi qualsiasi tasto per continuare");
- getch();
- return;
- }
- int main()
- {
- SetConsoleTitle("Morra Cinese v1.0 - by Luca Missaglia");
- int sceltaBOT,sceltaBOT_old,tuascelta,i=0;
- char regole,replay,tuascelta_s[10],nome[20];
- for(i=0;i<20;i++) //inizializza l'array nome
- nome[i]=' ';
- printf(" - Morra Cinese -\n");
- printf(" by Luca Missaglia\n\n\n");
- printf("Inserisci il tuo nome: ");
- scanf("%s",&nome);
- do{
- printf("\nMolto bene %s. Vorresti leggere come giocare? s/n (raccomandato)\n",nome);
- fflush(stdin);
- scanf("%c",®ole);
- }while(regole!='s' && regole!='S' && regole!='n' && regole!='N');
- if(regole=='s' || regole=='S')
- printRegole();
- do{
- for(i=0;i<10;i++) //inizializza l'array tuascelta_s
- tuascelta_s[i]=' ';
- int vinciteBOT=0,tuevincite=0;
- srand(time(NULL)); //randomizza la prima scelta del bot
- sceltaBOT=rand()%3+1; //tra 1, 2 o 3
- do{
- int cont=0;
- system("cls");
- printf("BOT: %d %s: %d\n\n\n",vinciteBOT,nome,tuevincite);
- do{
- printf("\nInserisci la tua mano: ");
- scanf("%s",& tuascelta_s);
- }while(strcmp(tuascelta_s,"sasso")!=0 && strcmp(tuascelta_s,"carta")!=0 && strcmp(tuascelta_s,"forbice")!=0);
- if(strcmp(tuascelta_s,"sasso")==0) //converte la scelta (stringa) in formato int
- tuascelta=1;
- if(strcmp(tuascelta_s,"carta")==0)
- tuascelta=2;
- if(strcmp(tuascelta_s,"forbice")==0)
- tuascelta=3;
- if(tuascelta==sceltaBOT_old) //se la tua scelta รจ uguale a quella che il BOT ha appena
- { //effettuato, la prossima scelta del BOT sara' randomizzata
- srand(time(NULL));
- sceltaBOT=rand()%3+1;
- }
- switch(sceltaBOT) //stampa su STO la mano del BOT
- {
- case 1: printf("La mia mano e': sasso\n");
- break;
- case 2: printf("La mia mano e': carta\n");
- break;
- case 3: printf("La mia mano e': forbice\n");
- break;
- default:
- break;
- }
- if((sceltaBOT==1 && tuascelta==2) || (sceltaBOT==2 && tuascelta==3) || (sceltaBOT==3 && tuascelta==1)){ //se hai vinto incrementa le tue vincite
- printf("\nHAI VINTO!\n");
- tuevincite++;
- cont=1;
- }
- if((sceltaBOT==1 && tuascelta==3) || (sceltaBOT==3 && tuascelta==2) || (sceltaBOT==2 && tuascelta==1)) //se perdi incrementa le vincite del BOT
- {
- printf("\nHAI PERSO!\n");
- vinciteBOT++;
- cont=-1;
- }
- if(sceltaBOT==tuascelta) //se si pareggia non succede nulla
- printf("\nPAREGGIO!\n");
- sceltaBOT_old=sceltaBOT;
- switch(cont)
- {
- case 1: if(sceltaBOT==1 && tuascelta==2) //se hai vinto, la prossima scelta del BOT sara' cio' che non e' uscito
- sceltaBOT=3;
- if(sceltaBOT==2 && tuascelta==3)
- sceltaBOT=1;
- if(sceltaBOT==3 && tuascelta==1)
- sceltaBOT=2;
- break;
- case -1: sceltaBOT=tuascelta; //se hai perso il BOT utilizzera' la scelta che hai appena effettuato
- break;
- default: srand(time(NULL)); //se si ha pareggiato il BOT randomizza la sua scelta
- sceltaBOT=rand()%3+1; //altrimenti la sua prossima scelta sara' identica a quella che ha appena mostrato (BUG FIXED)
- break;
- }
- getch();
- }while(vinciteBOT<3 && tuevincite<3); //ripete tutto fino a che qualcuno non arriva a 3 punti
- system("cls");
- printf("BOT: %d %s: %d\n\n\n",vinciteBOT,nome,tuevincite);
- if(tuevincite==3)
- printf("Congratulazioni! Hai vinto contro il mio BOT ^_^\n");
- if(vinciteBOT==3)
- printf("Hai perso ma non ti preoccupare! La prossima volta farai di meglio ^_^\n");
- printf("Grazie per aver giocato, %s :)\n\n\n",nome);
- do{
- printf("Vorresti giocare di nuovo? s/n\n",nome); //Se utente preme s allora si ricomincia altrimenti si chiude il pgm
- fflush(stdin);
- scanf("%c",& replay);
- }while(replay=='s' && replay=='S');
- }while(replay=='s' || replay=='S');
- printf("Premi un qualsiasi tasto per uscire\n");
- getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement