| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Dec 2003
Beiträge: 28
| Rekursion
hi, hab eingetlich bis vor kurzem nur mit Java gearbeitet, aber bis auf wenige befehle ist actionscript wie java aufgebaut. ich hab ein kleines problem zum thema rekursion. undzwar hab ich folgende methode: Code: function getDir():Number{
tempdir = dir;
temp = Math.round(Math.random()*100);
if(temp < 51){
if(temp<26){ //oben
dir = 0;
trace(dir);
}
else{ //unten
dir = 1;
trace(dir);
}
}
else{
if(temp <76){ //rechts
dir = 2;
trace(dir);
}
else{ //links
dir = 3;
trace(dir);
}
}
if(dir == tempdir){
trace("Richtungen sind gleich");
dir = _root.getdir();
trace("alte dir :" + tempdir + " , neue Dir : "+ dir);
}
return dir;
} kurz zum verständnix. ich lasse mit ein zahl zwischen 0 und 99 erstellen (temp), die zahlen werden in 4 gruppen zerteilt, also 0-24, 25-49 usw. entspricht die zahl der ersten gruppe, so wird dir auf 0 gesetzt, entspricht sie der 2. gruppe wird sie auf 1 gesetzt... soweit funktioniert ja alles ganz gut. jetzt hab ich mir gedacht, um das genze etwas zu optimieren, wir die methode ein wenig erweitert, sodass bei einem richtungswechsel nicht zwei mal hintereinander die selbe richtung gewählt wird. dazu wird die alte richtung in tempdir gesichert und später mit der neuen dir verglichen. sind beide zahlen gleich, soll die gesammte methode getDir rekursiv aufgerufen werden. beim debuggen tut sich beim erneuten aufruf der methode eigentlich nichts, also der zeige springt nicht wieder zum anfanng der methode um sie nocheinmal abzuarbeiten. das einzige was geschieht ist, dass dir auf undefined gesetzt wird... hab das jetzt eben so geschrieben wie ich es auch in java geschrieben hätte, aber da die script kontrolle sagt, es ist alles richtig sollte es ja eigentlich gehen. this. und _root. hab ich auch schon vor den erneuten aufruf der methode gesetzt, hat aber auch nix gebracht. hoffe ihr könnt mir helfen besten dank agn0 |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |