「Cloud Foundry 百日行」第76日目は、海戦ゲーム Battleboat.js です。
このアプリはロボット相手にゲームをするので対人間のような心理戦が出来ません。純粋に運と計算で勝つしか方法がありません。
海戦ゲームを知らない人も簡単に出来るので一度試してみて下さい。
基本情報
今回の手順の概要は以下の通りです。
- 1) ソースコードの入手
- 2) Cloud Foundry上へのデプロイ
- 3) 動作検証
1. ソースコードの入手
$ git clone https://github.com/Kortaggio/battleboat.git
$ cd battleboat/
battleboat$ ls
css img index.html js LICENSE.txt README.md
Githubからソースコードをcloneしてきます。
2. Cloud Foundry上へのデプロイ
デプロイも中身を見ていただいたらわかる通りこれまで何度となく登場しているStatic_buildpackでOKです。
battleboat$ touch Staticfile
battleboat$ cf push battleboat -m 16M -k 128M
:
-----> Uploading droplet (3.4M)
1 of 1 instances running
App started
OK
App battleboat was started using this command `sh boot.sh`
Showing health and status for app battleboat in org k-nagai / space work as k-nagai...
OK
requested state: started
instances: 1/1
usage: 16M x 1 instances
urls: battleboat.10.244.0.34.xip.io
last uploaded: Wed Oct 7 07:13:01 UTC 2015
stack: cflinuxfs2
buildpack: Static file
state since cpu memory disk details
#0 running 2015-10-07 04:13:08 PM 0.0% 4.7M of 16M 0 of 128M
デプロイ完了です。
3. 動作検証
URLにアクセスします。
少し下にスクロールすると二つのマス目の描いた画面が表示されます。ウィンドウのサイズによっては縦に並んでいるかもしれません。
右のメニューから “Patrol Boat”,”Submarine”,”Destroyer”,”Battleship”,”Aircraft Carrier” と並んでいるのでそれぞれ選んで、”Your Fleet” に配置します。
(参考) 配置する船はそれぞれ2,3,3,4,5マスになっていますので被らないように配置するだけです。縦横変えたい場合は “Rotate Ship” で変えることが出来ます。
配置が完了したら “Start Game” でゲーム開始です。
“Enemy Fleet” にカーソルを合わせて1箇所選びます。相手が船を配置していた場合は赤バツ、外れた場合は白バツになります。この際、相手が何処を選んだかが “Your Fleet” にも表示されます。
これを繰り返して1つの船が破壊されるとそのマスが黒くなり、相手より先に相手が配置したすべての船を破壊すれば勝利です。
問題なく動作しています。
おまけ
READMEに書かれていますが、このゲームはbotの改善の為の勝敗データをGoogle Analyticsを使って集めているようです。利用される方は作者の意図に沿って使って下さいね。
今回使用したソフトウェア
- cf-release (v211)
https://github.com/cloudfoundry/cf-release/tree/v211
( https://github.com/cloudfoundry/cf-release/tree/2121dc6405e0f036efa4dba963f7f49b07e76ffa ) - bosh-lite
https://github.com/cloudfoundry/bosh-lite/tree/552dc6869600c5350eb7ffb4fb9c9c5e79e3889d - CF CLI (v6.12.0-8c65bbd-2015-06-30T00:10:31+00:00)
https://github.com/cloudfoundry/cli/releases/tag/v6.12.0 - Battleboat.js
https://github.com/kortaggio/battleboat/tree/f2e4731000f4893efa88f11a5746621988b31c27