#include "tris.h" int main (){ int vittoria; int difficolta; tastierino=1; a='a'; do{ giocatore=1,vittoria=0; scelta=0,difficolta=0,mossa=0; /*Menu d'inizio*/ system(clear); printf(SOTTOLINEATO GIALLO"\n Tris in stile C \n\n" RESET BIANCO); printf(ROSSO" [1]"RESET BIANCO" Partita con 2 giocatori\n"); printf(ROSSO" [2]"RESET BIANCO" Partita singolo giocatore\n"); if(!os) printf(ROSSO" [3]"RESET BIANCO" Modalit%c di input\n",133); else printf(ROSSO" [3]"RESET BIANCO" Modalità di input \n"); printf(ROSSO" [4]"RESET BIANCO" Informazioni\n"); printf(ROSSO" [5]"RESET BIANCO" Esci\n"); scanf("\n%d",&scelta); switch(scelta){ /*case per la partita con 2 giocatori*/ case 1:{ /*Vuota la tabella, pulisce lo schermo e la stampa*/ vuota(); system(clear); stampa(); /*ciclo che contiene la partita. Dura fino alla vittoria*/ do{ /*Legge la mossa del giocatore*/ leggimossa(); system(clear); /*Conteggio delle mosse, assegnazione del simbolo alle coordinate scelte e stampa della tabella*/ mossa++; tabella[i][k]=giocatore; stampa(); /*Controlla se il giocatore ha vinto*/ if(controlla(1)){ vittoria=1; break; } /*cambia il turno del giocatore*/ if(giocatore==1) giocatore=2; else giocatore=1; } 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))){ printf(ROSSO " Pareggio.\n"); pausa(); } else{ printf(ROSSO " Partita terminata.\n Ha vinto il giocatore %d.\n\n",giocatore); pausa(); } break; } /*Case che contiene la partita singolo giocatore*/ case 2:{ vuota(); /*ciclo per scegliere la difficolta del gioco*/ system(clear); do{ if(!os) printf(SOTTOLINEATO GIALLO"\n Scegli la difficolt%c:\n\n"RESET BIANCO ,133); else printf(SOTTOLINEATO GIALLO"\n Scegli la difficoltà: \n\n" RESET BIANCO); printf(ROSSO" [1]"RESET BIANCO" Facile\n"); printf(ROSSO" [2]"RESET BIANCO" Medio\n"); printf(ROSSO" [3]"RESET BIANCO" Difficile\n"); getchar(); scanf("%d",&difficolta); if(difficolta<1||difficolta>3){ printf(GRASSETTO ROSSO"\n Scelta non valida.\n\n" RESET BIANCO); aspetta(2); } }while(difficolta<1||difficolta>3); system(clear); stampa(); /*Ciclo che contiene la partita fino alla vittoria o al pareggio*/ do{ /*Turno del giocatore umano*/ if(giocatore==1){ leggimossa(); tabella[i][k]=1; system(clear); stampa(); aspetta(1); } /*Turno del computer*/ else{ system(clear); printf(ROSSO"\n Gioco io ora...\n" RESET BIANCO); spinner(1); /*switch che contiene la mossa del computer in base alla difficolta scelta*/ switch(difficolta){ case 1:{ facile(); break; } case 2:{ medio(); break; } case 3:{ difficile(); break; } } printf( ROSSO "\n Ok, ho scelto.\n" RESET BIANCO); stampa(); aspetta(1); system(clear); } /*Conteggio delle mosse, assegnazione del simbolo alle coordinate scelte e stampa della tabella*/ mossa++; stampa(); /*Controlla se qualcuno ha vinto*/ if(controlla(1)||controlla(2)){ vittoria=1; break; } /*Cambia il turno del giocatore*/ if(giocatore==1) giocatore=2; else giocatore=1; } while(!vittoria && mossa<M*M); system(clear); 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) printf(" Pareggio, potevi fare di meglio.\n\n"); else{ if((!controlla(1) && !controlla(2)) && difficolta==2) printf(" Pareggio, ci eri quasi, riprova...\n\n"); else{ if((!controlla(1) && !controlla(2)) && difficolta==3){ if(!os) printf(" Pareggio, ti %c andata gi%c bene...\n\n",138,133); else printf(" Pareggio, ti è andata già bene...\n\n"); } } } if(controlla(2) && difficolta==1) printf(" Hai perso. Ti sei fatto battere da delle mosse pseudocasuali, complimenti.\n\n"); else { if(controlla(2) && difficolta==2) printf(" Hai perso. Dai... lo potevi battere.\n\n"); else{ if(controlla(2) && difficolta==3) printf(" Lo sai... non puoi battere il minimax.\n\n"); } } if(giocatore==1 && difficolta==1) printf(" Bravo, hai battuto uno che mette crocette a caso!\n\n"); else{ if(giocatore==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){ printf(" Impossibile!! Non hai vinto!!!\n"); if(!os) printf(" Sei vedi questo messaggio sicuramente c'%c qualcosa che non va.\n\n",138); else printf(" Sei vedi questo messaggio sicuramente c'è qualcosa che non va.\n\n"); } } } pausa(); break; } case 3:{ /*Case per la scelta delle modalità di input*/ system(clear); do{ system(clear); printf("\n Vuoi usare il tastierino numerico o le coordinate"ROSSO"[T,C]"RESET BIANCO"?\n"); getchar(); scanf("\n%c",&a); }while(a!='T' && a!='C' && a!='t' && a!='c'); if(a=='T'||a=='t') tastierino=1; else tastierino=0; if(tastierino==1){ system(clear); printf(SOTTOLINEATO GIALLO"\n Istruzioni per giocare: \n\n" RESET BIANCO); printf(ROSSO"\n *"RESET BIANCO" Usa il tastierino come se fosse la tabella del tris.\n"); if (!os) printf(ROSSO" *"RESET BIANCO" Ad esempio il tasto 5 %c il centro.\n",138); else printf(ROSSO" *"RESET BIANCO" Ad esempio il tasto 5 è il centro.\n"); printf(ROSSO" *"RESET BIANCO" Divertiti.\n\n"); } else{ system(clear); printf(SOTTOLINEATO GIALLO"\n Istruzioni per giocare: \n\n" RESET BIANCO); if(!os) printf(ROSSO" * "RESET BIANCO"Il tris %c contenuto in una tabella numerica:\n",138); else printf(ROSSO" * "RESET BIANCO"Il tris è contenuto in una tabella numerica:\n"); printf(" Le coordinata della mosssa vanno in indicate con: x,y.\n"); printf(" x sono le righe e y le colonne.\n\n"); printf(ROSSO" * "RESET BIANCO"Ricordati che stai parlando di un'array: quindi si conta da 0:\n"); if(!os) printf(" la casella nella 1%c riga nella 1%c colonna ha quindi coordinate 0,0.\n\n",248,248); else printf(" la casella nella 1° riga nella 1° colonna ha quindi coordinate 0,0.\n\n"); printf(ROSSO" * "RESET BIANCO"Divertiti.\n\n"); } pausa(); break; } case 4:{ /*About*/ system(clear); printf(SOTTOLINEATO GIALLO"\n Tris in stile C \n\n" RESET BIANCO); if (!os) printf("\n Questo gioco %c stato sviluppato da Michele Guerini Rocco in una fredda notte \n di premiazioni e sistemato per l'intero anno successivo.\n\n",138); else printf("\n Questo gioco è stato sviluppato da Michele Guerini Rocco in una fredda notte \n di premiazioni e sistemato per l'intero anno successivo.\n\n"); pausa(); break; } } }while (scelta!=5); return 0; }