Aggiunto controllo per il pareggio

This commit is contained in:
Rnhmjoj 2012-12-20 17:45:26 +01:00
parent 924287f657
commit 293a8f37ce
2 changed files with 20 additions and 14 deletions

18
main.c
View File

@ -36,7 +36,7 @@ int main (){
tabella[i][k]=giocatore;
stampa();
/*Controlla se il giocatore ha vinto*/
if(controlla(1)){
if(controlla(1)||controlla(2)){
vittoria=1;
break;
}
@ -48,7 +48,7 @@ int main (){
}
while(!vittoria && mossa<M*M);
/*Stampa il risultato della partita, mette in pausa, rompe lo switch e ritorna al menu*/
if((!controlla(1))&&(!controlla(2))){
if(controlla(1)==-1){
printf(ROSSO " Pareggio.\n");
pausa();
}
@ -136,13 +136,13 @@ int main (){
stampa();
printf(ROSSO);
/*Stampa il risultato della partita, mette in pausa, rompe lo switch e ritorna al menu*/
if((!controlla(1) && !controlla(2)) && difficolta==1)
if(controlla(1)==-1 && difficolta==1)
printf(" Pareggio, potevi fare di meglio.\n\n");
else{
if((!controlla(1) && !controlla(2)) && difficolta==2)
if(controlla(1)==-1 && difficolta==2)
printf(" Pareggio, ci eri quasi, riprova...\n\n");
else{
if((!controlla(1) && !controlla(2)) && difficolta==3){
if(controlla(1)==-1 && difficolta==3){
if(!os)
printf(" Pareggio, ti %c andata gi%c bene...\n\n",138,133);
else
@ -161,18 +161,18 @@ int main (){
printf(" Lo sai... non puoi battere il minimax.\n\n");
}
}
if(giocatore==1 && difficolta==1)
if(controlla(1) && difficolta==1)
printf(" Bravo, hai battuto uno che mette crocette a caso!\n\n");
else{
if(giocatore==1 && difficolta==2){
if(controlla(1) && difficolta==2){
if(!os)
printf(" Bravo, non %c stato facile!\n\n",138);
else
printf(" Bravo, non è stato facile!\n\n");
}
else{
if(giocatore==1 && difficolta==3){
if(controlla(1) && difficolta==3){
printf(" Impossibile!! Non hai vinto!!!\n");
if(!os)
printf(" Sei vedi questo messaggio sicuramente c'%c qualcosa che non va.\n\n",138);
@ -240,7 +240,7 @@ int main (){
}
}
}while (scelta!=5);
}while(scelta!=5);
return 0;
}

16
tris.c
View File

@ -171,18 +171,24 @@ int controlla(int giocatore){
for(k=0;k<M;k++)
if((tabella[k][i]==giocatore&&tabella[k+1][i]==giocatore&&tabella[k+2][i]==giocatore)&&(k+2<M))
return 1;
}
return 0;
int piene=M*M;
for(i=0;i<M;i++)
for(k=0;k<M;k++)
if(!tabella[i][k])
piene--;
if(piene==M*M)
return -1;
else
return 0;
}
/*Minimax*/
int minimax(int giocatore, int profondita){
stampa();
if(controlla(2))
return INT_MAX;
if(mossa==M*M)
return 0;
if(controlla(1)==-1)
return INT_MIN;
int res,tmp;
if(giocatore==1){
res=1;