27/09/09 12:28
trenta3
Ho scritto il codice qui sotto per il gioco del tris, il problema è che non funziona:
a volte il computer non mette la crocetta.
Mi manca solo questo per finire il gioco.
Vi prego aiutatemi.
Ecco il codice:
Grazie a chiunque mi risponderà
a volte il computer non mette la crocetta.
Mi manca solo questo per finire il gioco.
Vi prego aiutatemi.
Ecco il codice:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> //------------------------------- char Griglia[10]; int vincita=0; //------------------------------- void DisegnaGriglia(); void Clear(); void PulisciGriglia(); void MossaComputer(); void MossaGiocatore(); int TestaVincita(); int TestaPericolo(); //------------------------------- int main(int argc, char *argv[]){ char t; srand(time(NULL)); inizio: Clear(); PulisciGriglia(); DisegnaGriglia(); while(vincita==0){ if(Griglia[0]==0) {MossaComputer();Griglia[0]=1;} if(Griglia[0]==1) {MossaGiocatore();Griglia[0]=0;} Clear(); DisegnaGriglia(); vincita = TestaVincita(); } if (vincita==1){ printf("\nHai perso!\n"); getch(); } if (vincita==2){ printf("\nHai vinto!\n"); getch(); } if (vincita==3){ printf("\nPareggio!\n"); getch(); } return 0; } void DisegnaGriglia(){ printf("\n.---.---.---.\n| %c | %c | %c |\n|---|---|---|\n| %c | %c | %c |\n|---|---|---|\n| %c | %c | %c |\n\'---\'---\'---\'", Griglia[1],Griglia[2],Griglia[3],Griglia[4],Griglia[5],Griglia[6],Griglia[7],Griglia[8],Griglia[9]); return; } void Clear(){ system("cls"); return; } void PulisciGriglia(){ Griglia[1]='a'; Griglia[2]='b'; Griglia[3]='c'; Griglia[4]='d'; Griglia[5]='e'; Griglia[6]='f'; Griglia[7]='g'; Griglia[8]='h'; Griglia[9]='i'; Griglia[0]=rand()%2; return; } void MossaComputer(){ srand(time(NULL)); int caselle; int num; int per; per = TestaPericolo(); if (per==0){ if (Griglia[1]=='a') caselle+=1; if (Griglia[2]=='b') caselle+=1; if (Griglia[3]=='c') caselle+=1; if (Griglia[4]=='d') caselle+=1; if (Griglia[5]=='e') caselle+=1; if (Griglia[6]=='f') caselle+=1; if (Griglia[7]=='g') caselle+=1; if (Griglia[8]=='h') caselle+=1; if (Griglia[9]=='i') caselle+=1; num = (rand()%caselle)+1; caselle=0; if (Griglia[1]=='a') caselle+=1; if (num==caselle) Griglia[num]='x'; if (Griglia[2]=='b') caselle+=1; if (num==caselle) Griglia[num]='x'; if (Griglia[3]=='c') caselle+=1; if (num==caselle) Griglia[num]='x'; if (Griglia[4]=='d') caselle+=1; if (num==caselle) Griglia[num]='x'; if (Griglia[5]=='e') caselle+=1; if (num==caselle) Griglia[num]='x'; if (Griglia[6]=='f') caselle+=1; if (num==caselle) Griglia[num]='x'; if (Griglia[7]=='g') caselle+=1; if (num==caselle) Griglia[num]='x'; if (Griglia[8]=='h') caselle+=1; if (num==caselle) Griglia[num]='x'; if (Griglia[9]=='i') caselle+=1; if (num==caselle) Griglia[num]='x'; }else{ scie: if (Griglia[per]=='o') {per=((per+1)%9); if (per==0) per=1; goto scie;}else{ Griglia[per]='x';} } return; } void MossaGiocatore(){ char key; for(;;){ if (_kbhit()){ key = getch(); if (key=='a' || key=='A') { if (Griglia[1]=='a') Griglia[1]='o'; } if (key=='b' || key=='B') { if (Griglia[2]=='b') Griglia[2]='o'; } if (key=='c' || key=='C') { if (Griglia[3]=='c') Griglia[3]='o'; } if (key=='d' || key=='D') { if (Griglia[4]=='d') Griglia[4]='o'; } if (key=='e' || key=='E') { if (Griglia[5]=='e') Griglia[5]='o'; } if (key=='f' || key=='F') { if (Griglia[6]=='f') Griglia[6]='o'; } if (key=='g' || key=='G') { if (Griglia[7]=='g') Griglia[7]='o'; } if (key=='h' || key=='H') { if (Griglia[8]=='h') Griglia[8]='o'; } if (key=='i' || key=='I') { if (Griglia[9]=='i') Griglia[9]='o'; } return; } _sleep(1); }//for(;;) return; } int TestaPericolo(){ if (Griglia[1]=='o' && Griglia[2]=='o') return 3; if (Griglia[2]=='o' && Griglia[3]=='o') return 1; if (Griglia[3]=='o' && Griglia[1]=='o') return 2; if (Griglia[4]=='o' && Griglia[5]=='o') return 6; if (Griglia[4]=='o' && Griglia[6]=='o') return 5; if (Griglia[5]=='o' && Griglia[6]=='o') return 4; if (Griglia[7]=='o' && Griglia[8]=='o') return 9; if (Griglia[8]=='o' && Griglia[9]=='o') return 7; if (Griglia[9]=='o' && Griglia[7]=='o') return 8; if (Griglia[1]=='o' && Griglia[4]=='o') return 7; if (Griglia[1]=='o' && Griglia[7]=='o') return 4; if (Griglia[7]=='o' && Griglia[4]=='o') return 1; if (Griglia[2]=='o' && Griglia[5]=='o') return 8; if (Griglia[5]=='o' && Griglia[8]=='o') return 2; if (Griglia[8]=='o' && Griglia[2]=='o') return 5; if (Griglia[3]=='o' && Griglia[6]=='o') return 9; if (Griglia[6]=='o' && Griglia[9]=='o') return 3; if (Griglia[9]=='o' && Griglia[3]=='o') return 6; if (Griglia[1]=='o' && Griglia[5]=='o') return 9; if (Griglia[5]=='o' && Griglia[9]=='o') return 1; if (Griglia[9]=='o' && Griglia[1]=='o') return 5; if (Griglia[3]=='o' && Griglia[5]=='o') return 7; if (Griglia[5]=='o' && Griglia[7]=='o') return 3; if (Griglia[7]=='o' && Griglia[3]=='o') return 5; //=============================================\ if (Griglia[1]=='x' && Griglia[2]=='x') return 3; if (Griglia[2]=='x' && Griglia[3]=='x') return 1; if (Griglia[3]=='x' && Griglia[1]=='x') return 2; if (Griglia[4]=='x' && Griglia[5]=='x') return 6; if (Griglia[4]=='x' && Griglia[6]=='x') return 5; if (Griglia[5]=='x' && Griglia[6]=='x') return 4; if (Griglia[7]=='x' && Griglia[8]=='x') return 9; if (Griglia[8]=='x' && Griglia[9]=='x') return 7; if (Griglia[9]=='x' && Griglia[7]=='x') return 8; if (Griglia[1]=='x' && Griglia[4]=='x') return 7; if (Griglia[1]=='x' && Griglia[7]=='x') return 4; if (Griglia[7]=='x' && Griglia[4]=='x') return 1; if (Griglia[2]=='x' && Griglia[5]=='x') return 8; if (Griglia[5]=='x' && Griglia[8]=='x') return 2; if (Griglia[8]=='x' && Griglia[2]=='x') return 5; if (Griglia[3]=='x' && Griglia[6]=='x') return 9; if (Griglia[6]=='x' && Griglia[9]=='x') return 3; if (Griglia[9]=='x' && Griglia[3]=='x') return 6; if (Griglia[1]=='x' && Griglia[5]=='x') return 9; if (Griglia[5]=='x' && Griglia[9]=='x') return 1; if (Griglia[9]=='x' && Griglia[1]=='x') return 5; if (Griglia[3]=='x' && Griglia[5]=='x') return 7; if (Griglia[5]=='x' && Griglia[7]=='x') return 3; if (Griglia[7]=='x' && Griglia[3]=='x') return 5; return 0; } int TestaVincita(){ if (Griglia[1]=='o' && Griglia[2]=='o' && Griglia[3]=='o') return 2; if (Griglia[4]=='o' && Griglia[5]=='o' && Griglia[6]=='o') return 2; if (Griglia[7]=='o' && Griglia[8]=='o' && Griglia[9]=='o') return 2; if (Griglia[1]=='o' && Griglia[4]=='o' && Griglia[7]=='o') return 2; if (Griglia[2]=='o' && Griglia[5]=='o' && Griglia[8]=='o') return 2; if (Griglia[3]=='o' && Griglia[6]=='o' && Griglia[9]=='o') return 2; if (Griglia[1]=='o' && Griglia[5]=='o' && Griglia[9]=='o') return 2; if (Griglia[3]=='o' && Griglia[5]=='o' && Griglia[7]=='o') return 2; if (Griglia[1]=='x' && Griglia[2]=='x' && Griglia[3]=='x') return 1; if (Griglia[4]=='x' && Griglia[5]=='x' && Griglia[6]=='x') return 1; if (Griglia[7]=='x' && Griglia[8]=='x' && Griglia[9]=='x') return 1; if (Griglia[1]=='x' && Griglia[4]=='x' && Griglia[7]=='x') return 1; if (Griglia[2]=='x' && Griglia[5]=='x' && Griglia[8]=='x') return 1; if (Griglia[3]=='x' && Griglia[6]=='x' && Griglia[9]=='x') return 1; if (Griglia[1]=='x' && Griglia[5]=='x' && Griglia[9]=='x') return 1; if (Griglia[3]=='x' && Griglia[5]=='x' && Griglia[7]=='x') return 1; if (Griglia[1]!='a' && Griglia[2]!='b' && Griglia[3]!='c' && Griglia[4]!='d' && Griglia[5]!='e' && Griglia[6]!='f' && Griglia[7]!='g' && Griglia[8]!='h' && Griglia[9]!='i') return 3; return 0; }
Grazie a chiunque mi risponderà
aaa