Załóżmy, że się da i coś wykombinowałeś z tablicą o sporym rozmiarze. Ale jaki masz pomysł na ustalenie warunku końca gry?
Autor wspomnianego przez Ciebie kursu rozwiązał planszę 3x3 tak
void sprawdz()
{
if((p1==p2 && p2==p3 && p1!='n') ||
(p4==p5 && p5==p6 && p4!='n') ||
(p7==p8 && p8==p9 && p7!='n') ||
(p1==p4 && p4==p7 && p7!='n') ||
(p2==p5 && p5==p8 && p2!='n') ||
(p3==p6 && p6==p9 && p3!='n') ||
(p1==p5 && p5==p9 && p1!='n') ||
(p3==p5 && p5==p7 && p3!='n'))
{
char * w;
if (kto=='x') w="Wygrywa kółko!";
else w="Wygrywa krzyżyk!";
Application->MessageBox(w, "Koniec gry", MB_OK);
}
}
Przy tak dużej planszy ten sposób odpada, a na dodatek najprawdopodobniej odpada także tworzenie tych kratek wrzucaniem obiektów na formę (no chyba, że jesteś mega uparty i cierpliwy xD).