Elevator Saga にチャレンジしてみた & 自動実行できるようにした

Elevator Sagaが社内で再度話題になっていたので、いまさらながらですが、チャレンジしてみました。

Elevator Sagaは、エレベータを操作するプログラムをJavaScriptで書いて実行できるゲームです。全18面あって、クリアの条件が異なります。

f:id:onozaty:20180526123259p:plain

最終的なコードは下記になりました。アロー関数使ってたりするので、IEだと動かないです。

成功率は下記のような形となりました。各Challenge200回実行しています。同じChallengeでも実行毎に難易度がかなり異なる印象で、200回でも収束しているのかちょっと怪しい感じです。

All         :  84.03 (3025/3600)
Challenge  1: 100.00 (200/200)
Challenge  2:  83.50 (167/200)
Challenge  3:  96.50 (193/200)
Challenge  4: 100.00 (200/200)
Challenge  5:  93.00 (186/200)
Challenge  6: 100.00 (200/200)
Challenge  7:  95.00 (190/200)
Challenge  8:  99.00 (198/200)
Challenge  9:  99.50 (199/200)
Challenge 10:  58.50 (117/200)
Challenge 11:  97.00 (194/200)
Challenge 12:  86.50 (173/200)
Challenge 13:  37.50 (75/200)
Challenge 14:  45.00 (90/200)
Challenge 15:  95.00 (190/200)
Challenge 16: 100.00 (200/200)
Challenge 17:  86.50 (173/200)
Challenge 18:  40.00 (80/200)

上記はSeleniumで自動実行するプログラム作って検証しています。プログラムの評価するのに、ある程度繰り返し実行しないと判断できなかったので作りました。

書いてみてかなり楽しめました。ただ、これ以上良くする方法が今のところ思いついていないので、ぜひもっと良いアルゴリズム書けるぜ!!って方は教えてください。

自分の辿った考え方は下記にまとめてあるので、ご参考まで。