ながめも

競技プログラミングについて

codingame:Spring Challenge 2022 ローカル対戦のための環境構築

Codingame、通称コドゲは、開発したゲームAIの強さを競うコンペを主催している会社のサイトです。先日Spring Challenge 2022が始まったばかりですね。

本記事では、Spring Challenge 2022でローカルで対戦する環境を構築するための方法について紹介します。 今回は最低限ローカルで動くところを目的としているため、便利なスクリプトを使った実行などについては触れません。最後に参考記事を載せておいたのでそちらを参考にしていただけたらと思います。また筆者の環境であるmacOS以外についても触れません。ご了承ください。

必要なもの

  • Java8
$ ls /Library/Java/JavaVirtualMachines/
jdk1.8.0_331.jdk

jdk-12.0.1.jdkなどでは動作確認してません。どれがいいのかわからないけど、とりあえず進めます。 Javaのinstall方法については他記事に任せてしまいますが、私はOracleの公式からダウンロードしました。

mavenって何?

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

なるほど。インストールします。

$  brew install mvn

バージョンは、、

$ mvn --version
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: /usr/local/Cellar/maven/3.8.5/libexec
Java version: 18, vendor: Homebrew, runtime: /usr/local/Cellar/openjdk/18/libexec/openjdk.jdk/Contents/Home
Default locale: en_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac"

最新です。これもどれがいいのかよくわからないけど動くのでよし!

学生さんは有料版(IntelliJ IDEA Ultimate) が無料で使えますが、 無料版(Community Edition)でも今回は特に問題ないです。

  • git

githubから公式が提供してる環境をダウンロードするのにあると便利です。

実行手順

  1. ローカルにプロジェクトをダウンロードする
  2. IntelliJでプロジェクトを読み込む
  3. 実行する

1. ローカルにプロジェクトをダウンロードする

こちらのrepositoryにあります。

github.com

任意の場所にcloneします。

$ git clone https://github.com/CodinGame/SpringChallenge2022.git
Cloning into 'SpringChallenge2022'...
remote: Enumerating objects: 124, done.
remote: Counting objects: 100% (124/124), done.
remote: Compressing objects: 100% (95/95), done.
remote: Total 124 (delta 20), reused 120 (delta 17), pack-reused 0
Receiving objects: 100% (124/124), 2.12 MiB | 6.79 MiB/s, done.
Resolving deltas: 100% (20/20), done.
$ ls
SpringChallenge2022

2. IntelliJでプロジェクトを読み込む

IntelliJを起動して右上のOpenからの先程のSpringChallenge2022フォルダを選択して開きます。

こんな画面になればOKです。

2.5 描画moduleにも手を加える

このまま3. に進むと実行はできるけど真っ暗となってしまいます。SpringChallenge2022では描画のリソースにも手を加える必要があるみたいです。npmを使います。

参考: github.com

$ npm --version
6.14.4
$ cd SpringChallenge2022/src/main/resources/view/ && npm ci && npm run start

[8:46:25 PM] File change detected. Starting incremental compilation...

[8:46:25 PM] Found 0 errors. Watching for file changes.

これでOKです。

3. IntelliJで実行する

実行のエントリポイントとなるファイルsrc/test/java/Main.javaを開きます。 compileJavaという関数を呼んでますが、ここのbashスクリプトの実行でこけると悲しいので、Player twoと同じくpythonのスターターに置き換えちゃいましょう。

これでpython vs pythonになりました。

public class Main {の行の左にある実行ボタン押してRun Main.main()を選択すると色々走って(依存関係の解決とかbuildとか?)実行されます。※

実行されました。http://localhost:8888/test.htmlにブラウザからアクセスしてみましょう!

うおー。

最後に

いかがでしたか?ローカル実行環境でAIを育てて、ライバルに差をつけよう! 筆者はまだルールすら把握してません。対戦よろしくお願いします。

以下、過去の記事で参考にさせていただいたものです。わからないことなどあればこちらも参照ください。

koyumeishi.hatenablog.com

w.atwiki.jp


※ 環境によっては以下のようなエラーが出ます。Javaのバージョンが新しいもので実行されてしまってるということなので、設定を変えます。左下の設定ボタンからJava8で実行されるように変更し、Applyボタンを押してOKで閉じて実行しなおしてください。