Robocode IntellijIdea 開発環境設定

# Robocodeホームページ
[https://robocode.sourceforge.io/](https://robocode.sourceforge.io/)

# Robocodeファイル ダウンロード
[https://github.com/robo-code/robocode/releases](https://github.com/robo-code/robocode/releases)
任意のフォルダにダウンロードする
例
ファイル robocode-1.9.5.4-setup.jar

# Robocodeインストール
 ダウンロードしたファイルをダブルクリックすると、インストーラーが起動する
 図
 ![install1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/5e6f75f8-9a28-871b-9c89-1fe79b53c5b4.png)
 インストールする場所を変更する場合は、[いいえ]

図
 ![install2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/84e674c7-8bf6-b171-5289-0dffb3082c14.png)
 Robocodeを起動するショートカットをスタートメニューに登録するか確認画面

 図
 ![install3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/55931e14-1686-d3d9-0a0e-cc40128b3da1.png)
 .battleファイル、.brファイルの関連付けをレジストリに登録するか確認画面
 ``` diff
- Would you like to create file associations for Robocode in the Windows Registry for the file extensions .battle and .br? Please notice that you might need to grant permission to add the file associations in the Registry, and you must be an administrator or granted permission to change the registry.
+ Robocode用のファイル拡張子.battleと.brのWindowsレジストリへのファイル関連付けを作成しますか？レジストリにファイルの関連付けを追加するには、権限を付与する必要があることに注意してください。また、レジストリを変更するには、管理者権限を持っているか、権限を付与されている必要があります。
 ```

# IntelliJ IDEA Community Editionをインストール
[https://www.jetbrains.com/idea/download/?section=windows](https://www.jetbrains.com/idea/download/?section=windows)

※ この記事では、バージョン 2022.3.3を使用

# 新規プロジェクト作成
図
![project1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/336773ab-cde5-2fe1-bdef-e5bb3b6b6fcb.png)

図
![project2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/9c985271-3629-5506-4592-2983a2d7ab9a.png)
Robocodeは、JDK1.8を使用する
※
JDK11は、WARNINGが表示されるがRobocodeは起動した
JDK17、JDK18、JDK21は、Robocodeは起動しなかった

※
Mainクラスは必要ない

# プロジェクト構造 設定
[ファイル] - [プロジェクト構造]
図
![project3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/aca926ed-9c44-9a3b-7526-fb75f713443c.png)
[モジュール] - [依存関係]タブ
[+] - [JARまたはディレクトリ]
Robocodeをインストールしたフォルダ内の\libs\robocode.jarファイルを指定する
例
C:\robocode\libs\robocode.jar

# 実行構成の編集 設定
[実行] - [実行構成の編集]
図
![project4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/30473d6d-5af9-e702-bf29-8bc38e60ae64.png)
[+] - [アプリケーション]

図
![project5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/907e46b6-1450-757c-56c9-2235cdf81661.png)
[オプションを変更] - [VMオプションの追加]
- VMオプション
-Xmx512M -Dsun.io.useCanonCaches=false -Ddebug=true
- メインクラス
robocode.Robocode

# Robotファイル作成

図
![p.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/c0317f90-0442-1385-b74a-6b0a1f6951b5.png)
[src]を右クリック - [新規] - [パッケージ]
例 testパッケージを作成

図
![p1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/4c61acba-5a22-2dda-9403-10db73edb6a8.png)
[testパッケージ]を右クリック - [新規] - [Javaクラス]
例 TestRobot.javaを作成
``` Java:TestRobot.java
package test;

import robocode.HitByBulletEvent;
import robocode.Robot;
import robocode.ScannedRobotEvent;

public class TestRobot extends Robot {

    public void run() {

        while (true) {
            ahead(100); // Move ahead 100
            turnGunRight(360); // Spin gun around
            back(100); // Move back 100
            turnGunRight(360); // Spin gun around
        }
    }

    /**
     * Fire when we see a robot
     */
    public void onScannedRobot(ScannedRobotEvent e) {
        fire(1);
    }

    /**
     * We were hit!  Turn perpendicular to the bullet,
     * so our seesaw might avoid a future shot.
     */
    public void onHitByBullet(HitByBulletEvent e) {
        turnLeft(90 - e.getBearing());
    }
}
```

# Robocodeを起動
[実行] - [実行 MyRobocode]
Robocodeが起動する

図
![robocode1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/c84b7a40-d365-1daf-d846-cee974ac20fc.png)

# 作成したRobotファイルをRobocodeに登録
Robocodeの
[Options] - [Preferences]
図
![robocode2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/0337506e-2196-1e4c-cc8b-eb3c59896093.png)

図
![robocode3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/c442ddea-597a-46b8-3cc4-51b1bd097fc3.png)
RobocodeのPrefencesダイアログの
[Development Options]タブ - [Add]
Intellij Ideaで作成したプロジェクト内の\out\production\MyRobocodeフォルダを指定する
[Finish]

図
![robocode4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/22cb79d4-f6a6-c37e-d763-a530a8267b9f.png)

# 作成したRobotを表示
Robocodeの
[Battle] - [New]

図
![robocode5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/4febb78e-43da-d2cd-6fe4-812090c5bdf3.png)

- Package
test
- Robots
TestRobot*

[Add->]で、Robotを2つ以上追加する
[Start Battle]で、対戦開始

図
![robocode6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99276/854143df-cd73-ad38-f803-b4f64acb2873.png)