Slide 1

Slide 1 text

robocodeの戦闘情報を記録する 中尾正剛 PayPayカード株式会社 https://x.com/web_shogo_nakao

Slide 2

Slide 2 text

私について 経歴 2011/04 SES(中小企業) 2015/01 (Web系)株式会社セレス 2020/10 (Web系)エキサイト株式会社 2023/11 (金融系)PayPayカード株式会社 PayPayカード株式会社 - プロダクト1本部  - プロダクト開発部 - プロダクト開発5グループ(SRE)

Slide 3

Slide 3 text

目次 はじめに 01 02 03 04 05 robocodeとは robocodeの戦闘情報を記録する 今後の野望 まとめ

Slide 4

Slide 4 text

はじめに 概要 Robocode は、対戦型のロボットシミュレーションゲームです。 ロボット(戦車型ロボット)をプログラミングして、他の人が作ったロボットコードと対戦さ せることが可能です。 ロボットを動作させるフレームワークが用意されているので、ロボットコードの作成に専念す ることができます。 対戦で勝ち残るために色々と工夫してプログラミングしていくことで、楽しくプログラミング が学習できるようになっています。 当初、プログラミング言語には Java が採用されていましたが、最新版では .NET(C#など) もサポートされていて、JavaScript、Pythonで作ることもできるようです。

Slide 5

Slide 5 text

robocodeとは バトルルール 対戦形式: 2台以上のロボットが戦闘を行う。 勝利条件: 相手ロボットを撃墜すること。 ロボットの機能: 移動 (前進、後退、回転)。 武器 (主砲、副砲、レーダー)。 主砲でダメージを受ける。 主砲を使うと体力が減る。 体当たりでダメージを与える。/体当たりされるとダメージを受ける。 実装制限: 自作プログラムのみ使用可能。 外部APIの使用は禁止。 メモリ/CPUリソース使用にも制限あり。

Slide 6

Slide 6 text

robocodeとは

Slide 7

Slide 7 text

robocodeとは

Slide 8

Slide 8 text

robocodeとは

Slide 9

Slide 9 text

操作種類 引数 コマンド 車体前進 距離 forward() 車体後退 距離 back() 車体回転(右) 角度 turnRight() 車体回転(左) 角度 turnLeft() 砲塔回転(右) 角度 turnGunRight() 砲塔回転(左) 角度 turnGunLeft() レーダー回転(右) 角度 turnRaderRight() レーダー回転(左) 角度 turnRaderLeft() 砲撃 火力 fire() robocodeとは

Slide 10

Slide 10 text

robocodeとは @Override public void run() { // Repeat while the bot is running while (isRunning()) { forward(100); turnGunRight(360); back(100); turnGunRight(360); } }

Slide 11

Slide 11 text

robocodeとは @Override public void onScannedBot(ScannedBotEvent e) { fire(1); }

Slide 12

Slide 12 text

robocodeとは @Override public void onHitByBullet(HitByBulletEvent e) { // Calculate the bearing to the direction of the bullet var bearing = calcBearing(e.getBullet().getDirection()); // Turn 90 degrees to the bullet direction based on the bearing turnLeft(90 - bearing); }

Slide 13

Slide 13 text

robocodeの戦闘情報を記録する バトルルールの 外部APIの使用は禁止。 ー>ファイルに書き込みはOK

Slide 14

Slide 14 text

robocodeの戦闘情報を記録する バトルルールの 外部APIの使用は禁止。 ー>ファイルに書き込みはOK  ー>fluent-bit使って戦闘記録を集計できるんじゃね?

Slide 15

Slide 15 text

robocodeとは

Slide 16

Slide 16 text

robocodeの戦闘情報を記録する やってみる

Slide 17

Slide 17 text

robocodeとは

Slide 18

Slide 18 text

今後の野望

Slide 19

Slide 19 text

今後の野望