Witam,
Postanowiłem stworzyć swój pierwszy samodzielny projekt - grę w odkrywanie par kart - na pamięć. Gra śmiga. Niestety natrafiłem na jeden problem: Stworzyłem guzik do resetowania gry. Po jego naciśnięciu jednak gra się nie zeruje lecz wywala błąd "project project1.exe raised exception class e stack overflow with message 'stack overflow'" i podkreśla linię
wybor = random(6)+1;
W funkcji
void WybierzObrazek(TImage* obrazek)
{
wybor = random(6)+1;
switch(wybor)
{
case 1:
{
if(licznik1 <= 1)
{
obrazek->Picture->LoadFromFile("img/p1.bmp");
obrazek->Tag = 1;
licznik1++;
}
else
{
WybierzObrazek(obrazek);
}
}break;
case 2:
{
if(licznik2 <= 1)
{
obrazek->Picture->LoadFromFile("img/p2.bmp");
obrazek->Tag = 2;
licznik2++;
}
else WybierzObrazek(obrazek);
}break;
case 3:
{
if(licznik3 <= 1)
{
obrazek->Picture->LoadFromFile("img/p3.bmp");
obrazek->Tag = 3;
licznik3++;
}
else WybierzObrazek(obrazek);
}break;
case 4:
{
if(licznik4 <= 1)
{
obrazek->Picture->LoadFromFile("img/p4.bmp");
obrazek->Tag = 4;
licznik4++;
}
else WybierzObrazek(obrazek);
}break;
case 5:
{
if(licznik5 <= 1)
{
obrazek->Picture->LoadFromFile("img/p5.bmp");
obrazek->Tag = 5;
licznik5++;
}
else WybierzObrazek(obrazek);
}break;
case 6:
{
if(licznik6 <= 1)
{
obrazek->Picture->LoadFromFile("img/p6.bmp");
obrazek->Tag = 6;
licznik6++;
}
else WybierzObrazek(obrazek);
}break;
}//swich
Kod guzika do resetowania gry:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
licznik1 = 0; licznik2 = 0; licznik3 = 0;
licznik4 = 0; licznik5 = 0; licznik4 = 0;
odkryte_karty = 0;
odkryte_pary = 0;
f1->Visible = false;
f2->Visible = false;
f3->Visible = false;
f4->Visible = false;
f5->Visible = false;
f6->Visible = false;
f7->Visible = false;
f8->Visible = false;
f9->Visible = false;
f10->Visible = false;
f11->Visible = false;
f12->Visible = false;
// randomize();
WybierzObrazek(f1);
WybierzObrazek(f2);
WybierzObrazek(f3);
WybierzObrazek(f4);
WybierzObrazek(f5);
WybierzObrazek(f6);
WybierzObrazek(f7);
WybierzObrazek(f8);
WybierzObrazek(f9);
WybierzObrazek(f10);
WybierzObrazek(f11);
WybierzObrazek(f12);
}
W załączniku cały projekt.
Z góry dziękuję za pomoc