Elevator Sagaが社内で再度話題になっていたので、いまさらながらですが、チャレンジしてみました。
Elevator Sagaは、エレベータを操作するプログラムをJavaScriptで書いて実行できるゲームです。全18面あって、クリアの条件が異なります。
最終的なコードは下記になりました。アロー関数使ってたりするので、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で自動実行するプログラム作って検証しています。プログラムの評価するのに、ある程度繰り返し実行しないと判断できなかったので作りました。
書いてみてかなり楽しめました。ただ、これ以上良くする方法が今のところ思いついていないので、ぜひもっと良いアルゴリズム書けるぜ!!って方は教えてください。
自分の辿った考え方は下記にまとめてあるので、ご参考まで。