Elevator Saga rehberi

Elevator Saga: kontroller, strateji ipuçları ve yanıtlar; oyuna ve ayrıntılı talimatlara bağlantılar.

Elevator Saga oyna

Asansör kontrol ünitesinin programlanması

JavaScript, init ve update fonksiyonlarını düzenleyin, ardından kumandanızı çalıştırmak için Başlat'a basın.

Kontroller ve tam oyun talimatları

Yönlendirme kuralları eklemeden önce bir idle olayını test etme

Olay tabanlı bir kontrolcü, asansör idle olduğunda ona yeni bir görev verebilir.

Kontroller ve tam oyun talimatları

Yönlendirme politikası eklemeden önce bir denetleyici kararını test edin

Oyunun init ve update işlevleri bölümünde JavaScript ile başlayın ve simülasyonu gözlemlemek için Başlat'a basın. Tam idle olayı ve goToFloor davranışı için oyun içi API referansını kullanın. İlk alıştırma, boşta kalan bir asansörün bir sonraki görevini ne zaman alacağını anlamaktır. Birkaç koşulu eklemeden önce bu olayı ve sonuçta ortaya çıkan hareketi izleyin, böylece denetleyicinin hangi bölümünün bir istek yayınladığını açıklayabilirsiniz.

Daha sonra yolcu varış noktalarını inceleyin. Hareket tek başına yolculara hizmet verildiği anlamına gelmez. Referanstaki floor_button_pressed olayını okuyun ve istekleri gözlemlediğiniz rotayla karşılaştırın. Birden fazla asansörün aynı rotayı tekrarlaması durumunda bazı kuyruklar yine de bekleyebilir. Karmaşık bir politikayı kopyalamak ve bunun mevcut zorluğun yolcu veya bekleme süresi hedefini karşıladığını varsaymak yerine, anladığınız küçük bir denetleyiciden oluşturun.

Bir kod değişikliğini mücadelenin gerçek hedefiyle karşılaştırın

Simülasyonu başlatmadan önce görevin başarı koşulunu okuyun ve boşta kalma süresi, tekrarlanan duraklamalar veya belirli bir katta bekleyen yolcular gibi incelenecek bir davranış seçin. Bir kararı değiştirin ve simülasyonu tekrar çalıştırın. Asansörün daha sık hareket etmesi, kontrolcünün görev hedefini karşıladığını göstermez. Hareketi başarının tek işareti olarak kullanmak yerine görünür sıraları ve görüntülenen sonuçları hedefle karşılaştırın.

Doğrudan destinationQueue düzenlerken, revize edilen kuyruğun etkili olması için referansın checkDestinationQueue çağrılması gerekliliğini izleyin; normal goToFloor istekleri zaten sıraya alınmış hedefleri işliyor. Hata ayıklama sırasında bu yaklaşımları farklı tutun. Bu merkez, gerçek bir asansör veya üretim güvenlik sistemi için yazılım değil, bir tarayıcı programlama simülasyonunu açıklamaktadır. Bir denetleyicinin her zorluğu geçeceğini garanti etmez. Oyunun içindeki API belgelerini tam olarak kullanın, ardından hangi olayın ve yönlendirme değişikliğinin az önce çalıştırdığınız testi iyileştirdiğini kaydedin.

Somut bir inceleme için, asansörün boşta kaldığı sırada kuyruğun olduğu bir katı izleyin. Bir sonraki goToFloor isteğini hangi işleyicinin yayınladığını ve bu isteğin bekleyen yolculara mı hizmet ettiğini yoksa asansörü başka bir yere mi gönderdiğini belirleyin. Bu yönlendirme seçeneğini değiştirin, ardından sorgulama sonucunu karşılaştırın. Birkaç işleyici rekabet ediyorsa, isteklerin sırasını açıklayana kadar denetleyiciyi basitleştirin. Tam olarak desteklenen etkinlikler için API referansını kullanın. Bir seferde bir kuyruğu ve bir kararı gözlemlemek, bunun evrensel bir optimal denetleyici olduğunu iddia etmeden, size revizyon için kanıt sağlar.

Elevator Saga ipuçları ve stratejisi

Sonraki turda denemek için bir ipucu işaretleyin. Bu liste oyunu değiştirmez ve oyun ilerlemesini kaydetmez.

Elevator Saga ile ilgili sorular ve cevaplar

Hangi dilde yazıyorum?

Kontrol cihazı JavaScript'yi kullanır; oyun editöründe ise init ve update işlevleri bulunur.

Bu gerçek bir asansör mü çalıştırıyor?

Hayır. Tamamen tarayıcı tabanlı bir oyunun içinde yer alan bir programlama simülasyonudur.

Bunu kodlama pratiği yapmak için kullanabilir miyim?

Evet, özellikle olay odaklı kontrol ve küçük değişikliklerin test edilmesi açısından. Oyun, magwo'nun MIT lisanslı Elevator Saga projesine dayanmaktadır; bir sertifika kursu değildir.

Asansör hareket ederken yolcular neden bekliyor?

Sabit rotayı tekrarlamak istenen tüm katları otomatik karşılamaz. floor_button_pressed olayını işleyin, hedefleri goToFloor ile verin. Durak eklemeden kuyrukları görev hedefiyle karşılaştırın. destinationQueue doğrudan değişirse checkDestinationQueue çağırın; goToFloor normal istekleri zaten işler.

Kontroller ve tam oyun talimatları

Kontroller ve tam oyun talimatları

Elevator Saga oyna