Testen Sie eine Controller-Entscheidung, bevor Sie eine Routing-Richtlinie hinzufügen
Beginnen Sie mit JavaScript in den Funktionen init und update des Spiels und drücken Sie Start, um die Simulation zu beobachten. Verwenden Sie die API-Referenz im Spiel für das genaue Verhalten von idle und goToFloor. Eine erste Übung besteht darin, zu verstehen, wann ein leerstehender Aufzug seine nächste Aufgabe erhält. Beobachten Sie dieses Ereignis und die daraus resultierende Bewegung, bevor Sie mehrere Bedingungen hinzufügen, damit Sie erklären können, welcher Teil des Controllers eine Anfrage ausgegeben hat.
Dann inspizieren Sie die Passagierziele. Bewegung allein bedeutet nicht, dass Passagiere bedient werden. Lesen Sie das Ereignis floor_button_pressed in der Referenz und vergleichen Sie die Anforderungen mit der Route, die Sie beobachten. Wenn mehrere Aufzüge die gleiche Route wiederholen, kann es trotzdem zu Warteschlangen kommen. Bauen Sie auf einem kleinen Controller auf, den Sie verstehen, anstatt eine komplexe Richtlinie zu kopieren und davon auszugehen, dass sie das Fahrgast- oder Wartezeitziel der aktuellen Herausforderung erfüllt.
Vergleichen Sie eine Codeänderung mit dem eigentlichen Ziel der Herausforderung
Lesen Sie vor dem Start der Simulation die Erfolgsbedingung und wählen Sie ein Verhalten aus, das Sie überprüfen möchten, z. B. Leerlaufzeit, wiederholte Stopps oder Passagiere, die auf einer bestimmten Etage warten. Ändern Sie eine Entscheidung und starten Sie die Simulation erneut. Häufigere Aufzugsbewegungen garantieren nicht, dass der Controller die Herausforderung besteht. Vergleichen Sie die sichtbaren Warteschlangen und das angezeigte Ergebnis mit dem Ziel, anstatt Bewegung als einziges Zeichen für den Erfolg zu verwenden.
Wenn Sie destinationQueue direkt bearbeiten, befolgen Sie die Anforderung der Referenz, checkDestinationQueue aufzurufen, damit die überarbeitete Warteschlange wirksam wird. Normale goToFloor-Anfragen verarbeiten bereits Ziele in der Warteschlange. Behalten Sie diese Ansätze beim Debuggen bei. Dieses Zentrum beschreibt eine Browser-Programmiersimulation, keine Software für einen echten Aufzug oder ein Produktionssicherheitssystem. Es ist nicht garantiert, dass ein Controller jede Herausforderung bestehen wird. Verwenden Sie die genaue API-Dokumentation im Spiel und notieren Sie dann, welches Ereignis und welche Routing-Änderung den jeweiligen Test, den Sie gerade ausgeführt haben, verbessert hat.
Beobachten Sie für eine konkrete Überprüfung eine Etage mit einer Warteschlange, während ein Aufzug stillsteht. Identifizieren Sie, welcher Handler die nächste goToFloor-Anfrage ausgibt und ob diese Anfrage die wartenden Passagiere bedient oder den Aufzug an einen anderen Ort schickt. Ändern Sie diese eine Routing-Auswahl und vergleichen Sie dann das Ergebnis der Herausforderung. Wenn mehrere Handler konkurrieren, vereinfachen Sie den Controller, bis Sie die Reihenfolge der Anfragen erklären können. Verwenden Sie die API-Referenz für die genauen unterstützten Ereignisse. Wenn Sie jeweils eine Warteschlange und eine Entscheidung beobachten, erhalten Sie Hinweise auf eine Revision, ohne zu behaupten, dass es sich um einen universellen optimalen Controller handelt.
Elevator Saga Tipps und Strategie
Markiere einen Tipp für deine nächste Runde. Diese Liste verändert das Spiel nicht und speichert keinen Spielfortschritt.
Elevator Saga – Fragen und Antworten
In welcher Sprache schreibe ich?
Der Controller verwendet JavaScript, wobei im Editor des Spiels die Funktionen init und update vorhanden sind.
Funktioniert damit ein echter Aufzug?
Nein. Es handelt sich um eine Programmiersimulation, die vollständig innerhalb des Browserspiels stattfindet.
Kann ich es zum Üben des Programmierens verwenden?
Ja, insbesondere ereignisgesteuerte Steuerung und das Testen kleiner Änderungen. Das Spiel basiert auf magwos MIT-lizenziertem Elevator Saga-Projekt; es handelt sich nicht um einen Zertifizierungskurs.
Warum warten Fahrgäste, obwohl der Aufzug fährt?
Eine feste wiederholte Route bedient nicht automatisch alle gewünschten Stockwerke. Verarbeite floor_button_pressed und nutze goToFloor für die Ziele der Fahrgäste. Vergleiche Warteschlangen mit dem Aufgabenziel, bevor du Halte ergänzt. Nach direkter Änderung von destinationQueue musst du checkDestinationQueue aufrufen; goToFloor erledigt normale Zielanfragen bereits selbst.
Steuerung und vollständige Spielanleitung
Steuerung und vollständige Spielanleitung
Elevator Saga spielen