B
Wieso?
Das ist ja mein bearbeitetes Bild oder liegt das an der Seite wegen Werbung oder so?
Naja, jedenfalls habe ich mein Problem jetzt so gelöst:
int ZaehlerX=0;
int ZaehlerY=0;
int Doppelt=0;
int Zahl=0;
for (int y=0; y<12; y++)
{
for (int x=0; x<12; x++)
{
Doppelt = 0;
do
{
if (Spielfeld[x][y].Feld == "N")
{
Form1->Canvas->Draw(x*36-x,y*36-y,Image1->Picture->Bitmap);
if (Doppelt == 1)
{
Spielfeld[x][y].Wert = Zahl;
Doppelt = 0;
} else {
Zahl = random(9)+1;
Spielfeld[x][y].Wert = Zahl;
}
ZaehlerX = x;
ZaehlerY = y;
while (ZaehlerX > 0)
{
ZaehlerX--;
if ((Spielfeld[ZaehlerX][y].Feld == "M") || (Spielfeld[ZaehlerX][y].Feld == "S"))
{
break;
}
if (Spielfeld[ZaehlerX][y].Wert == Zahl)
{
Doppelt = 1;
break;
}
}
while (ZaehlerY > 0)
{
ZaehlerY--;
if ((Spielfeld[x][ZaehlerY].Feld == "M") || (Spielfeld[x][ZaehlerY].Feld == "S"))
{
break;
}
if (Spielfeld[x][ZaehlerY].Wert == Zahl)
{
Doppelt = 1;
break;
}
}
if (Doppelt == 1)
{
Zahl = Zahl + 1;
if (Zahl > 9) Zahl = 1;
Spielfeld[x][y].Wert = 0;
}
}
} while(Doppelt == 1);
}
}
Ich habe eine do while schleife verwendet, der abbrecht, wenn Doppelt = 0 ist, und nun funktioniert es.
Edit: Ich habe festgestellt, das sich manchmal die Schleife aufhängt und somit das ganze Programm anhält.
Könnte vieleicht jemand kucken, ob ich alles richtig gemacht habe?
MfG