Moin,
ich habe eine Frage bezüglich der Rekursion. Ich frage mich, was genau abläuft, wenn man ein return hat, indem nicht wirklich was zurück gegeben wird.
[CODE lang="java" title="Minesweeper"]char benutztesFeld[][] = new char[12][16];
public void aufdeckenNull(int x, int y){
char besetzt = 'B'
if (x < 0 || x > 11 || y < 0 || y > 15) {
return;
}
if (benutztesFeld[x][y] == besetzt) {
return;
}
if (benutztesFeld[x][y] != besetzt) {
benutztesFeld[x][y] = besetzt;
aufdeckenNull(x + 1, y);
aufdeckenNull(x - 1, y);
aufdeckenNull(x, y - 1);
aufdeckenNull(x, y + 1);
}
}
}[/CODE]
Vielleicht kann mir das auch jemand anhand meines Programms erklären. Hierbei handelt es sich um Minesweeper und die Aufdeckung.
Ich frage mich eigentlich, wohin man springt mit dem return und und wie weiß das Programm, welches aufdeckenNull(x,y) er als nächstes nehmen muss?
Edit* springt man dann quasi vom return zum nächsten aufdeckenNull(x-1,y) und beim nächsten return zum aufdecken(x,y-1) usw.?
Vielleicht hat jemand einen Tipp.
Danke Zeppi
ich habe eine Frage bezüglich der Rekursion. Ich frage mich, was genau abläuft, wenn man ein return hat, indem nicht wirklich was zurück gegeben wird.
[CODE lang="java" title="Minesweeper"]char benutztesFeld[][] = new char[12][16];
public void aufdeckenNull(int x, int y){
char besetzt = 'B'
if (x < 0 || x > 11 || y < 0 || y > 15) {
return;
}
if (benutztesFeld[x][y] == besetzt) {
return;
}
if (benutztesFeld[x][y] != besetzt) {
benutztesFeld[x][y] = besetzt;
aufdeckenNull(x + 1, y);
aufdeckenNull(x - 1, y);
aufdeckenNull(x, y - 1);
aufdeckenNull(x, y + 1);
}
}
}[/CODE]
Vielleicht kann mir das auch jemand anhand meines Programms erklären. Hierbei handelt es sich um Minesweeper und die Aufdeckung.
Ich frage mich eigentlich, wohin man springt mit dem return und und wie weiß das Programm, welches aufdeckenNull(x,y) er als nächstes nehmen muss?
Edit* springt man dann quasi vom return zum nächsten aufdeckenNull(x-1,y) und beim nächsten return zum aufdecken(x,y-1) usw.?
Vielleicht hat jemand einen Tipp.
Danke Zeppi