Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
robocodeの戦闘情報を記録する.pdf
Search
Naka Sho
November 11, 2024
0
17
robocodeの戦闘情報を記録する.pdf
Naka Sho
November 11, 2024
Tweet
Share
More Decks by Naka Sho
See All by Naka Sho
型安全性で考えること
shogonakao
0
60
OSS公開までの流れ
shogonakao
0
280
Javaはレガシーではない!
shogonakao
0
300
SpringBootでAPI開発
shogonakao
0
110
エキサイトブログ刷新に向けて
shogonakao
0
58
【エキサイトブログリビルド】Spring Boot × MyBatis × FreeMarker を使って、データベースの接続先を安全に変更します。
shogonakao
1
600
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Why Our Code Smells
bkeepers
PRO
334
57k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
The Pragmatic Product Professional
lauravandoore
31
6.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Writing Fast Ruby
sferik
627
61k
Embracing the Ebb and Flow
colly
84
4.5k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Transcript
robocodeの戦闘情報を記録する 中尾正剛 PayPayカード株式会社 https://x.com/web_shogo_nakao
私について 経歴 2011/04 SES(中小企業) 2015/01 (Web系)株式会社セレス 2020/10 (Web系)エキサイト株式会社 2023/11 (金融系)PayPayカード株式会社
PayPayカード株式会社 - プロダクト1本部 - プロダクト開発部 - プロダクト開発5グループ(SRE)
目次 はじめに 01 02 03 04 05 robocodeとは robocodeの戦闘情報を記録する 今後の野望
まとめ
はじめに 概要 Robocode は、対戦型のロボットシミュレーションゲームです。 ロボット(戦車型ロボット)をプログラミングして、他の人が作ったロボットコードと対戦さ せることが可能です。 ロボットを動作させるフレームワークが用意されているので、ロボットコードの作成に専念す ることができます。 対戦で勝ち残るために色々と工夫してプログラミングしていくことで、楽しくプログラミング が学習できるようになっています。
当初、プログラミング言語には Java が採用されていましたが、最新版では .NET(C#など) もサポートされていて、JavaScript、Pythonで作ることもできるようです。
robocodeとは バトルルール 対戦形式: 2台以上のロボットが戦闘を行う。 勝利条件: 相手ロボットを撃墜すること。 ロボットの機能: 移動 (前進、後退、回転)。 武器
(主砲、副砲、レーダー)。 主砲でダメージを受ける。 主砲を使うと体力が減る。 体当たりでダメージを与える。/体当たりされるとダメージを受ける。 実装制限: 自作プログラムのみ使用可能。 外部APIの使用は禁止。 メモリ/CPUリソース使用にも制限あり。
robocodeとは
robocodeとは
robocodeとは
操作種類 引数 コマンド 車体前進 距離 forward() 車体後退 距離 back() 車体回転(右)
角度 turnRight() 車体回転(左) 角度 turnLeft() 砲塔回転(右) 角度 turnGunRight() 砲塔回転(左) 角度 turnGunLeft() レーダー回転(右) 角度 turnRaderRight() レーダー回転(左) 角度 turnRaderLeft() 砲撃 火力 fire() robocodeとは
robocodeとは @Override public void run() { // Repeat while the
bot is running while (isRunning()) { forward(100); turnGunRight(360); back(100); turnGunRight(360); } }
robocodeとは @Override public void onScannedBot(ScannedBotEvent e) { fire(1); }
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); }
robocodeの戦闘情報を記録する バトルルールの 外部APIの使用は禁止。 ー>ファイルに書き込みはOK
robocodeの戦闘情報を記録する バトルルールの 外部APIの使用は禁止。 ー>ファイルに書き込みはOK ー>fluent-bit使って戦闘記録を集計できるんじゃね?
robocodeとは
robocodeの戦闘情報を記録する やってみる
robocodeとは
今後の野望
今後の野望