hi,
Das könnte funktionieren!
Ich werde versuchen, den Gedanken umzusetzen.
Noch ein Vorschlag:
Es ist nicht unbedingt nötig, die Funktionen alle zu "doppeln", also zu vorwaerts() noch eine extra Funktion gehe_wirklich_vorwaerts() zu schreiben - sondern stattdessen könntest du die Funktionen auch mit einem optionalen Parameter aufrufen.
Ist kein Parameter gesetzt, macht die Funktion nur ihren Eintrag ins Arrays - für deine Schüler ändert sich nichts, die rufen immer noch vorwaerts() auf.
In deiner Funktion, die am Ende das Array mit den gesammelten Answeisungen durchläuft, rufst du dann aber vorwaerts(true) o.ä. auf, und lässt die Funktion daraufhin entscheiden, nicht den Array-Eintrag vorzunehmen, sondern ihre _wirkliche_ Funktionalität auszuführen.
Siehe dazu http://de.selfhtml.org/javascript/objekte/function.htm#arguments ff.
function vorwaerts() {
if(vorwaerts.arguments.length > 0 && vorwaerts.arguments[0] == true) {
// Code, um Niki wirklich vorwärts zu bewegen
}
else {
// Code, der Eintrag ins Anweisungs-Array macht
}
}
Aufruf von vorwaerts() macht jetzt den Eintrag ins Array;
vorwaerts(true), nachher von dir beim Durchlaufen des Arrays mittels setTimeout aufgerufen, bewegt Niki wirklich einen Schritt nach vorne.
gruß,
wahsaga
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }