Teszteljen egy vezérlődöntést az útválasztási szabályzat hozzáadása előtt
Kezdje a JavaScript-vel a játék init és update függvényeiben, és nyomja meg a Start gombot a szimuláció megfigyeléséhez. Használja a játékon belüli API-referenciát a idle esemény és goToFloor pontos viselkedéséhez. Az első gyakorlat annak megértése, hogy egy üresjárati lift mikor kapja meg a következő feladatát. Nézze meg az eseményt és az abból eredő mozgást, mielőtt több feltételt adna hozzá, így elmagyarázhatja, hogy a vezérlő melyik része adott ki kérést.
Ezután ellenőrizze az utasok úticéljait. A mozgás önmagában nem jelenti azt, hogy az utasokat kiszolgálják. Olvassa el a floor_button_pressed eseményt a hivatkozásban, és hasonlítsa össze a kéréseket a megfigyelt útvonallal. Ha több lift megismétli ugyanazt az útvonalat, néhány sor továbbra is várakozhat. Építsen egy kis vezérlőből, amit megért, ahelyett, hogy lemásolna egy összetett szabályzatot, és feltételezné, hogy az kielégíti az aktuális kihívás utas- vagy várakozási idejét.
Hasonlítsa össze a kódváltást a kihívás tényleges céljával
A szimuláció elindítása előtt olvassa el az kihívás teljesítési feltételét, és válasszon egy viselkedést, amelyet ellenőrizni szeretne, mint például az üresjárat, az ismételt megállások vagy az utasok egy adott emeleten. Változtass meg egy döntést, és indítsd újra a szimulációt. A lift gyakoribb mozgása nem bizonyítja, hogy a vezérlő teljesíti a kihívást. Hasonlítsa össze a látható sorokat és a megjelenített eredményt a céllal, ahelyett, hogy a mozgást használná a siker egyetlen jeleként.
A destinationQueue közvetlen szerkesztése során kövesse a hivatkozás követelményét a checkDestinationQueue meghívására, hogy a módosított sor életbe lépjen; a normál goToFloor kérések már kezelik a sorban álló célhelyeket. A hibakeresés során ezeket a megközelítéseket különítse el. Ez a központ egy böngésző programozási szimulációt ír le, nem egy valódi lifthez vagy egy gyártási biztonsági rendszerhez való szoftvert. Nem garantálja, hogy egy vezérlő minden kihíváson megfelel. Használja a pontos API-dokumentációt a játékon belül, majd rögzítse, hogy melyik esemény és útvonal-módosítás javította az éppen futtatott tesztet.
Konkrét áttekintéshez nézzen meg egy sorban álló emeletet, miközben a lift tétlen. Határozza meg, hogy melyik kezelő adja ki a következő goToFloor kérést, és hogy a kérés kiszolgálja-e a várakozó utasokat, vagy máshová küldi-e az liftet. Módosítsa ezt az útvonalválasztást, majd hasonlítsa össze a kihívás eredményét. Ha több kezelő verseng, egyszerűsítse a vezérlőt, amíg meg nem tudja magyarázni a kérések sorrendjét. Használja az API-referenciát a pontosan támogatott eseményekhez. Egy-egy sor és egy döntés megfigyelése bizonyítékot ad a felülvizsgálatra anélkül, hogy azt állítaná, hogy ez egy univerzális optimális vezérlő.
Elevator Saga tippek és stratégia
Jelölj meg egy tippet a következő játékhoz. Ez a lista nem módosítja a játékot és nem menti a haladásodat.
Elevator Saga kérdések és válaszok
Milyen nyelven írjak?
A kontroller a JavaScript-t használja, a játék szerkesztőjében található init és update függvényekkel.
Ez egy igazi liftet működtet?
Nem. Ez egy programozási szimuláció, amely teljes egészében a böngészős játékon belül zajlik.
Használhatom kódolás gyakorlására?
Igen, különösen az eseményvezérelt vezérlés és a kis változtatások tesztelése. A játék a magwo MIT által licencelt Elevator Saga projektjén alapul; nem minősítő tanfolyam.
Miért várnak az utasok, ha a lift mozog?
Az ismétlődő útvonal nem szolgál ki automatikusan minden kért emeletet. Kezeld a floor_button_pressed eseményt, és használd a goToFloor hívást a célokhoz. Új megállók előtt vesd össze a sorokat a kihívás céljával. A destinationQueue közvetlen módosítása után hívd a checkDestinationQueue függvényt; a goToFloor a szokásos kéréseket kezeli.
Irányítás és teljes játékleírás
Irányítás és teljes játékleírás
Elevator Saga indítása