#include
using namespace std;
// Funkcja rysuje planszę gry w kółko i krzyżyk
// Plansza przechowywana jest w tablicy t[] w elementach o następujących indeksach:
// t[1] t[2] t[3]
// t[4] t[5] t[6]
// t[7] t[8] t[9]
//---------------------------------------------------------------------------------
void plansza(char t[])
{
for(int i = 1; i <= 9; i++)
{
cout << " " << t[i] << " ";
if(i % 3) cout << "|"; // Po elementach 1,2,4,5,7,8 rysujemy |
else if(i != 9) cout << "\n---+---+---\n"; // Po elementach 3 i 6 poprzeczka
else cout << endl; // Po elemencie 9 koniec wiersza
}
}
// Funkcja zwraca true, jeśli nastąpiła
// wygrana danego zawodnika
//-------------------------------------
bool wygrana(char t[], char g, bool cisza)
{
bool test;
int i;
test = false; // Zmienna przyjmuje true, jeśli zawodnik ma trzy figury
// w wierszu, kolumnie lub na przekątnych
// Sprawdzamy wiersze
for(i = 1; i <= 7; i += 3) test |= ((t[i] == g) && (t[i+1] == g) && (t[i+2] == g));
// Sprawdzamy kolumny
for(i = 1; i <= 3; i++) test |= ((t[i] == g) && (t[i+3] == g) && (t[i+6] == g));
// Sprawdzamy przekątną 1-5-9
test |= ((t[1] == g) && (t[5] == g) && (t[9] == g));
// Sprawdzamy przekątną 3-5-7
test |= ((t[3] == g) && (t[5] == g) && (t[7] == g));
if(test)
{
if(!cisza)
{
plansza(t);
cout << "\nGRACZ " << g << " WYGRYWA!!!\n\n";
}
return true;
}
return false;
}
// Funkcja zwraca true, jeśli na planszy nie ma już
// żadnego wolnego pola na ruch.
using namespace std;
// Funkcja rysuje planszę gry w kółko i krzyżyk
// Plansza przechowywana jest w tablicy t[] w elementach o następujących indeksach:
// t[1] t[2] t[3]
// t[4] t[5] t[6]
// t[7] t[8] t[9]
//---------------------------------------------------------------------------------
void plansza(char t[])
{
for(int i = 1; i <= 9; i++)
{
cout << " " << t[i] << " ";
if(i % 3) cout << "|"; // Po elementach 1,2,4,5,7,8 rysujemy |
else if(i != 9) cout << "\n---+---+---\n"; // Po elementach 3 i 6 poprzeczka
else cout << endl; // Po elemencie 9 koniec wiersza
}
}
// Funkcja zwraca true, jeśli nastąpiła
// wygrana danego zawodnika
//-------------------------------------
bool wygrana(char t[], char g, bool cisza)
{
bool test;
int i;
test = false; // Zmienna przyjmuje true, jeśli zawodnik ma trzy figury
// w wierszu, kolumnie lub na przekątnych
// Sprawdzamy wiersze
for(i = 1; i <= 7; i += 3) test |= ((t[i] == g) && (t[i+1] == g) && (t[i+2] == g));
// Sprawdzamy kolumny
for(i = 1; i <= 3; i++) test |= ((t[i] == g) && (t[i+3] == g) && (t[i+6] == g));
// Sprawdzamy przekątną 1-5-9
test |= ((t[1] == g) && (t[5] == g) && (t[9] == g));
// Sprawdzamy przekątną 3-5-7
test |= ((t[3] == g) && (t[5] == g) && (t[7] == g));
if(test)
{
if(!cisza)
{
plansza(t);
cout << "\nGRACZ " << g << " WYGRYWA!!!\n\n";
}
return true;
}
return false;
}
// Funkcja zwraca true, jeśli na planszy nie ma już
// żadnego wolnego pola na ruch.