今回、ちょっとした縁によりBonanzaをブラウザで動かしてみました。Bonanza 6.0のソースコードをほぼそのまま利用して、EmscriptenでJavaScriptに変換しています。
技術的なことに興味はない、すぐに遊んでみたい!という方はこちらからどうぞ。
初回に45Mほどダウンロードが発生します!ご注意ください。
http://tkihira.github.io/embona/index.html
- 上のURLに行くとCPU vs CPUの戦いが始まります。自分で戦いたい方は新規対局で設定してください
- UI周りは相当手を抜いて実装したために多数バグがあるかと思います。ご容赦ください
- ブラウザが固まったりしませんが、CPU思考中に手を入力したり新規対局するのには大変反応が重い(というか思考が終わるまで反応しない)のにご注意ください
- データダウンロードで43Mbyte、さらに内部で展開してハッシュテーブルなどを用意し、最終的に数百Mのメモリを消費します。モバイル端末ではほぼ間違いなく動きません
- コンソールログを開くと、Bonanzaの出力をほぼそのまま楽しむことも出来ます
Emscriptenは今後重要になる技術だと踏んでいますが、残念ながら日本語の資料があまりないようです。今回の移植を利用して、初めてEmscriptenを触る人向けに記事を書いてみます。