無料プログラミング対戦ゲームRobocodeの始め方(開発環境)

この記事は約10分で読めます。
スポンサーリンク

Robocode - Battle

こんにちは、鈴木俊吾です。

前回の記事「無料プログラミング対戦ゲームRobocodeの始め方(インストール)」で、Robocodeのインストールとゲームを起動するところまでを確認しました。

今回の記事では、付属エディタを使って最初のプログラムを作成する方法と、IDE(統合開発環境)を使ってプログラムを作成する方法について解説します。
そして、ついでに作成したプログラムを対戦させる方法についても紹介。

ちなみに、使用するIDEは「Intellij IDEA」とします。
やはり、プログラムを組むには断然IDEのほうが良いですからね。

いよいよ、自分のプログラムを対戦させてみます。
ここからきっと楽しくなってきますよ!

Robocode付属エディタで最初のプログラミング

まずは、Robocodeに付属しているエディタでプログラミングする方法です。
こちらの方法であれば、特にエディタやIDEを使わなくてもプログラムを手軽に組めます。
ただ、コード補完が効かないので開発効率は低めになりそう…。
個人的には、後述するIDEを使ったプログラム開発をおすすめします。

Robocodeを起動して、メニューから「Robot」→「Source Editor」を選択します。

Robocode

初回起動時には、コンパイラの設定が行われます。
基本的には、「YES」を選択して、お使いのパソコンのJavaコンパイラを使用するようにしましょう。
設定が終わると、以下のようなエディタが起動します。

Robocode - Editor

Robotの新規作成

メニューの「File」→「New」→「Robot」を選択します。

Robocode - New Robot

ロボット名をきかれますので、お好きな名前を付けます。
ここでは、サンプルとして「MyFirstRobot」とします。

続いて、パッケージ名をきかれます。
これは自分のIDを設定するイメージ。
私の場合は、TwitterのIDである「suzushin7」としてみました。
よく分からない場合は、私と同じようにTwitterのIDにすれば良いと思います。
パッケージ名に使えるのは、基本的には「英数字」と「ピリオド(.)」です。

最初のプログラム

入力が終わると、以下のようなプログラムが自動生成されます。

package suzushin7;
import robocode.*;
//import java.awt.Color;

// API help : https://robocode.sourceforge.io/docs/robocode/robocode/Robot.html

/**
 * MyFirstRobot - a robot by (your name here)
 */
public class MyFirstRobot extends Robot
{
	/**
	 * run: MyFirstRobot's default behavior
	 */
	public void run() {
		// Initialization of the robot should be put here

		// After trying out your robot, try uncommenting the import at the top,
		// and the next line:

		// setColors(Color.red,Color.blue,Color.green); // body,gun,radar

		// Robot main loop
		while(true) {
			// Replace the next 4 lines with any behavior you would like
			ahead(100);
			turnGunRight(360);
			back(100);
			turnGunRight(360);
		}
	}

	/**
	 * onScannedRobot: What to do when you see another robot
	 */
	public void onScannedRobot(ScannedRobotEvent e) {
		// Replace the next line with any behavior you would like
		fire(1);
	}

	/**
	 * onHitByBullet: What to do when you're hit by a bullet
	 */
	public void onHitByBullet(HitByBulletEvent e) {
		// Replace the next line with any behavior you would like
		back(10);
	}
	
	/**
	 * onHitWall: What to do when you hit a wall
	 */
	public void onHitWall(HitWallEvent e) {
		// Replace the next line with any behavior you would like
		back(20);
	}	
}

後は、好きなようにプログラムを編集すれば良いです。
ここでは、とりあえずこのままで。

簡単にですが、このプログラムの動作を解説します。

まず、ロボットはrunメソッドから動作が始まります。
whileループでメインループを作っています。
前進・砲塔回転・後退・砲塔回転を繰り返しています。

ロボットを発見した場合には、onScannedRobotメソッドが実行されます。
ここでは、fireメソッドでパワー1の弾丸を発射しています。

onHitByBulletメソッドは、弾丸が自分のロボットにヒットした時に呼ばれます。
ここでは、ちょっとだけバック「back(10)」するという処理になっているのが分かります。

onHitWallメソッドは、自分のロボットが壁にぶつかった時に呼ばれます。
ここでは、少しバック「back(20)」するという処理になっていますね。

プログラムを編集したら、「File」→「Save」を選択する、または「Ctrl+S」を押します。

コンパイル

プログラムを作成したら、続いて「コンパイル」という作業を行います。
コンパイルというのは、実行できる状態にプログラムを変換する処理です。

メニューの「Compiler」→「Compile」を選択、または「Ctrl+B」を押します。
すると、コンパイル処理が始まります。
「Compiled successfully.」というメッセージが出ればコンパイル完了です。
何かエラーがあると、エラーメッセージが表示されます。
その場合は修正して再コンパイルしましょう。

Robocode - Compile

バトル

それでは、作成したプログラムを対戦させてみましょう!

Robocodeのメイン画面のメニューの「Battle」→「New」を選択します。
すると、以下のようなプログラムの選択画面が表示されます。

Robocode - New Battle

対戦させたいプログラムをダブルクリックで選んでいきます。
さきほど作成したプログラムがコンパイルできていると、リストに表示されているはずです。
「suzushin7」というパッケージが表示されているのが分かりますよね。
ここでは、試しに「suzushin7.MyFirstRobot」と「sample.Walls」を対戦させてみます。

対戦中の画面がこちら。
それぞれのロボットが移動をしたり、弾丸を発射したりしているのが分かります。
「sample.Walls」は、壁沿いを移動しながら攻撃してくるようですね。

Robocode - Battle

対戦が終わると、対戦結果が表示されます。
うん、見事に「suzushin7.MyFirstRobot」が惨敗していますね(笑)。
最初のプログラムのままでは、「sample.Walls」にはとても勝てなさそう。

色々なロボットを対戦させてみて、その動きを観察してみると面白いですよ。
そして、どうしたらそのプログラムに勝てるのか、戦術を考えてみましょう。

Intellij IDEAで最初のプログラミング

Robocode付属のエディタでもプログラミングはできますが…。
開発効率を考えると、やはりIDEを使ったほうが効率的です。
そこで、ここでは「Intellij IDEA」を使ったプログラム開発方法を紹介します。

もし「Intellij IDEA」をインストールしていない場合には…。
この機会にインストールしてみましょう。
無料の「Community」版で大丈夫です。
以下のリンク先からダンロードできます。

IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains

インストールが終わりましたか?
それでは、初期設定をしていきましょう。

新規プロジェクトの作成

「Intellij IDEA」を起動したら、「Create New Project」を選択します。
「Java」を選んで「Next」を押します。
「Project Name」は「Robocode」としてから「Finish」を押します。

Robocodeライブラリの追加

続いて、ライブラリの追加を行います。
「Robocode」上で右クリック→「Open Module Settings」を選択します。

Intellij IDEA - Open Module Settings

「Project Structure」の画面になります。
左側の一覧から「Libraries」を選択します。
そして、「+」→「Java」をクリックしてから、Robocodeのライブラリファイル「robocode.jar」を追加します。
「robocode.jar」は、Robocodeをインストールしたディレクトリの「libs」にあります。
設定が終わると以下のようになりますね。
最後に、「Apply」を押してから、「OK」を押して閉じましょう。

Intellij IDEA - Libraries

最初のプログラムの作成

それでは、プログラムを書きます。

まず、パッケージを作成します。
「Robocode」→「src」を右クリック→「New」→「Package」を選択します。
ここでは、先程と同様に「suzushin7」パッケージを作成してみます。

パッケージを作成したら、ロボットのプログラムを書きます。
ここでは、先程の自動生成されたプログラムをコピペすることとします。
「suzushin7」パッケージ上で右クリック→「New」→「Java Class」を選択して、ロボット名(MyFirstRobot)を入力します。
ファイルができたらプログラムをコピペしましょう。
ここまでで、以下の画面のようになっていればOKです。

Intellij IDEA - First Robot

プロジェクトのビルド

プログラムを作成したら、プロジェクトをビルドします。
メニューの「Build」→「Build Project」を選択します。
エラーが無ければビルドが完了します。

実行設定

続いて、Robocodeを実行するように設定します。
メニューの「Run」→「Run…」→「Edit Configurations…」を選択します。

「Run/Debug Configurations」画面の左側にある「+」→「Application」をクリックします。
そして、「Name」を「Robocode」、「Main Class」を「robocode.Robocode」と設定します。
その後「Apply」を押してから、「Run」を押します。
すると、Robocodeが起動するはずです。
基本的な動作チェックをする場合には、こちらのRobocodeを使うと良いです。

Intellij IDEA - Config

Robocodeの設定

設定するRobocodeは、インストールした側のRobocodeです。
「./robocode.sh」で起動する方ですね。
Windowsであれば、アイコンをダブルクリックで起動します。

メニューの「Options」→「Preferences」を選択します。
「Development Options」タブをクリックしてから「Add」を押して、「Robocode/out/production/Robocode」ディレクトリを追加します。
追加が終わったら「Finish」を押します。

Robocode - Preferences

ここまで設定すると、新規バトル作成時に、開発中のロボットの一覧がリストに表示されると思います。
後は、プログラムの開発・テストを繰り返して改良していきましょう。
お疲れ様でした。

ひとこと

今回の記事では、Robocodeの開発環境の設定方法について見てきました。
「Intellij IDEA」の設定は、やや面倒くさいですが…。
一度やってしまえば、後はサクサクと自由に開発ができますよ!

これで、プログラムを作成する環境が整いました。
これから本格的にプログラミングを開始してみますね。
うん、非常に楽しみです!

もしプログラミングゲームに興味があるのなら…。
あなたもRobocodeをやってみませんか?

Robocode Home

コメント

タイトルとURLをコピーしました