Witam. Od razu po skończeniu odcinku Pana Mirosława nt. kółka i krzyżyk w podejściu obiektowym wpadłem na pomysł, żeby dla złapania wprawy zrobić możliwość gry z komputerem(najprostsza możliwość, funkcja rand() )
Kod Pana Mirosława: (jest dosyć długi) https://pastebin.com/rnQxuHz1
I jeżeli chciałbym wpleść funkcję, która będzie wywoływana po każdym ruchu gracza, aby wykonać ruch komputera to dostaję błąd.
Przykład funkcji:
void komp()
{
srand( time( NULL ) );
int los = rand()%9+1;
switch(los)
{
case 1:
if (p1=='n')
{
pole1->Picture->LoadFromFile("img/x.bmp");
p1='x';
kto='o';
pole1->Enabled=false;
break;
}
case 2:
if (p2=='n'){
pole2->Picture->LoadFromFile("img/x.bmp");
p2='x';
kto='o';
pole2->Enabled=false;
break;
}
case 3:
if (p3=='n'){
pole3->Picture->LoadFromFile("img/x.bmp");
p3='x';
kto='o';
pole2->Enabled=false;
break;
}
case 4:
if (p4=='n'){
pole4->Picture->LoadFromFile("img/x.bmp");
p4='x';
kto='o';
pole4->Enabled=false;
break;
}
case 5:
if (p5=='n'){
pole5->Picture->LoadFromFile("img/x.bmp");
p5='x';
kto='o';
pole2->Enabled=false;
break;
}
case 6:
if (p6=='n'){
pole6->Picture->LoadFromFile("img/x.bmp");
p6='x';
kto='o';
pole6->Enabled=false;
break;
}
case 7:
if (p7=='n'){
pole7->Picture->LoadFromFile("img/x.bmp");
p7='x';
kto='o';
pole7->Enabled=false;
break;
}
case 8:
if (p8=='n'){
pole8->Picture->LoadFromFile("img/x.bmp");
p8='x';
kto='o';
pole8->Enabled=false;
break;
}
case 9:
if (p9=='n'){
pole9->Picture->LoadFromFile("img/x.bmp");
p9='x';
kto='o';
pole9->Enabled=false;
break;
}
}
}
Funkcja nie jest dokończona(w else chciałbym wywołać ją drugi raz, żeby jeszcze raz zalosowało zmienną). No ale funkcja jest nieważna, ważny jest błąd, o którym wspominałem:
[C++ Error] Unit1.cpp(87): E2451 Undefined symbol 'pole2'
Domyślam się, a nawet wiem o co chodzi, ale nie mam pojęcia jak to ominąć. W sensie, że chodzi pewnie o to, że funkcja nie ma dostępu do tych zmiennych. Możliwe, że całkowicie źle się za to zabieram, ale proszę o wskazówki i z góry dziękuję.
Pozdrawiam!