#include <iostream>
#include <windows.h>
using namespace std;
enum StatusPola {SP_PUSTE = '-', SP_KOLO = 'o', SP_KRZYZ = 'x'}; // 0 : 1 : 2
int main()
{
StatusPola sp1 = SP_PUSTE;
StatusPola sp2 = SP_PUSTE;
StatusPola sp3 = SP_PUSTE;
StatusPola sp4 = SP_PUSTE;
StatusPola sp5 = SP_PUSTE;
StatusPola sp6 = SP_PUSTE;
StatusPola sp7 = SP_PUSTE;
StatusPola sp8 = SP_PUSTE;
StatusPola sp9 = SP_PUSTE;
int kolejka = 0;
int pole_kr;
int pole_ko;
while(true){
system("cls");
cout << (char)sp1 << " " << (char)sp2 << " " << (char)sp3 << "\n";
cout << (char)sp4 << " " << (char)sp5 << " " << (char)sp6 << "\n";
cout << (char)sp7 << " " << (char)sp8 << " " << (char)sp9 << "\n";
if(kolejka == 0){
cin >> pole_ko;
switch(pole_ko){
case 1:
if (sp1 != SP_KRZYZ){
sp1 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
case 2:
if (sp2 != SP_KRZYZ){
sp2 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
case 3:
if (sp3 != SP_KRZYZ){
sp3 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
case 4:
if (sp4 != SP_KRZYZ){
sp4 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
case 5:
if (sp5 != SP_KRZYZ){
sp5 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
case 6:
if (sp6 != SP_KRZYZ){
sp6 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
case 7:
if (sp7 != SP_KRZYZ){
sp7 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
case 8:
if (sp8 != SP_KRZYZ){
sp8 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
case 9:
if (sp9 != SP_KRZYZ){
sp9 = SP_KOLO;
kolejka = 1;
} else {
kolejka = 0;
}
break;
}
if((sp1 == SP_KOLO && sp2 == SP_KOLO && sp3 == SP_KOLO) || (sp1 == SP_KOLO && sp5 == SP_KOLO && sp9 == SP_KOLO) || (sp1 == SP_KOLO && sp4 == SP_KOLO && sp7 == SP_KOLO) || (sp2 == SP_KOLO && sp5 == SP_KOLO && sp8 == SP_KOLO) || (sp3 == SP_KOLO && sp5 == SP_KOLO && sp7 == SP_KOLO) || (sp3 == SP_KOLO && sp6 == SP_KOLO && sp9 == SP_KOLO)|| (sp4 == SP_KOLO && sp5 == SP_KOLO && sp6 == SP_KOLO) || (sp7 == SP_KOLO && sp8 == SP_KOLO && sp9 == SP_KOLO)) {
cout << "KOLO WYGRAL !" <<endl;
return 0;
}
} else if (kolejka == 1){
cin >> pole_kr;
switch(pole_kr){
case 1:
if (sp1 != SP_KOLO){
sp1 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
case 2:
if (sp2 != SP_KOLO){
sp2 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
case 3:
if (sp3 != SP_KOLO){
sp3 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
case 4:
if (sp4 != SP_KOLO){
sp4 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
case 5:
if (sp5 != SP_KOLO){
sp5 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
case 6:
if (sp6 != SP_KOLO){
sp6 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
case 7:
if (sp7 != SP_KOLO){
sp7 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
case 8:
if (sp8 != SP_KOLO){
sp8 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
case 9:
if (sp9 != SP_KOLO){
sp9 = SP_KRZYZ;
kolejka = 0;
} else {
kolejka = 1;
}
break;
}
if((sp1 == SP_KRZYZ && sp2 == SP_KRZYZ && sp3 == SP_KRZYZ) || (sp1 == SP_KRZYZ && sp5 == SP_KRZYZ && sp9 == SP_KRZYZ) || (sp1 == SP_KRZYZ && sp4 == SP_KRZYZ && sp7 == SP_KRZYZ) || (sp2 == SP_KRZYZ && sp5 == SP_KRZYZ && sp8 == SP_KRZYZ) || (sp3 == SP_KRZYZ && sp5 == SP_KRZYZ && sp7 == SP_KRZYZ) || (sp3 == SP_KRZYZ && sp6 == SP_KRZYZ && sp9 == SP_KRZYZ)|| (sp4 == SP_KRZYZ && sp5 == SP_KRZYZ && sp6 == SP_KRZYZ) || (sp7 == SP_KRZYZ && sp8 == SP_KRZYZ && sp9 == SP_KRZYZ)) {
cout << "KRZYZ WYGRAL !" <<endl;
return 0;
}
}
}
return 0;
}
Po przerobieniu podstawowych pojęć (zmienne, podst. funkcji, podst. pętle, trochę konwersji, if-else, typy wyliczeń) z c++ zrobiłem ten oto program (,który działa lecz jest trochę chaotyczny). Co mógłbym poprawić, ewentualnie douczyć się - aby wykonać do czytelniej i "lepiej" ?