[ascoders] Re: Rekursive Funktion

  • From: André Michelle <am@xxxxxxxxxxxxxxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Fri, 1 Aug 2003 19:54:58 +0200

> Du kannst ja mit Threads arbeiten... *lach* Sorry, so weit sind wir in
> AS ja noch nicht ;(

Kenn ich auch glatt nicht :p

> Aber kannst Du nicht mit zwei Funktionen arbeiten, die sich immer
> wechselseitig rekursiv aufrufen?
> Funktion A -> Aufruf Funktion B -> Aufruf Funktion A -> Aufruf Funktion
> B -> Ende Rekursion -> Rückkehr zu A -> Rückkehr zu B -> Rückkehr zu A
>
> Oder irgendwie so... :) Das geht bestimmt (wenn überhaupt) auch mit drei
> oder mehr Funktionen... was willst Du denn machen?

Ich baue einen A-Star Pathfinder. Ich glaube ich habe eine besonders
schnelle Lösung gefunden,
zumindest für Labyrinthe wie PacMan ( Ich arbeite an einem besonders
originalen Clone ).

Das Problem ist, daß ein rekursiver Funktionsaufruf eine Schleife
verursacht, bevor ich den nächsten starte.
Ein Aufruf entspricht der nächsten Richtung. Durch das Problem sind die
ersten Richtungen immer dominant!
Heisst der berechnete Pfad hängt von der Reihenfolge ab, wann welche
Richtung "gescannt" wird.

[pseudo]
 var recursivPathfinding = function ( x0 , y0 , path_code , path ) {
codecodecode
 if ( path_code & 1 ) {
   if ( ~map[ y0 + 1 ][ x0 ] & 1 ) { recursivPathfinding ( x0 , y0 + 1 , 4 ,
path ); }
   if ( ~map[ y0 - 1 ][ x0 ] & 1 ) { recursivPathfinding ( x0 , y0 - 1 , 8 ,
path ); }
   if ( ~map[ y0 ][ x0 + 1 ] & 1 ) { recursivPathfinding ( x0 + 1 , y0 , 1 ,
path ); }
  }
[/pseudo]

Damit habe ich einen DownDrall :o)

Ich habe jetzt keine Vorstellung, ob das jetzt überhaupt noch mit rekursiven
Funktionen geht.
Man sehen, was man mit 2 Funktionen machen kann.


aM
http://www.andre-michelle.com

------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: