Testa ett kontrollbeslut innan du lägger till en routingpolicy
Börja med JavaScript i spelets init- och update-funktioner och tryck på Start för att observera simuleringen. Använd API-referensen i spelet för exakt idle och goToFloor beteende. En första övning är att förstå när en ledig hiss får sin nästa uppgift. Titta på händelsen och den resulterande rörelsen innan du lägger till flera villkor, så att du kan förklara vilken del av kontrollern som utfärdade en begäran.
Inspektera sedan passagerarnas destinationer. Enbart rörelser betyder inte att passagerarna betjänas. Läs händelsen floor_button_pressed i referensen och jämför förfrågningar med rutten du observerar. Om flera hissar upprepar samma rutt kan vissa köer fortfarande vänta. Bygg från en liten styrenhet som du förstår istället för att kopiera en komplex policy och anta att den uppfyller den aktuella utmaningens passagerar- eller väntetidsmål.
Jämför en kodändring med utmaningens faktiska mål
Innan simuleringen startas, läs villkoret för att klara utmaningen och välj ett beteende att inspektera, såsom tomgångstid, upprepade stopp eller passagerare som väntar på en viss våning. Ändra ett beslut och kör igen. Att hissen rör sig oftare garanterar inte att styrenheten klarar utmaningen. Jämför de synliga köerna och det visade resultatet med målet istället för att använda rörelse som det enda tecknet på framgång.
När du redigerar destinationQueue direkt, följ referensens krav att anropa checkDestinationQueue så att den reviderade kön träder i kraft; normala goToFloor förfrågningar hanterar redan köade destinationer. Håll dessa tillvägagångssätt åtskilda under felsökning. Detta center beskriver en webbläsarprogrammeringssimulering, inte programvara för en riktig hiss eller ett produktionssäkerhetssystem. Det garanterar inte att en kontroller klarar varje utmaning. Använd den exakta API-dokumentationen i spelet och registrera sedan vilken händelse och routingändring som förbättrade det specifika testet du just körde.
För en konkret genomgång, titta på en våning med kö medan en hiss blir ledig. Identifiera vilken hanterare som utfärdar nästa goToFloor begäran och om den förfrågan tjänar de väntande passagerarna eller skickar hissen någon annanstans. Ändra det ena ruttvalet och jämför sedan utmaningsresultatet. Om flera hanterare tävlar, förenkla kontrollanten tills du kan förklara sekvensen av förfrågningar. Använd API-referensen för de exakta händelserna som stöds. Att observera en kö och ett beslut i taget ger dig bevis för en revision utan att hävda att det är en universell optimal styrenhet.
Elevator Saga tips och strategi
Markera ett tips att öva på nästa omgång. Listan ändrar inte spelet och sparar inte dina framsteg.
Elevator Saga frågor och svar
Vilket språk skriver jag?
Kontrollen använder JavaScript, med funktionerna init och update i spelets editor.
Fungerar den här en riktig hiss?
Nej. Det är en programmeringssimulering helt inuti webbläsarspelet.
Kan jag använda den för att öva kodning?
Ja, särskilt händelsestyrd styrning och testning av små förändringar. Spelet är baserat på magwos MIT-licensierade Elevator Saga-projekt; det är inte en certifieringskurs.
Varför väntar passagerare fast hissen rör sig?
En upprepad rutt betjänar inte automatiskt alla önskade våningar. Hantera floor_button_pressed och använd goToFloor för destinationerna. Jämför köerna med målet innan fler stopp läggs till. Ändrar du destinationQueue direkt behöver du anropa checkDestinationQueue; goToFloor hanterar vanliga förfrågningar redan.
Kontroller och fullständiga instruktioner
Kontroller och fullständiga instruktioner
Spela Elevator Saga