2009-11-28
■別におぼえたくないのに…Javaの方から勝手に脳に入り込んできて、気がつけばJavaを習得してしまうゲーム「Robocode」
HelloWorldやっても面白くねーんだよ!!
皆さんこんにちは。
Google App Engine (GAE)でJavaがサポートされ、
PythonはスルーしたけどJavaならやりたい!でもJava未経験!
GAE/Jに手を出してみたけど、結局hello, world!のサンプルアプリを公開したまま
放置した状態になっていませんか?
僕はそうです!
- Java使えたら楽しいだろうなー
リア充へのあこがれ
と、常々思っていつつも、Javaの最初の面倒臭さの前にいつもやる気喪失するんですよね。
- HelloWorldひとつやるのにpublic static void main()書くなんて面倒臭すぎです
- コンパイルなんて面倒でやってられません
まさに俺!
Java習得の壁、「とっかかりの面倒臭さ」を排除して、
しかも 遊んでるだけなのにいつの間にかJavaを憶えさせてくれる、
そんなフリーゲームがありました。
頼りになるリアクション
それが Robocode(ロボコード)
ロボコードは学習ツールではありません。これは本当にただのゲームです。
どんなゲームかということは、この画像を見れば一発でわかります。
でたー小林さんのマッハチョップハメ!! でリアル乱闘になるのがくにおくん名物
くにおくんの熱血行進曲の勝ち抜き格闘や、大乱闘スマッシュブラザーズのような、
戦車によるバトルロイヤルです。
この手のゲームで、熱くなりすぎてリアル乱闘に発展した思い出はありませんか?
他の戦車を破壊して最後まで残れば勝利ですが、
このゲームは、自機をコントローラーなどで操作できません。
自機を操作できないだって!
それじゃあ、どうやって自機を動かすんだ?
どうやって戦うんだ? …ハッ!まさか!
そうです、このゲームは自機にJavaで作戦を与え、命令することで、戦車が自動で戦うゲームです。
ゲームが始まると一切の命令ができないので、あらかじめJavaで作戦と命令をプログラムしておく必要があります。
そして、このプログラム次第で、戦車の強さが悟空にもヤムチャにもなるのがこのゲームの面白さ。
- 隅に追い詰められたらどうする?
- 被弾したときどうする?
- 射程内に敵を発見したらどうする?
- 砲撃?弾の強さは?
- 接近?回避?
- 敵を複数見つけたときはどうする?
- 被弾しにくいポジションはどこだ?
- 一定の移動パターンだと移動先を狙って砲撃されはしないか?
もちろん、これらすべてを考える必要はありません。
じっと動かずひたすら砲撃してる戦車だって作れますし、
突き詰めれば、まるで人間がコントローラで操作しているような戦車だって作れます。
敷居は超低く、奥は超深いRobocodeで、
Javaで遊びましょう!!
Javaのほうから勝手に自分の体にしみついて来てくれるよ!
あ、インストールとセットアップは超簡単だから心配しなくて大丈夫です。
http://sourceforge.net/projects/robocode/files/ にアクセスし、
ダウンロードしたセットアップファイルをダブルクリックしてインストール!
さっそく、Battle > Newでバトルをやってみましょう!
自分の戦車があれば、ここで選択してバトルに参加させることができます。
バトル実行できた!インストールからバトル開始までわずか1分、超カンタン!
次は、自分の戦車を作って、戦わせてみましょう!
メニューから Robot > Editorで戦車エディタが開きます!
戦車エディタから File > New > Robotで新しい戦車を作ります。
戦車に名前をつけてください! 戦車… 戦車といえば
アヴドゥルを… 殺したなどと… ウソをつくなぁぁぁぁぁぁーーーッ!!!
戦車の名前を入力します
パッケージ名を入力します。
すごくざっくりいうと、戦車の苗字みたいなものです。
ここではJPPにしようとしましたが、パッケージ名は全部小文字にしてくださいと怒られました。
ので、jppにしてOKしました。
キターーーー!戦車の動作を記述するプログラムが表示されました!
既にいくつかの動作がデフォルトで実装されていますね。
- 前進と後退を繰り返しながら砲身を右回転させておけ!
- 敵を見つけたら: パワー1の砲撃をしろ!
- 被弾したら: 砲弾に対して垂直に方向転換し、弾道から逃げろ!
こんなことが書かれています。
メニューの Compiler > Compileで戦車を行えば、戦車は完成です!
またまた早い!ここまでわずか2分!
(戦車の名前で迷って時間を食わなければ…。)
コンパイルもメニューから簡単にできて素敵ですね。
こうして作成した戦車は、バトル時に選択できるようになります!
作成した戦車は公開できます!
皆の戦車を集めてワイワイ対戦しても楽しいし、
世界中の強豪戦車に挑戦して楽しむのもアリだと思います!
また、デバッグコンソールで、自機の状況を出力し把握することもできます。
自機の方向、砲身の方向、フィールド上の位置、確認できる情報はさまざまです。
自機の名前をクリックするとデバッグコンソールが開きます。
自機の動作を把握したら、がしがし強化して遊んじゃいましょう!
自分の戦車がどんどん賢くなっていくのはとても楽しいですよ!
そしてなにより、
遊んでいるだけで、
Javaのほうから勝手に、あなたの頭の中に
入り込んできてしまうこのすごさ、
ぜひ体験してください!
参考サイト:
ダウンロードページ(sourceforge)
http://sourceforge.net/projects/robocode/files/
日本語ドキュメント
http://www.geocities.co.jp/SiliconValley/9155/
http://www.solar-system.tuis.ac.jp/Java/robocode_api/
関心空間: ゲームを楽しんでいるうちにJAVAも自然に身につくという最近見たアプリケーションの中でも最も感動した物の一つだ。
http://www.kanshin.com/keyword/114539
@IT:知的ゲーム「Robocode」でJavaのチャンピオンになろう
http://www.atmarkit.co.jp/fjava/column/andoh/andoh13.html
twitterアカウントです。よろしければフォローおねがいします。
- to-Rの日記 - 今日のclipper
- Think different. /*ここはチラシの裏*/ - おぼえがき
- ついったまごほうれん草 - [daily]2009年11月29日のつぶやき
- src’s note - 気になる技術メモ
- R, GPGPU, Genetic Statistics - 別におぼえたくないのに…Javaの方...
- M日記 - 簿記結果?
- pn-goの日記
- tasukexの日記 - Mon, Nov 30
- プリキュア様崇拝日記 - 別におぼえたくないのに…Javaの方から勝手...
- キュン☆キュン★乙女ワールド - [http://d.hatena.ne.jp/green0/20...
- 3459 http://b.hatena.ne.jp/
- 1748 http://www.golgo31.net/
- 1385 http://b.hatena.ne.jp/hotentry
- 863 http://www.sleipnirstart.com/
- 619 http://reader.livedoor.com/reader/
- 510 http://ig.gmodules.com/gadgets/ifr?view=home&url=http://choichoi.sakura.ne.jp/hatena_bookmark.xml&nocache=0&up_num_feed=30&lang=ja&country=us&.lang=ja&.country=us&synd=ig&mid=147&ifpctok=-2067098811490254124&exp_split_js=1&exp_track_js=1&exp_new_js_flags=
- 404 http://blog.livedoor.jp/akio_live1/
- 401 http://twitter.com/
- 395 http://b.hatena.ne.jp/hotentry/it
- 358 http://d.hatena.ne.jp/
- 2009-11-22 もうカツ丼でいいよな 5/53 9%
- 2009-11-24 ほっしーの技術ネタ備忘録 5/54 9%
- 2009-11-22 風柳メモ 5/73 6%
- 2009-11-22 zuuブログ 5/96 5%
- 2009-11-24 Perl入門〜サンプルコードによるPerl入門〜 5/86 5%
- 2009-11-22 - the Glassess of Rimless!! - 4/71 5%