#include <iostream>
#include <unistd.h>
using namespace std;
#define NUMCELLE 9
#define RESET "\033[0m"
#define BLACK "\033[30m"
#define RED "\033[31m"
#define GREEN "\033[32m"
#define YELLOW "\033[33m"
#define BLUE "\033[34m"
#define MAGENTA "\033[35m"
#define CYAN "\033[36m"
#define WHITE "\033[37m"
/**
* Ridefinizione della funzione Sleep per farla funzionare con onlineGDB
*/
void mySleep(int seconds)
{
sleep(seconds);
std::cout.flush(); // Forza la stampa immediata
}
/**
* Funzione utile per stampare un messaggio di benvenuto
*/
void intro()
{
cout << RED << "Il ";
mySleep(1);
cout << GREEN << "Gioco ";
mySleep(1);
cout << YELLOW << "del ";
mySleep(1);
cout << BLUE << "Tris ";
mySleep(1);
cout << RESET << endl;
mySleep(1);
cout << "Premi invio per continuare" << endl;
cin.get();
}
/**
* Funzione utile per stampare le regole
*/
void regole()
{
}
/**
* Funzione utile per stampare il tabellone di gioco
*/
void grafica(char t[])
{
system("clear");
cout << " -------" << endl;
cout << " |"<<t[0]<<"|"<<t[1]<<"|"<<t[2]<<"|" << endl;
cout << " -------" << endl;
cout << " |"<<t[3]<<"|"<<t[4]<<"|"<<t[5]<<"|" << endl;
cout << " -------" << endl;
cout << " |"<<t[6]<<"|"<<t[7]<<"|"<<t[8]<<"|" << endl;
cout << " -------" << endl;
cout << endl;
}
void inserimentoPosizione(char tabellone[], char simbolo)
{
int pos;
cout << "Giocatore " << simbolo << " inserisci la posizione dove vuoi giocare" << endl;
cin >> pos;
// Inserire un controllo per valutare la validità della posizione.
tabellone[pos] = simbolo;
}
/**
* Funzione utile per controllare la vittoria del giocatore 1
*/
int controlloVittoriaG1(char t[], char mark)
{
if((t[0]==mark)&&(t[1]==mark)&&(t[2]==mark))
{
return 1;
}
else
{
return 0;
}
}
int main()
{
srand(time(NULL));
char tabellone[NUMCELLE];
int vittoriaG1 = 0;
int vittoriaG2 = 0;
int random = rand()%9; // Generazione di un numero random (Utile per l'introduzione di una IA)
tabellone[0] = '0';
tabellone[1] = '1';
tabellone[2] = '2';
tabellone[3] = '3';
tabellone[4] = '4';
tabellone[5] = '5';
tabellone[6] = '6';
tabellone[7] = '7';
tabellone[8] = '8';
intro();
regole();
grafica(tabellone);
while((vittoriaG1==0) && (vittoriaG2==0))
{
inserimentoPosizione(tabellone, 'x');
grafica(tabellone);
vittoriaG1 = controlloVittoriaG1(tabellone, 'x');
inserimentoPosizione(tabellone, 'y');
grafica(tabellone);
vittoriaG2 = controlloVittoriaG1(tabellone, 'y');
}
return 0;
}