S
Ich denke (als Anfänger) auch, dass es an der Rekursonstiefe liegen könnte. Auszerdem denke ich, dass nicht der Zweck erfüllt wird, den du haben willst mit der Rekursion.
Ein Beispiel, wo es schiefgehen könnte.
du bist ein Feld vom rechten Rand entfernt als weg finden aufgerufen wird. Die Funktion würfelt rechts, ok, also gehst du nach rechts (ein for-Schleifendurchlauf) beim nächsten durchlauf kannst du nicht mehr nach rechts, die Methode ruft sich selbst auf, zeichnet diesmal 3 Felder nach unten, dann nach links, dann wieder nach unten, und kommt aber dann wieder zurück in die Schleife, wo du angefangen hast sie rekursiv aufzurufen! (den Teil scheinst du zu vergessen, dass du dahin wieder zurückkommst) Und jetzt geht es genau da weiter, wo du die Methode aufgerufen hast, das case wird beendet und jetzt kommt dann eben der letzte durchlauf der for-schleife, wo diesmal nur ein Feld nach rechts gezeichnet wird (statt wie du wünschst immer 3) und dann ist die Methode fertig.
Auf gleiche Weise kann es dann eben auch zu Problemen und Sackgassen kommen. (rechts, unten, links, oben... und jetzt hängen wir fest)
Von daher würde ich das mit dem rekursiven in dieser Form sein lassen. das musst du dir anders überlegen. (vielleicht bisschen ähnlich wie beim sudoku, man versucht eine Zahl, ruft sudoku selbst wieder auf, und wenn man irgendwann ankommt dass nichts mehr geht geht man soviele schritte zurück bis man wieder irgendwo eine Zahl einsetzen kann)