Testaa yhtä ohjainpäätöstä ennen reitityskäytännön lisäämistä
Aloita JavaScript:llä pelin init- ja update-funktioissa ja paina Start tarkkaillaksesi simulaatiota. Käytä pelin sisäistä API-viittausta tarkkaan idle- ja goToFloor-käyttäytymiseen. Ensimmäinen harjoitus on ymmärtää, milloin tyhjäkäynnillä oleva hissi saa seuraavan tehtävänsä. Katso tapahtumaa ja siitä johtuvaa liikettä ennen useiden ehtojen lisäämistä, jotta voit selittää, mikä ohjaimen osa on lähettänyt pyynnön.
Tarkista sitten matkustajien kohteet. Pelkkä liikkuminen ei tarkoita, että matkustajia palvellaan. Lue floor_button_pressed-tapahtuma viitteestä ja vertaa pyyntöjä tarkkailemaasi reittiin. Jos useat hissit toistavat samaa reittiä, jotkut jonot saattavat silti odottaa. Rakenna pienestä ohjaimesta, jonka ymmärrät sen sijaan, että kopioit monimutkaista käytäntöä ja oletat, että se täyttää nykyisen haasteen matkustaja- tai odotusaikatavoitteen.
Vertaa koodin muutosta haasteen todelliseen tavoitteeseen
Lue läpäisyehdot ennen simulaation käynnistämistä ja valitse yksi tarkastettavissa oleva toimintatapa, kuten tyhjäkäynti, toistuvat pysähdykset tai tietyssä kerroksessa odottavat matkustajat. Muuta yksi päätös ja aja uudelleen. Hissin useampi liike ei takaa, että ohjain täyttää haasteen tavoitteen. Vertaa näkyviä jonoja ja näytettävää tulosta tavoitteeseen sen sijaan, että käytät liikettä ainoana onnistumisen merkkinä.
Kun muokkaat destinationQueue suoraan, noudata viitteen vaatimusta kutsua checkDestinationQueue, jotta tarkistettu jono astuu voimaan; normaalit goToFloor-pyynnöt käsittelevät jo jonossa olevia kohteita. Pidä nämä lähestymistavat erillään virheenkorjauksen aikana. Tämä keskus kuvaa selainohjelmointisimulaatiota, ei ohjelmistoa todelliseen hissiin tai tuotannon turvajärjestelmään. Se ei takaa, että yksi ohjain läpäisee jokaisen haasteen. Käytä tarkkaa API-dokumentaatiota pelin sisällä ja kirjaa sitten, mikä tapahtuma ja reititysmuutos paransivat juuri suorittamaasi testiä.
Tarkastele konkreettista arviota katsomalla kerrosta, jossa on jono hissin ollessa käyttämättömänä. Tunnista, mikä ohjaaja lähettää seuraavan goToFloor-pyynnön ja palveleeko pyyntö odottavia matkustajia vai lähettääkö hissin muualle. Muuta tätä yhtä reititysvalintaa ja vertaa sitten haasteen tulosta. Jos useat käsittelijät kilpailevat, yksinkertaista ohjainta, kunnes voit selittää pyyntöjen järjestyksen. Käytä API-viittausta tarkalleen tuetuille tapahtumille. Yhden jonon ja yhden päätöksen tarkkaileminen kerrallaan antaa todisteita päivityksestä väittämättä, että se on universaali optimaalinen ohjain.
Elevator Saga-vinkkejä ja -strategiaa
Valitse vinkki harjoiteltavaksi seuraavalla kierroksella. Tämä lista ei muuta peliä eikä tallenna pelin edistymistä.
Elevator Saga-kysymykset ja vastaukset
Millä kielellä kirjoitan?
Ohjain käyttää JavaScript-ohjainta, ja pelin editorissa on init- ja update-funktiot.
Toimiiko tämä oikealla hissillä?
Ei. Se on kokonaan selainpelissä tapahtuva ohjelmointisimulaatio.
Voinko käyttää sitä koodauksen harjoitteluun?
Kyllä, erityisesti tapahtumapohjainen ohjaus ja pienten muutosten testaus. Peli perustuu magwon MIT-lisensoimaan Elevator Saga-projektiin; se ei ole sertifiointikurssi.
Miksi matkustajat odottavat, vaikka hissi liikkuu?
Toistuva reitti ei automaattisesti palvele kaikkia pyydettyjä kerroksia. Käsittele floor_button_pressed ja määritä kohteet goToFloor-kutsulla. Vertaa jonoja tehtävän tavoitteeseen ennen pysähdysten lisäystä. Suoran destinationQueue-muutoksen jälkeen kutsu checkDestinationQueue; goToFloor hoitaa tavalliset pyynnöt.