Před přidáním zásady směrování otestujte jedno rozhodnutí řadiče
Začněte s JavaScript ve funkcích init a update hry a stiskněte Start pro sledování simulace. Pro přesné chování události idle a goToFloor použijte referenční API ve hře. Prvním cvičením je pochopit, kdy nečinný výtah dostane svůj další úkol. Před přidáním několika podmínek sledujte tuto událost a výsledný pohyb, abyste mohli vysvětlit, která část ovladače vydala požadavek.
Poté zkontrolujte destinace cestujících. Samotný pohyb neznamená, že jsou cestující obsluhováni. Přečtěte si událost floor_button_pressed v referenci a porovnejte požadavky s trasou, kterou pozorujete. Pokud několik výtahů opakuje stejnou trasu, některé fronty mohou stále čekat. Sestavte si z malého ovladače, kterému rozumíte, místo abyste kopírovali složitou politiku a za předpokladu, že uspokojí cíl aktuální výzvy pro cestující nebo čekací dobu.
Porovnejte změnu kódu se skutečným cílem výzvy
Před spuštěním simulace si přečtěte podmínku splnění úkolu a vyberte jedno chování, které chcete zkontrolovat, jako je doba nečinnosti, opakované zastávky nebo cestující čekající na určitém podlaží. Změňte jedno rozhodnutí a spusťte simulaci znovu. Častější pohyb výtahu neznamená, že řídicí program splní úkol. Porovnejte viditelné fronty a zobrazený výsledek s cílem a nepoužívejte pohyb jako jedinou známku úspěchu.
Při přímé editaci destinationQueue postupujte podle požadavku reference volat checkDestinationQueue, aby se revidovaná fronta projevila; normální goToFloor požadavky již zpracovávají cíle ve frontě. Udržujte tyto přístupy při ladění odlišné. Toto centrum popisuje simulaci programování prohlížeče, nikoli software pro skutečný výtah nebo bezpečnostní systém výroby. Nezaručuje, že jeden ovladač projde každou výzvou. Použijte přesnou dokumentaci API uvnitř hry a poté zaznamenejte, která událost a změna směrování zlepšila konkrétní test, který jste právě spustili.
Pro konkrétní recenzi sledujte patro s frontou, když je výtah nečinný. Zjistěte, který handler zadává další požadavek goToFloor a zda tento požadavek slouží čekajícím cestujícím, nebo posílá výtah jinam. Změňte tuto jednu volbu směrování a poté porovnejte výsledek výzvy. Pokud soutěží několik handlerů, zjednodušte kontrolor, dokud nevysvětlíte pořadí požadavků. Pro přesné podporované události použijte referenci rozhraní API. Sledování jedné fronty a jednoho rozhodnutí najednou vám poskytne důkaz pro revizi, aniž byste tvrdili, že se jedná o univerzální optimální kontrolér.
Tipy a strategie pro Elevator Saga
Označte tip pro příští hru. Tento seznam nemění hru ani neukládá herní postup.
Otázky a odpovědi k Elevator Saga
Jakým jazykem píšu?
Ovladač používá JavaScript s funkcemi init a update v editoru hry.
Obsluhuje to skutečný výtah?
Ne. Je to programovací simulace kompletně uvnitř prohlížečové hry.
Můžu ho použít k procvičování kódování?
Ano, zejména ovládání řízené událostmi a testování malých změn. Hra je založena na projektu Elevator Saga od společnosti magwo s licencí MIT; nejedná se o certifikační kurz.
Proč cestující čekají, přestože výtah jezdí?
Opakovaná trasa automaticky neobslouží všechna požadovaná patra. Zpracujte floor_button_pressed a cíle zadejte přes goToFloor. Před přidáním zastávek porovnejte fronty s cílem úlohy. Po přímé změně destinationQueue zavolejte checkDestinationQueue; běžné požadavky už zpracuje goToFloor.