Modifiche varie
*Migliorato il metodo per centrare il testo *Reso il codice più leggibile
This commit is contained in:
parent
48d5ff12f5
commit
f516949334
194
main.c
194
main.c
@ -1,37 +1,46 @@
|
|||||||
#include "tris.h"
|
#include "tris.h"
|
||||||
|
|
||||||
int main (){
|
int main (){
|
||||||
int vittoria;
|
int vittoria;
|
||||||
int difficolta;
|
int difficolta;
|
||||||
tastierino=1;
|
tastierino = 1;
|
||||||
a='a';
|
a = 'a';
|
||||||
do{
|
do{
|
||||||
giocatore=1,vittoria=0;
|
giocatore=1,vittoria=0;
|
||||||
scelta=0,difficolta=0,mossa=0;
|
scelta=0, difficolta=0, mossa=0;
|
||||||
/*Menu d'inizio*/
|
|
||||||
|
/*Menu d'inizio*/
|
||||||
system(clear);
|
system(clear);
|
||||||
printf(SOTTOLINEATO GIALLO"\n Tris in stile C \n\n" RESET BIANCO);
|
printf("\n%-64s%-70s%s\n\n", SOTTOLINEATO GIALLO, "Tris in stile C", RESET BIANCO);
|
||||||
printf(ROSSO" [1]"RESET BIANCO" Partita con 2 giocatori\n");
|
printf("\n%-53s%s%s %s\n", ROSSO, "[1]", BIANCO, "Partita con 2 giocatori");
|
||||||
printf(ROSSO" [2]"RESET BIANCO" Partita singolo giocatore\n");
|
printf("\n%-53s%s%s %s\n", ROSSO, "[2]", BIANCO, "Partita singolo giocatore");
|
||||||
if(!os)
|
if(!os)
|
||||||
printf(ROSSO" [3]"RESET BIANCO" Modalit%c di input\n",133);
|
printf("\n%-53s%s%s %s%c %s\n", ROSSO, "[3]", BIANCO, "Modalit", 133, "di input");
|
||||||
else
|
else
|
||||||
printf(ROSSO" [3]"RESET BIANCO" Modalità di input \n");
|
printf("\n%-53s%s%s %s\n", ROSSO, "[3]", BIANCO, "Modalità di input");
|
||||||
printf(ROSSO" [4]"RESET BIANCO" Informazioni\n");
|
printf("\n%-53s%s%s %s\n", ROSSO, "[4]", BIANCO, "Informazioni");
|
||||||
printf(ROSSO" [5]"RESET BIANCO" Esci\n");
|
printf("\n%-53s%s%s %s\n", ROSSO, "[5]", BIANCO, "Esci");
|
||||||
scanf("\n%d",&scelta);
|
scanf("\n%d",&scelta);
|
||||||
switch(scelta){
|
switch(scelta){
|
||||||
|
|
||||||
/*case per la partita con 2 giocatori*/
|
/*case per la partita con 2 giocatori*/
|
||||||
case 1:{
|
case 1:{
|
||||||
|
|
||||||
/*Vuota la tabella, pulisce lo schermo e la stampa*/
|
/*Vuota la tabella, pulisce lo schermo e la stampa*/
|
||||||
vuota();
|
vuota();
|
||||||
system(clear);
|
system(clear);
|
||||||
stampa();
|
stampa();
|
||||||
|
|
||||||
/*ciclo che contiene la partita. Dura fino alla vittoria*/
|
/*ciclo che contiene la partita. Dura fino alla vittoria*/
|
||||||
do{
|
do{
|
||||||
/*Legge la mossa del giocatore*/
|
/*Legge la mossa del giocatore*/
|
||||||
leggimossa();
|
leggimossa();
|
||||||
system(clear);
|
system(clear);
|
||||||
/*Conteggio delle mosse, assegnazione del simbolo alle coordinate scelte e stampa della tabella*/
|
|
||||||
|
/* conteggio delle mosse,
|
||||||
|
* assegnazione del simbolo alle coordinate scelte,
|
||||||
|
* stampa della tabella,
|
||||||
|
*/
|
||||||
mossa++;
|
mossa++;
|
||||||
tabella[i][k]=giocatore;
|
tabella[i][k]=giocatore;
|
||||||
stampa();
|
stampa();
|
||||||
@ -47,56 +56,61 @@ int main (){
|
|||||||
giocatore=1;
|
giocatore=1;
|
||||||
}
|
}
|
||||||
while(!vittoria && mossa<M*M);
|
while(!vittoria && mossa<M*M);
|
||||||
/*Stampa il risultato della partita, mette in pausa, rompe lo switch e ritorna al menu*/
|
|
||||||
if(controlla(1)==-1){
|
/*Stampa il risultato della partita,
|
||||||
printf(ROSSO " Pareggio.\n");
|
* mette in pausa,
|
||||||
pausa();
|
* rompe lo switch,
|
||||||
}
|
* ritorna al menu
|
||||||
else{
|
*/
|
||||||
printf(ROSSO " Partita terminata.\n Ha vinto il giocatore %d.\n\n",giocatore);
|
if(controlla(1)==-1)
|
||||||
pausa();
|
printf("%-34s%s\n", ROSSO, "Pareggio.");
|
||||||
}
|
else
|
||||||
|
printf("%-26s%s\n%-20s %d.\n\n", ROSSO, "Partita terminata.", "Ha vinto il giocatore", giocatore);
|
||||||
|
pausa();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*Case che contiene la partita singolo giocatore*/
|
|
||||||
|
/*Case che contiene la partita singolo giocatore*/
|
||||||
case 2:{
|
case 2:{
|
||||||
vuota();
|
vuota();
|
||||||
|
|
||||||
/*ciclo per scegliere la difficolta del gioco*/
|
/*ciclo per scegliere la difficolta del gioco*/
|
||||||
system(clear);
|
do{
|
||||||
do{
|
system(clear);
|
||||||
|
|
||||||
if(!os)
|
if(!os)
|
||||||
printf(SOTTOLINEATO GIALLO"\n Scegli la difficolt%c:\n\n"RESET BIANCO ,133);
|
printf("\n%-60s%-75s%c%s:\n\n", SOTTOLINEATO GIALLO, "Scegli la difficolt", 133, RESET BIANCO);
|
||||||
else
|
else
|
||||||
printf(SOTTOLINEATO GIALLO"\n Scegli la difficoltà: \n\n" RESET BIANCO);
|
printf("\n%-60s%-75s%s\n\n", SOTTOLINEATO GIALLO, "Scegli la difficoltà:", RESET BIANCO);
|
||||||
printf(ROSSO" [1]"RESET BIANCO" Facile\n");
|
printf("%-60s%s%s %s\n", ROSSO, "[1]", BIANCO, "Facile");
|
||||||
printf(ROSSO" [2]"RESET BIANCO" Medio\n");
|
printf("%-60s%s%s %s\n", ROSSO, "[2]", BIANCO, "Medio");
|
||||||
printf(ROSSO" [3]"RESET BIANCO" Difficile\n");
|
printf("%-60s%s%s %s\n", ROSSO, "[3]", BIANCO, "Difficile");
|
||||||
getchar();
|
scanf("\n%d", &difficolta);
|
||||||
scanf("%d",&difficolta);
|
if(difficolta < 1 || difficolta > 3){
|
||||||
if(difficolta<1||difficolta>3){
|
printf("\n%-62s%s%s\n\n", GRASSETTO ROSSO, "Scelta non valida.", RESET BIANCO);
|
||||||
printf(GRASSETTO ROSSO"\n Scelta non valida.\n\n" RESET BIANCO);
|
|
||||||
aspetta(2);
|
aspetta(2);
|
||||||
|
|
||||||
}
|
}
|
||||||
}while(difficolta<1||difficolta>3);
|
}while(difficolta < 1 || difficolta > 3);
|
||||||
system(clear);
|
system(clear);
|
||||||
stampa();
|
stampa();
|
||||||
|
|
||||||
/*Ciclo che contiene la partita fino alla vittoria o al pareggio*/
|
/*Ciclo che contiene la partita fino alla vittoria o al pareggio*/
|
||||||
do{
|
do{
|
||||||
|
|
||||||
/*Turno del giocatore umano*/
|
/*Turno del giocatore umano*/
|
||||||
if(giocatore==1){
|
if(giocatore==1){
|
||||||
leggimossa();
|
leggimossa();
|
||||||
tabella[i][k]=1;
|
tabella[i][k]=1;
|
||||||
system(clear);
|
system(clear);
|
||||||
stampa();
|
stampa();
|
||||||
aspetta(1);
|
aspetta(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Turno del computer*/
|
/*Turno del computer*/
|
||||||
else{
|
else{
|
||||||
system(clear);
|
system(clear);
|
||||||
printf(ROSSO"\n Gioco io ora...\n" RESET BIANCO);
|
printf("\n%-60s%s%s\n", ROSSO, "Gioco io ora...", RESET BIANCO);
|
||||||
spinner(1);
|
spinner(1);
|
||||||
|
|
||||||
/*switch che contiene la mossa del computer in base alla difficolta scelta*/
|
/*switch che contiene la mossa del computer in base alla difficolta scelta*/
|
||||||
switch(difficolta){
|
switch(difficolta){
|
||||||
case 1:{
|
case 1:{
|
||||||
@ -112,16 +126,21 @@ int main (){
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf( ROSSO "\n Ok, ho scelto.\n" RESET BIANCO);
|
printf("\n%-60s%s%s\n", ROSSO, "Ok, ho scelto.", RESET BIANCO);
|
||||||
stampa();
|
stampa();
|
||||||
aspetta(1);
|
aspetta(1);
|
||||||
system(clear);
|
system(clear);
|
||||||
}
|
}
|
||||||
/*Conteggio delle mosse, assegnazione del simbolo alle coordinate scelte e stampa della tabella*/
|
|
||||||
|
/*Conteggio delle mosse,
|
||||||
|
* assegnazione del simbolo alle coordinate scelte,
|
||||||
|
* stampa della tabella
|
||||||
|
*/
|
||||||
mossa++;
|
mossa++;
|
||||||
stampa();
|
stampa();
|
||||||
|
|
||||||
/*Controlla se qualcuno ha vinto*/
|
/*Controlla se qualcuno ha vinto*/
|
||||||
if(controlla(1)||controlla(2)){
|
if(controlla(1) || controlla(2)){
|
||||||
vittoria=1;
|
vittoria=1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -137,47 +156,46 @@ int main (){
|
|||||||
printf(ROSSO);
|
printf(ROSSO);
|
||||||
/*Stampa il risultato della partita, mette in pausa, rompe lo switch e ritorna al menu*/
|
/*Stampa il risultato della partita, mette in pausa, rompe lo switch e ritorna al menu*/
|
||||||
if(controlla(1)==-1 && difficolta==1)
|
if(controlla(1)==-1 && difficolta==1)
|
||||||
printf(" Pareggio, potevi fare di meglio.\n\n");
|
printf("%-45s%s", "", "Pareggio, potevi fare di meglio.");
|
||||||
else{
|
else{
|
||||||
if(controlla(1)==-1 && difficolta==2)
|
if(controlla(1)==-1 && difficolta==2)
|
||||||
printf(" Pareggio, ci eri quasi, riprova...\n\n");
|
printf("%-45s%s", "", "Pareggio, ci eri quasi, riprova...");
|
||||||
else{
|
else{
|
||||||
if(controlla(1)==-1 && difficolta==3){
|
if(controlla(1)==-1 && difficolta==3){
|
||||||
if(!os)
|
if(!os)
|
||||||
printf(" Pareggio, ti %c andata gi%c bene...\n\n",138,133);
|
printf("%-45s%s %c %s%c %s", "", "Pareggio, ti", 138, "andata gi", 133, ", bene...");
|
||||||
else
|
else
|
||||||
printf(" Pareggio, ti è andata già bene...\n\n");
|
printf("%-45s%s", "", "Pareggio, ti è andata già bene...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(controlla(2) && difficolta==1)
|
if(controlla(2) && difficolta==1)
|
||||||
printf(" Hai perso. Ti sei fatto battere da delle mosse pseudocasuali, complimenti.\n\n");
|
printf("%-25s%s", "", "Hai perso. Ti sei fatto battere da delle mosse pseudocasuali, complimenti.");
|
||||||
else {
|
else{
|
||||||
if(controlla(2) && difficolta==2)
|
if(controlla(2) && difficolta==2)
|
||||||
printf(" Hai perso. Dai... lo potevi battere.\n\n");
|
printf("%-45s%s", "", "Hai perso. Dai... lo potevi battere.");
|
||||||
|
|
||||||
else{
|
else{
|
||||||
if(controlla(2) && difficolta==3)
|
if(controlla(2) && difficolta==3)
|
||||||
printf(" Lo sai... non puoi battere il minimax.\n\n");
|
printf("%-45s%s", "", "Lo sai... non puoi battere il minimax.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(controlla(1) && difficolta==1)
|
if(controlla(1) && difficolta==1)
|
||||||
printf(" Bravo, hai battuto uno che mette crocette a caso!\n\n");
|
printf("%-38s%s", "", "Bravo, hai battuto uno che mette crocette a caso!");
|
||||||
|
else{
|
||||||
else{
|
|
||||||
if(controlla(1) && difficolta==2){
|
if(controlla(1) && difficolta==2){
|
||||||
if(!os)
|
if(!os)
|
||||||
printf(" Bravo, non %c stato facile!\n\n",138);
|
printf("%-48s%s %c %s", "", "Bravo, non", 138, "stato facile!");
|
||||||
else
|
else
|
||||||
printf(" Bravo, non è stato facile!\n\n");
|
printf("%-48s%s", "", "Bravo, non è stato facile!");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(controlla(1) && difficolta==3){
|
if(controlla(1) && difficolta==3){
|
||||||
printf(" Impossibile!! Non hai vinto!!!\n");
|
printf("%-48s%s", "", "Impossibile!! Non hai vinto!!!");
|
||||||
if(!os)
|
if(!os)
|
||||||
printf(" Sei vedi questo messaggio sicuramente c'%c qualcosa che non va.\n\n",138);
|
printf("%-30s%s%c %s", "", "Sei vedi questo messaggio sicuramente c'",138, "qualcosa che non va.");
|
||||||
else
|
else
|
||||||
printf(" Sei vedi questo messaggio sicuramente c'è qualcosa che non va.\n\n");
|
printf("%-30s%s", "", "Sei vedi questo messaggio sicuramente c'è qualcosa che non va.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -185,56 +203,60 @@ int main (){
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 3:{
|
case 3:{
|
||||||
|
|
||||||
/*Case per la scelta delle modalità di input*/
|
/*Case per la scelta delle modalità di input*/
|
||||||
system(clear);
|
system(clear);
|
||||||
do{
|
do{
|
||||||
system(clear);
|
system(clear);
|
||||||
printf("\n Vuoi usare il tastierino numerico o le coordinate"ROSSO"[T,C]"RESET BIANCO"?\n");
|
printf("%-34s %s%s%s%s%s\n", "", "Vuoi usare il tastierino numerico o le coordinate", ROSSO, "[T,C]", BIANCO, "?");
|
||||||
getchar();
|
|
||||||
scanf("\n%c",&a);
|
scanf("\n%c",&a);
|
||||||
}while(a!='T' && a!='C' && a!='t' && a!='c');
|
}while(a!='T' && a!='C' && a!='t' && a!='c');
|
||||||
if(a=='T'||a=='t')
|
|
||||||
|
if(a=='T' || a=='t')
|
||||||
tastierino=1;
|
tastierino=1;
|
||||||
else
|
else
|
||||||
tastierino=0;
|
tastierino=0;
|
||||||
|
|
||||||
if(tastierino==1){
|
if(tastierino==1){
|
||||||
system(clear);
|
system(clear);
|
||||||
printf(SOTTOLINEATO GIALLO"\n Istruzioni per giocare: \n\n" RESET BIANCO);
|
printf("\n%-60s%-74s%s\n\n", SOTTOLINEATO GIALLO, "Istruzioni per giocare", RESET BIANCO);
|
||||||
printf(ROSSO"\n *"RESET BIANCO" Usa il tastierino come se fosse la tabella del tris.\n");
|
printf("\n%-40s%s%s %s\n", ROSSO, "*", BIANCO, "Usa il tastierino come se fosse la tabella del tris.");
|
||||||
if (!os)
|
if (!os)
|
||||||
printf(ROSSO" *"RESET BIANCO" Ad esempio il tasto 5 %c il centro.\n",138);
|
printf("\n%-40s%s%s %s %c %s\n" ,ROSSO, "*", BIANCO, "Ad esempio il tasto 5", 138, "il centro.");
|
||||||
else
|
else
|
||||||
printf(ROSSO" *"RESET BIANCO" Ad esempio il tasto 5 è il centro.\n");
|
printf("\n%-40s%s%s %s\n", ROSSO, "*", BIANCO, "Ad esempio il tasto 5 è il centro.");
|
||||||
printf(ROSSO" *"RESET BIANCO" Divertiti.\n\n");
|
printf("\n%-40s%s%s %s\n\n", ROSSO, "*", BIANCO, "Divertiti.");
|
||||||
}
|
}
|
||||||
|
|
||||||
else{
|
else{
|
||||||
system(clear);
|
system(clear);
|
||||||
printf(SOTTOLINEATO GIALLO"\n Istruzioni per giocare: \n\n" RESET BIANCO);
|
printf("\n%-60s%-74s%s\n\n", SOTTOLINEATO GIALLO, "Istruzioni per giocare", RESET BIANCO);
|
||||||
if(!os)
|
if(!os)
|
||||||
printf(ROSSO" * "RESET BIANCO"Il tris %c contenuto in una tabella numerica:\n",138);
|
printf("%-35s%s %s %s %c %s\n", ROSSO, "*", BIANCO, "Il tris", 138, "contenuto in una tabella numerica:");
|
||||||
else
|
else
|
||||||
printf(ROSSO" * "RESET BIANCO"Il tris è contenuto in una tabella numerica:\n");
|
printf("%-35s%s %s%s\n", ROSSO, "*", BIANCO, "Il tris è contenuto in una tabella numerica:");
|
||||||
|
|
||||||
printf(" Le coordinata della mosssa vanno in indicate con: x,y.\n");
|
printf("%-37s%s\n","", "Le coordinata della mosssa vanno in indicate con: x,y.");
|
||||||
printf(" x sono le righe e y le colonne.\n\n");
|
printf("%-37s%s\n\n", "", "x sono le righe e y le colonne.");
|
||||||
printf(ROSSO" * "RESET BIANCO"Ricordati che stai parlando di un'array: quindi si conta da 0:\n");
|
printf("%-35s%s%s %s\n", ROSSO, "*", BIANCO, "Ricordati che stai parlando di un'array: quindi si conta da 0:");
|
||||||
if(!os)
|
if(!os)
|
||||||
printf(" la casella nella 1%c riga nella 1%c colonna ha quindi coordinate 0,0.\n\n",248,248);
|
printf("%-37s%c %s%c %s\n\n", "la casella nella 1", 248, "riga nella 1", 248, "colonna ha quindi coordinate 0,0.");
|
||||||
else
|
else
|
||||||
printf(" la casella nella 1° riga nella 1° colonna ha quindi coordinate 0,0.\n\n");
|
printf("%-37s%s\n\n", "", "la casella nella 1° riga nella 1° colonna ha quindi coordinate 0,0.");
|
||||||
printf(ROSSO" * "RESET BIANCO"Divertiti.\n\n");
|
printf("%-35s%s %s%s\n\n", ROSSO, "*", BIANCO, "Divertiti.");
|
||||||
}
|
}
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 4:{
|
case 4:{
|
||||||
|
|
||||||
/*About*/
|
/*About*/
|
||||||
system(clear);
|
system(clear);
|
||||||
printf(SOTTOLINEATO GIALLO"\n Tris in stile C \n\n" RESET BIANCO);
|
printf("\n%-64s%-70s%s\n\n", SOTTOLINEATO GIALLO, "Tris in stile C", RESET BIANCO);
|
||||||
if (!os)
|
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);
|
printf("%-28s%s %c %s\n%-28s%s\n\n", "", "Questo gioco", 138, "stato sviluppato da Michele Guerini Rocco in una fredda", "", "notte di premiazioni e sistemato per l'intero anno successivo.");
|
||||||
else
|
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");
|
printf("%-28s%s\n%-28s%s\n\n", "", "Questo gioco è stato sviluppato da Michele Guerini Rocco in una fredda", "", "notte di premiazioni e sistemato per l'intero anno successivo.");
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
44
tris.c
44
tris.c
@ -30,7 +30,7 @@ void stampa(){
|
|||||||
int i,k;
|
int i,k;
|
||||||
printf("\n\n\n");
|
printf("\n\n\n");
|
||||||
for(i=0;i<M;i++) {
|
for(i=0;i<M;i++) {
|
||||||
printf(RESET" ");
|
printf("%-60s", RESET);
|
||||||
for(k=0;k<M;k++) {
|
for(k=0;k<M;k++) {
|
||||||
if(tabella[i][k]==1)
|
if(tabella[i][k]==1)
|
||||||
printf(GIALLO" O ");
|
printf(GIALLO" O ");
|
||||||
@ -59,22 +59,25 @@ void vuota() {
|
|||||||
void leggimossa(){
|
void leggimossa(){
|
||||||
int tasto=0;
|
int tasto=0;
|
||||||
fflush(stdin);
|
fflush(stdin);
|
||||||
|
|
||||||
/*Se è attivo il tastierino*/
|
/*Se è attivo il tastierino*/
|
||||||
if(tastierino==1){
|
if(tastierino==1){
|
||||||
do{
|
do{
|
||||||
tasto=0;
|
tasto=0;
|
||||||
fflush(stdin);
|
fflush(stdin);
|
||||||
|
|
||||||
/*2 giocatori*/
|
/*2 giocatori*/
|
||||||
if(scelta==2)
|
if(scelta==2)
|
||||||
printf(GIALLO" Fai la tua mossa:\n"RESET BIANCO);
|
printf("%-59s%s%s\n", GIALLO, "Fai la tua mossa:", BIANCO);
|
||||||
else
|
else
|
||||||
printf(GIALLO" Gioca il giocatore %d.\n Fai la tua mossa:\n"RESET BIANCO,giocatore);
|
printf("%58s%s %d\n%-55s%s%s\n", GIALLO, "Gioca il giocatore", giocatore, "", "Fai la tua mossa:",BIANCO);
|
||||||
if(os)
|
if(os)
|
||||||
tasto=mgetchar();
|
tasto=mgetchar();
|
||||||
else
|
else
|
||||||
do{
|
do{
|
||||||
tasto=getch();
|
tasto=getch();
|
||||||
}while(kbhit());
|
}while(kbhit());
|
||||||
|
|
||||||
switch(tasto){
|
switch(tasto){
|
||||||
case 49:{
|
case 49:{
|
||||||
i=2;
|
i=2;
|
||||||
@ -123,29 +126,32 @@ void leggimossa(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if(tabella[i][k]==1||tabella[i][k]==2||i<0||k<0||i>=M||k>=M){
|
if(tabella[i][k]==1 || tabella[i][k]==2 || i<0 || k<0 || i>=M || k>=M){
|
||||||
system(clear);
|
system(clear);
|
||||||
stampa();
|
stampa();
|
||||||
printf(GRASSETTO ROSSO"\n Mossa non valida,riprova.\n\n"RESET BIANCO);
|
printf("%-59s%s%s\n\n", GRASSETTO ROSSO, "Mossa non valida, riprova.", RESET BIANCO);
|
||||||
}
|
}
|
||||||
}while(tabella[i][k]==1||tabella[i][k]==2||i<0||k<0||i>=M||k>=M);
|
}while(tabella[i][k]==1 || tabella[i][k]==2 || i<0 || k<0 || i>=M || k>=M);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Mossa con coordinate*/
|
/*Mossa con coordinate*/
|
||||||
else{
|
else{
|
||||||
do{
|
do{
|
||||||
|
|
||||||
/*Giocatore singolo*/
|
/*Giocatore singolo*/
|
||||||
if(scelta==2)
|
if(scelta==2)
|
||||||
printf(GIALLO" Tocca a te.\n Inserisci coordinate della mossa"ROSSO"[Riga,colonna]:\n" RESET BIANCO);
|
printf("%-63s%s\n%-40s%s%s %s%s\n", GIALLO, "Tocca a te.", "", "Inserisci coordinate della mossa", ROSSO, "[Riga,colonna]:", BIANCO);
|
||||||
|
|
||||||
/*2 giocatori*/
|
/*2 giocatori*/
|
||||||
else
|
else
|
||||||
printf(GIALLO" Gioca il giocatore %d.\n Inserisci coordinate della mossa"ROSSO"[Riga,colonna]:\n" RESET BIANCO,giocatore);
|
printf("%-58s%s %d\n%-40s%s %s%s%s\n", GIALLO, "Gioca il giocatore", giocatore, "", "Inserisci coordinate della mossa", ROSSO, "[Riga,colonna]:", BIANCO);
|
||||||
scanf("%d,%d",&i,&k);
|
scanf("%d,%d",&i,&k);
|
||||||
if(tabella[i][k]==1||tabella[i][k]==2||i<0||k<0||i>=M||k>=M){
|
if(tabella[i][k]==1 || tabella[i][k]==2 || i<0 || k<0 || i>=M || k>=M){
|
||||||
system(clear);
|
system(clear);
|
||||||
stampa();
|
stampa();
|
||||||
printf(GRASSETTO ROSSO"\n\n Coordinate non valide,riprova.\n\n\n"RESET BIANCO);
|
printf("\n\n%-56s%s%s\n\n\n", GRASSETTO ROSSO, "Coordinate non valide, riprova.", RESET BIANCO);
|
||||||
}
|
}
|
||||||
}while(tabella[i][k]==1||tabella[i][k]==2||i<0||k<0||i>=M||k>=M);
|
}while(tabella[i][k]==1 || tabella[i][k]==2 || i<0 || k<0 || i>=M || k>=M);
|
||||||
system(clear);
|
system(clear);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,20 +162,20 @@ int controlla(int giocatore){
|
|||||||
/*Diagonali*/
|
/*Diagonali*/
|
||||||
for(i=0;i<M;i++){
|
for(i=0;i<M;i++){
|
||||||
for(k=(M-1);k>=0;k--)
|
for(k=(M-1);k>=0;k--)
|
||||||
if((tabella[i][k]==giocatore&&tabella[i+1][k-1]==giocatore&&tabella[i+2][k-2]==giocatore)&&(i+2<M))
|
if((tabella[i][k]==giocatore && tabella[i+1][k-1]==giocatore && tabella[i+2][k-2]==giocatore) && (i+2<M))
|
||||||
return 1;
|
return 1;
|
||||||
for(k=0;k<M;k++)
|
for(k=0;k<M;k++)
|
||||||
if((tabella[i][k]==giocatore&&tabella[i+1][k+1]==giocatore&&tabella[i+2][k+2]==giocatore)&&((i+2<M)&&(k+2<M)))
|
if((tabella[i][k]==giocatore && tabella[i+1][k+1]==giocatore && tabella[i+2][k+2]==giocatore) && ((i+2<M) && (k+2<M)))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/*Righe e colonne*/
|
/*Righe e colonne*/
|
||||||
for(i=0;i<M;i++){
|
for(i=0;i<M;i++){
|
||||||
for(k=0;k<M;k++)
|
for(k=0;k<M;k++)
|
||||||
if((tabella[i][k]==giocatore&&tabella[i][k+1]==giocatore&&tabella[i][k+2]==giocatore)&&(k+2<M))
|
if((tabella[i][k]==giocatore && tabella[i][k+1]==giocatore && tabella[i][k+2]==giocatore) && (k+2<M))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for(k=0;k<M;k++)
|
for(k=0;k<M;k++)
|
||||||
if((tabella[k][i]==giocatore&&tabella[k+1][i]==giocatore&&tabella[k+2][i]==giocatore)&&(k+2<M))
|
if((tabella[k][i]==giocatore && tabella[k+1][i]==giocatore && tabella[k+2][i]==giocatore) && (k+2<M))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
int piene=M*M;
|
int piene=M*M;
|
||||||
@ -204,7 +210,7 @@ int minimax(int giocatore, int profondita){
|
|||||||
else
|
else
|
||||||
res-=2;
|
res-=2;
|
||||||
}
|
}
|
||||||
else if(((tmp=minimax(2,profondita-1))<res)||(tmp==INT_MIN))
|
else if(((tmp=minimax(2,profondita-1))<res) || (tmp==INT_MIN))
|
||||||
res=tmp;
|
res=tmp;
|
||||||
tabella[i][k]=0;
|
tabella[i][k]=0;
|
||||||
}
|
}
|
||||||
@ -219,7 +225,7 @@ int minimax(int giocatore, int profondita){
|
|||||||
tabella[i][k]=2;
|
tabella[i][k]=2;
|
||||||
if(controlla(2))
|
if(controlla(2))
|
||||||
res+=2;
|
res+=2;
|
||||||
else if(((tmp=minimax(1,profondita-1))>res)||(tmp==INT_MAX))
|
else if(((tmp=minimax(1,profondita-1))>res) || (tmp==INT_MAX))
|
||||||
res=tmp;
|
res=tmp;
|
||||||
tabella[i][k]=0;
|
tabella[i][k]=0;
|
||||||
}
|
}
|
||||||
@ -236,7 +242,7 @@ void facile() {
|
|||||||
randomize;
|
randomize;
|
||||||
a=random(M);
|
a=random(M);
|
||||||
b=random(M);
|
b=random(M);
|
||||||
}while(tabella[a][b]==1||tabella[a][b]==2);
|
}while(tabella[a][b]==1 || tabella[a][b]==2);
|
||||||
tabella[a][b]=2;
|
tabella[a][b]=2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -299,7 +305,7 @@ void aspetta(int t){
|
|||||||
/*Caricamento stile Ajax*/
|
/*Caricamento stile Ajax*/
|
||||||
void spinner(int tempo) {
|
void spinner(int tempo) {
|
||||||
char spinner[] = "/-\\|";
|
char spinner[] = "/-\\|";
|
||||||
printf(GIALLO"\n ");
|
printf("\n%-66s", GIALLO);
|
||||||
for (int i=0; i<(tempo*10);i++){
|
for (int i=0; i<(tempo*10);i++){
|
||||||
putchar(spinner[i%4]);
|
putchar(spinner[i%4]);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
Loading…
Reference in New Issue
Block a user