Hatena::Diary

a_a___a_a

2009-11-28

別におぼえたくないのに…Javaの方から勝手に脳に入り込んできて、気がつけばJavaを習得してしまうゲーム「Robocode」

HelloWorldやっても面白くねーんだよ!!



皆さんこんにちは。

Google App EngineGAE)でJavaがサポートされ、

PythonはスルーしたけどJavaならやりたい!でもJava未経験!

GAE/Jに手を出してみたけど、結局hello, world!のサンプルアプリを公開したまま

放置した状態になっていませんか?

僕はそうです!



  • Java使えたら楽しいだろうなー
  • Java覚えて仕事の案件こなしたいなー

f:id:green0:20091128011005j:image

リア充へのあこがれ



、常々思っていつつも、Javaの最初の面倒臭さの前にいつもやる気喪失するんですよね。

  • HelloWorldひとつやるのにpublic static void main()書くなんて面倒臭すぎです
  • eclipseの使い方憶えるのが面倒だし eclipse重すぎてやる気になりません

f:id:green0:20091128011004j:image

まさに俺!



Java習得の壁、「とっかかりの面倒臭さ」を排除して、

しかも 遊んでるだけなのにいつの間にかJavaを憶えさせてくれる、

そんなフリーゲームがありました。

f:id:green0:20091128015147j:image

頼りになるリアクション



それが Robocode(ロボコード)

f:id:green0:20091128015148j:image


ロボコードは学習ツールではありません。これは本当にただのゲームです。

どんなゲームかということは、この画像を見れば一発でわかります。

f:id:green0:20091128091834j:image

f:id:green0:20091128094701j:image

でたー小林さんのマッハチョップハメ!! でリアル乱闘になるのがくにおくん名物


くにおくんの熱血行進曲の勝ち抜き格闘や、大乱闘スマッシュブラザーズのような、

戦車によるバトルロイヤルです。

この手のゲームで、熱くなりすぎてリアル乱闘に発展した思い出はありませんか?



他の戦車を破壊して最後まで残れば勝利ですが、

このゲームは、自機をコントローラーなどで操作できません。

自機を操作できないだって!

それじゃあ、どうやって自機を動かすんだ?

どうやって戦うんだ? …ハッ!まさか!


そうです、このゲームは自機にJavaで作戦を与え、命令することで、戦車が自動で戦うゲームです。

ゲームが始まると一切の命令ができないので、あらかじめJavaで作戦と命令をプログラムしておく必要があります。

そして、このプログラム次第で、戦車の強さが悟空にもヤムチャにもなるのがこのゲームの面白さ。

f:id:green0:20091128104052j:image

ヤムチャって舞空術つかえたっけ?



  • 隅に追い詰められたらどうする?
  • 被弾したときどうする?
  • 射程内に敵を発見したらどうする?
    • 砲撃?弾の強さは?
    • 接近?回避?
  • 敵を複数見つけたときはどうする?
  • 被弾しにくいポジションはどこだ?
  • 一定の移動パターンだと移動先を狙って砲撃されはしないか?

もちろん、これらすべてを考える必要はありません。

じっと動かずひたすら砲撃してる戦車だって作れますし、

突き詰めれば、まるで人間がコントローラで操作しているような戦車だって作れます。

敷居は超低く、奥は超深いRobocodeで、

Javaで遊びましょう!!

Javaのほうから勝手に自分の体にしみついて来てくれるよ!


あ、インストールとセットアップは超簡単だから心配しなくて大丈夫です。

SDKインストールは割愛します)

f:id:green0:20091128111015j:image

http://sourceforge.net/projects/robocode/files/ にアクセスし、

ダウンロードしたセットアップファイルをダブルクリックしてインストール



f:id:green0:20091128114740j:image

さっそく、Battle > Newでバトルをやってみましょう!



f:id:green0:20091128114741j:image

自分の戦車があれば、ここで選択してバトルに参加させることができます。



f:id:green0:20091128120240j:image

バトル実行できた!インストールからバトル開始までわずか1分、超カンタン!


次は、自分の戦車を作って、戦わせてみましょう!

メニューから Robot > Editorで戦車エディタが開きます!

戦車エディタから File > New > Robotで新しい戦車を作ります。

戦車に名前をつけてください! 戦車… 戦車といえば

シルバーチャリオッツ!!

f:id:green0:20091128182250j:image

アヴドゥルを… 殺したなどと… ウソをつくなぁぁぁぁぁぁーーーッ!!!


f:id:green0:20091128180738j:image

戦車の名前を入力します



f:id:green0:20091128180739j:image

パッケージ名を入力します。

すごくざっくりいうと、戦車の苗字みたいなものです。

ここではJPPにしようとしましたが、パッケージ名は全部小文字にしてくださいと怒られました。

ので、jppにしてOKしました。



f:id:green0:20091128184328j:image

キターーーー!戦車の動作を記述するプログラムが表示されました!

既にいくつかの動作がデフォルトで実装されていますね。

  • 前進と後退を繰り返しながら砲身を右回転させておけ!
  • 敵を見つけたら: パワー1の砲撃をしろ!
  • 被弾したら: 砲弾に対して垂直に方向転換し、弾道から逃げろ!

こんなことが書かれています。

メニューの Compiler > Compileで戦車を行えば、戦車は完成です!

またまた早い!ここまでわずか2分!

(戦車の名前で迷って時間を食わなければ…。)

コンパイルもメニューから簡単にできて素敵ですね。

こうして作成した戦車は、バトル時に選択できるようになります!

作成した戦車は公開できます!

皆の戦車を集めてワイワイ対戦しても楽しいし、

世界中の強豪戦車に挑戦して楽しむのもアリだと思います!



また、デバッグコンソールで、自機の状況を出力し把握することもできます。

自機の方向、砲身の方向、フィールド上の位置、確認できる情報はさまざまです。

f:id:green0:20091128192937j:image

自機の名前をクリックするとデバッグコンソールが開きます。

自機の動作を把握したら、がしがし強化して遊んじゃいましょう!

自分の戦車がどんどん賢くなっていくのはとても楽しいですよ!



そしてなにより、

遊んでいるだけで、

Javaのほうから勝手に、あなたの頭の中に

入り込んできてしまうこのすごさ、

ぜひ体験してください!



参考サイト:

ダウンロードページ(sourceforge) 

http://sourceforge.net/projects/robocode/files/


日本語ドキュメント 

http://www.geocities.co.jp/SiliconValley/9155/


API(命令群)日本語リファレンス

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アカウントです。よろしければフォローおねがいします。

http://twitter.com/a_a___a_a

 

 

 

 

 

じゃばじゃばじゃばじゃば 2009/11/29 09:48 懐かしいのでコメントしました ^ ^;
僕もロボコードでJavaの勉強したクチです。
強い戦車のコード落してよく研究しましたよ。
あの戦車達の動きが妙に面白かったですね ^ ^
今は卒業してトップコーダーやってますけども。

伊織伊織 2009/11/29 10:12 多少はJava使えるけど、Javaが嫌いです。
でもこのゲームは楽しそうなので、Javaが好きになれるかもしれませんwww
面白そうなゲームの紹介をありがとうございます!

とおりすがりとおりすがり 2009/11/29 14:31 今時Javaなんて・・・時代はPythonかRubyでしょ

ネタにマジレス?ネタにマジレス? 2009/11/29 17:50 >>今時Javaなんて・・・時代はPythonかRubyでしょ
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20090522/330533/
どちらも、2009年のデータですが、
PythonとRubyを足してもJavaの半分にも及ばない現状について
コメントをお願いします。

blue765lightblue765light 2009/11/29 22:42 あ、これ学校の授業でやったぞ! でも結局弱いままで\(^o^)/になったのは内緒ですが。

LogosukeLogosuke 2009/11/30 00:07 卒研メンバー内で流行りましたー。しかし強い戦車を作るにはプログラミング能力より物理の能力が求められてくるかもwでも最初にJavaに慣れ親しむには良いですねー。

matebumatebu 2009/11/30 01:44 今時Javaなんて…金稼げるのは.NETでしょ

gungnir_odingungnir_odin 2009/11/30 08:53 懐かし〜♪私もこれでJavaを勉強しました(・ω・)
IBM主催の大会で、初心者の部2位だったのは過去の栄光w

fmactionfmaction 2009/11/30 21:58 Javaやる時には、参考にさせていただきます!!
ゲーム開発面白そうですね!!

とおりすがり2とおりすがり2 2009/11/30 23:04 そのままやったらエラーでてコンパイルでけん><

アブドゥルアブドゥル 2009/12/01 00:05 カルネージハートをjavaにした感じのゲームだな

テンプレどぞーテンプレどぞー 2009/12/01 01:23 今時${BAD_LANG}なんて…時代は${FAV_LANG}でしょ。

BAD_LANG=あなたの嫌いな言語
FAV_LANG=あなたの好きな言語

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

おとなり日記