Prima Commit
Aggiunto il main e la libreria di funzioni.
This commit is contained in:
parent
281a83abc5
commit
01bc3116bb
222
main.c
Executable file
222
main.c
Executable file
@ -0,0 +1,222 @@
|
|||||||
|
#include "tris.h"
|
||||||
|
int main (){
|
||||||
|
int vittoria;
|
||||||
|
int difficolta;
|
||||||
|
do{
|
||||||
|
giocatore=1,vittoria=0;
|
||||||
|
scelta=0,difficolta=0,mossa=0;
|
||||||
|
system(clear); //menu d'inizio
|
||||||
|
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("%d",&scelta);
|
||||||
|
switch(scelta) {
|
||||||
|
|
||||||
|
case 1:{ //case per la partita con 2 giocatori
|
||||||
|
vuota();
|
||||||
|
system(clear);
|
||||||
|
stampa();
|
||||||
|
do{ //ciclo che contiene la partita. dura fino alla vittoria
|
||||||
|
leggimossa(); //richiama la funzione che legge la mossa
|
||||||
|
system(clear);
|
||||||
|
mossa++; //conteggio delle mossa,assegnazione del simbolo alle coordinate scelte e stampa della tabella
|
||||||
|
tabella[i][k]=giocatore;
|
||||||
|
stampa();
|
||||||
|
if (controlla(1)){ //richiama la funzione controlla che verifica se qualcuno ha vinto
|
||||||
|
vittoria=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(giocatore==1) //cambia il turno del giocatore
|
||||||
|
giocatore=2;
|
||||||
|
else
|
||||||
|
giocatore=1;
|
||||||
|
}
|
||||||
|
while(!vittoria && mossa<M*M);
|
||||||
|
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();
|
||||||
|
} //stampa il risultato della partita, richiama la funzione pausa, rompe lo switch e ritorna al menu
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:{ //case che contiene la partita singolo giocatore
|
||||||
|
vuota();
|
||||||
|
system(clear);
|
||||||
|
do{ //ciclo per scegliere la difficolta del gioco
|
||||||
|
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 "ROSSO"[2]"RESET BIANCO" Medio\n "ROSSO"[3]"RESET BIANCO" Difficile\n");
|
||||||
|
scanf("%d",&difficolta);
|
||||||
|
if(difficolta<1||difficolta>3)
|
||||||
|
printf(GRASSETTO ROSSO"\n Scelta non valida.\n\n" RESET BIANCO);
|
||||||
|
}while(difficolta<1||difficolta>3);
|
||||||
|
system(clear);
|
||||||
|
stampa();
|
||||||
|
do{ //ciclo che contiene la partita fino alla vittoria/pareggio
|
||||||
|
if (giocatore==1){
|
||||||
|
leggimossa(); //richiama la funzione che legge la mossa
|
||||||
|
tabella[i][k]=1;
|
||||||
|
system(clear);
|
||||||
|
stampa();
|
||||||
|
aspetta(1);
|
||||||
|
}
|
||||||
|
else{ //turno del computer
|
||||||
|
system(clear);
|
||||||
|
printf(ROSSO"\n Gioco io ora...\n" RESET BIANCO);
|
||||||
|
spinner(1);
|
||||||
|
switch(difficolta){ //switch che contiene la mossa del computer
|
||||||
|
//richiama le funzione in base alla difficoltà
|
||||||
|
case 1:{
|
||||||
|
facile();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:{
|
||||||
|
medio();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3:{
|
||||||
|
difficile();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf( ROSSO "\n Ok, ho scelto.\n" RESET BIANCO);
|
||||||
|
stampa();
|
||||||
|
aspetta(2);
|
||||||
|
system(clear);
|
||||||
|
}
|
||||||
|
mossa++; //conteggio delle mossa,assegnazione del simbolo alle coordinate scelte e stampa della tabella
|
||||||
|
stampa();
|
||||||
|
if (controlla(1)||controlla(2)){ //richiama la funzione controlla che verifica se qualcuno ha vinto
|
||||||
|
vittoria=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(giocatore==1){ //cambia il turno del giocatore
|
||||||
|
giocatore=2;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
giocatore=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(!vittoria && mossa<M*M);
|
||||||
|
system(clear);
|
||||||
|
stampa();
|
||||||
|
printf(ROSSO);
|
||||||
|
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;
|
||||||
|
} //stampa del risultato della partita,esce dallo switch e ritorna al menu
|
||||||
|
case 3: {
|
||||||
|
system(clear); //case per le modalità di input
|
||||||
|
do{
|
||||||
|
system(clear);
|
||||||
|
printf("\n Vuoi usare il tastierino numerico o le coordinate"ROSSO"[T,C]"RESET BIANCO"?\n");
|
||||||
|
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:{
|
||||||
|
system(clear); //case per l'about
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
344
tris.h
Normal file
344
tris.h
Normal file
@ -0,0 +1,344 @@
|
|||||||
|
#ifndef _TRIS_H_
|
||||||
|
|
||||||
|
#define _TRIS_H_
|
||||||
|
|
||||||
|
/*Librerie Principali*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
/*Colori ANSI*/
|
||||||
|
#define NERO "\033[22;30m"
|
||||||
|
#define BLU "\033[34m"
|
||||||
|
#define GIALLO "\033[33m"
|
||||||
|
#define BIANCO "\033[37m"
|
||||||
|
#define ROSSO "\033[31m"
|
||||||
|
#define RESET "\033[0m"
|
||||||
|
#define GRASSETTO "\033[1m"
|
||||||
|
#define SOTTOLINEATO "\033[4m"
|
||||||
|
|
||||||
|
/*Definizioni*/
|
||||||
|
#define random(x) rand() % x
|
||||||
|
#define randomize srand((unsigned)time(NULL))
|
||||||
|
#define M 3
|
||||||
|
|
||||||
|
/*Funzione specifiche degli os*/
|
||||||
|
#ifdef __WIN32__
|
||||||
|
|
||||||
|
#define os 0
|
||||||
|
#include <conio.h>
|
||||||
|
#define clear "cls"
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define os 1
|
||||||
|
#define clear "clear"
|
||||||
|
#include <termios.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
int mgetchar(void);
|
||||||
|
int mgetchar(){
|
||||||
|
char buf = 0;
|
||||||
|
struct termios old = {0};
|
||||||
|
if (tcgetattr(0, &old) < 0)
|
||||||
|
perror("tcsetattr()");
|
||||||
|
old.c_lflag &= ~ICANON;
|
||||||
|
old.c_lflag &= ~ECHO;
|
||||||
|
old.c_cc[VMIN] = 1;
|
||||||
|
old.c_cc[VTIME] = 0;
|
||||||
|
if (tcsetattr(0, TCSANOW, &old) < 0)
|
||||||
|
perror("tcsetattr ICANON");
|
||||||
|
if (read(0, &buf, 1) < 0)
|
||||||
|
perror ("read()");
|
||||||
|
old.c_lflag |= ICANON;
|
||||||
|
old.c_lflag |= ECHO;
|
||||||
|
if (tcsetattr(0, TCSADRAIN, &old) < 0)
|
||||||
|
perror ("tcsetattr ~ICANON");
|
||||||
|
return (buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*Prototipi*/
|
||||||
|
void vuota(void);
|
||||||
|
void stampa(void);
|
||||||
|
int controlla(int giocatore);
|
||||||
|
void spinner(int tempo);
|
||||||
|
int minimax(int giocatore, int profondita);
|
||||||
|
void facile(void);
|
||||||
|
void medio(void);
|
||||||
|
void difficile(void);
|
||||||
|
void pausa(void);
|
||||||
|
void leggimossa(void);
|
||||||
|
void aspetta(int t);
|
||||||
|
void beep(int t);
|
||||||
|
|
||||||
|
/*Variabili globali*/
|
||||||
|
char a='a',c;
|
||||||
|
int i,k;
|
||||||
|
int giocatore,scelta,mossa;
|
||||||
|
int tabella[M][M];
|
||||||
|
int tastierino=1;
|
||||||
|
|
||||||
|
/*Funzioni*/
|
||||||
|
void stampa(){
|
||||||
|
int i,k;
|
||||||
|
printf("\n\n\n");
|
||||||
|
for(i=0;i<M;i++) {
|
||||||
|
printf(RESET" ");
|
||||||
|
for(k=0; k<M;k++) {
|
||||||
|
if(tabella[i][k]==1)
|
||||||
|
printf(GIALLO" O ");
|
||||||
|
else {
|
||||||
|
if(tabella[i][k]==2)
|
||||||
|
printf(ROSSO" X ");
|
||||||
|
else
|
||||||
|
printf(BIANCO" . ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("\n\n");
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int controlla(int giocatore){
|
||||||
|
if(tabella[0][0]==giocatore&&tabella[1][1]==giocatore&&tabella[2][2]==giocatore)
|
||||||
|
return 1;
|
||||||
|
if(tabella[2][0]==giocatore&&tabella[1][1]==giocatore&&tabella[0][2]==giocatore)
|
||||||
|
return 1;
|
||||||
|
for(i=0;i<3;i++){
|
||||||
|
if(tabella[i][0]==giocatore&&tabella[i][1]==giocatore&&tabella[i][2]==giocatore)
|
||||||
|
return 1;
|
||||||
|
if(tabella[0][i]==giocatore&&tabella[1][i]==giocatore&&tabella[2][i]==giocatore)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int minimax(int giocatore, int profondita){
|
||||||
|
|
||||||
|
if(controlla(2))
|
||||||
|
return INT_MAX;
|
||||||
|
if(mossa==M*M)
|
||||||
|
return 0;
|
||||||
|
int res, tmp;
|
||||||
|
if(giocatore==1){
|
||||||
|
res=1;
|
||||||
|
for(i=0;i<M;i++){
|
||||||
|
for(k=0;k<M;k++){
|
||||||
|
if(!tabella[i][k]){
|
||||||
|
tabella[i][k]=1;
|
||||||
|
if(controlla(1)){
|
||||||
|
if(profondita==20){
|
||||||
|
tabella[i][k]=0;
|
||||||
|
return INT_MIN;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
res-=2;
|
||||||
|
}
|
||||||
|
else if((tmp=minimax(2, profondita - 1))<res)
|
||||||
|
res=tmp;
|
||||||
|
tabella[i][k]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
res=-1;
|
||||||
|
for(i=0;i<M;i++){
|
||||||
|
for(k=0;k<M;k++){
|
||||||
|
if(!tabella[i][k]){
|
||||||
|
tabella[i][k]=2;
|
||||||
|
if(controlla(2))
|
||||||
|
res+=2;
|
||||||
|
else if((tmp=minimax(1, profondita - 1))>res)
|
||||||
|
res=tmp;
|
||||||
|
tabella[i][k]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
void facile() {
|
||||||
|
int a,b;
|
||||||
|
do{
|
||||||
|
randomize;
|
||||||
|
a=random(M);
|
||||||
|
b=random(M);
|
||||||
|
}while(tabella[a][b]==1||tabella[a][b]==2);
|
||||||
|
tabella[a][b]=2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void medio(){
|
||||||
|
int max=INT_MIN,mi=1,mk=1,t;
|
||||||
|
for(i=0;i<M;i++){
|
||||||
|
for(k=0;k<M;k++){
|
||||||
|
if(!tabella[i][k]){
|
||||||
|
tabella[i][k]=2;
|
||||||
|
t=minimax(1, 10);
|
||||||
|
if(t>max){
|
||||||
|
max=t;
|
||||||
|
mi=i;
|
||||||
|
mk=k;
|
||||||
|
}
|
||||||
|
tabella[i][k]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stampa();
|
||||||
|
tabella[mi][mk]=2;
|
||||||
|
}
|
||||||
|
|
||||||
|
void difficile(){
|
||||||
|
int max=INT_MIN,mi=1,mk=1,t;
|
||||||
|
for(i=0;i<M;i++){
|
||||||
|
for(k=0;k<M;k++){
|
||||||
|
if(!tabella[i][k]){
|
||||||
|
tabella[i][k]=2;
|
||||||
|
t=minimax(1,20);
|
||||||
|
if(t>max){
|
||||||
|
max=t;
|
||||||
|
mi=i;
|
||||||
|
mk=k;
|
||||||
|
}
|
||||||
|
tabella[i][k]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tabella[mi][mk]=2;
|
||||||
|
}
|
||||||
|
|
||||||
|
void pausa() {
|
||||||
|
do{
|
||||||
|
getchar();
|
||||||
|
}while ((c= getchar()) != '\n' && c!= EOF);
|
||||||
|
}
|
||||||
|
|
||||||
|
void vuota() {
|
||||||
|
for(i=0;i<M;i++) {
|
||||||
|
for(k=0;k<M;k++)
|
||||||
|
tabella[i][k]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void leggimossa(){
|
||||||
|
int tasto=0;
|
||||||
|
fflush(stdin);
|
||||||
|
if(tastierino==1){
|
||||||
|
do{
|
||||||
|
tasto=0;
|
||||||
|
fflush(stdin);
|
||||||
|
if(scelta==2)
|
||||||
|
printf(GIALLO" Fai la tua mossa:\n"RESET BIANCO);
|
||||||
|
else
|
||||||
|
printf(GIALLO" Gioca il giocatore %d.\n Fai la tua mossa:\n"RESET BIANCO,giocatore);
|
||||||
|
if(os)
|
||||||
|
tasto=mgetchar();
|
||||||
|
else
|
||||||
|
do{
|
||||||
|
tasto=getch();
|
||||||
|
}while(kbhit());
|
||||||
|
switch(tasto){
|
||||||
|
case 49:{
|
||||||
|
i=2;
|
||||||
|
k=0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 50:{
|
||||||
|
i=2;
|
||||||
|
k=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 51:{
|
||||||
|
i=2;
|
||||||
|
k=2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 52:{
|
||||||
|
i=1;
|
||||||
|
k=0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 53:{
|
||||||
|
i=1;
|
||||||
|
k=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 54:{
|
||||||
|
i=1;
|
||||||
|
k=2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 55:{
|
||||||
|
i=0;
|
||||||
|
k=0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 56:{
|
||||||
|
i=0;
|
||||||
|
k=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 57:{
|
||||||
|
i=0;
|
||||||
|
k=2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(tabella[i][k]==1||tabella[i][k]==2||i<0||k<0||i>=M||k>=M){
|
||||||
|
system(clear);
|
||||||
|
stampa();
|
||||||
|
printf(GRASSETTO ROSSO"\n Mossa non valida,riprova.\n\n"RESET BIANCO);
|
||||||
|
}
|
||||||
|
}while(tabella[i][k]==1||tabella[i][k]==2||i<0||k<0||i>=M||k>=M);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
do{
|
||||||
|
if(scelta==2)
|
||||||
|
printf(GIALLO" Tocca a te.\n Inserisci coordinate della mossa"ROSSO"[Riga,colonna]:\n" RESET BIANCO);
|
||||||
|
else
|
||||||
|
printf(GIALLO" Gioca il giocatore %d.\n Inserisci coordinate della mossa"ROSSO"[Riga,colonna]:\n" RESET BIANCO,giocatore);
|
||||||
|
scanf("%d,%d",&i,&k);
|
||||||
|
if(tabella[i][k]==1||tabella[i][k]==2||i<0||k<0||i>=M||k>=M){
|
||||||
|
system(clear);
|
||||||
|
stampa();
|
||||||
|
printf(GRASSETTO ROSSO"\n\n Coordinate non valide,riprova.\n\n\n"RESET BIANCO);
|
||||||
|
}
|
||||||
|
}while(tabella[i][k]==1||tabella[i][k]==2||i<0||k<0||i>=M||k>=M);
|
||||||
|
system(clear);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void aspetta(int t){
|
||||||
|
time_t Ti,Tf;
|
||||||
|
time(&Ti);
|
||||||
|
do{
|
||||||
|
time(&Tf);
|
||||||
|
}while(difftime(Tf,Ti)<t);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void spinner(int tempo) {
|
||||||
|
char spinner[] = "/-\\|";
|
||||||
|
printf(GIALLO"\n ");
|
||||||
|
for (int i=0; i<(tempo*10);i++){
|
||||||
|
putchar(spinner[i%4]);
|
||||||
|
fflush(stdout);
|
||||||
|
usleep(200000);
|
||||||
|
putchar('\b');
|
||||||
|
}
|
||||||
|
printf(RESET);
|
||||||
|
putchar(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
void beep(int t){
|
||||||
|
for(i=0;i<t*100;i++)
|
||||||
|
putchar('\a');
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user