= CROBOTS
CROBOTSとは,1985年にTom Poindexterによって開発された
ロボット対戦シミュレーションゲームである.
ロボットの開発者は,C言語のサブセットを用いてロボットの
行動アルゴリズムを記述し,架空のフィールド上でそのロボットに
戦闘を行わせる.
CROBOTSは,CROBOTS Main Siteにおいて1991年から毎年世界大会が取り行われるなど,
今なお高い人気を誇るプログラミングゲームである.
今回の企画では,このCROBOTSを題材とし,アルゴリズムの実装を競う.
また,実装に費すことのできる時間が少ないことを考慮し,
実装は各大学ごとのチームに分かれて行うこととした.
== CROBOTSのルール
CROBOTSのルールの概要は,以下のようなものである.
1. フィールド内において,2〜4機のロボットが戦闘を行う.
このフィールドは,一辺1000mの正方形である.
ロボットは,他のロボットや壁に衝突するとダメージを受ける.
2. ロボットは互いにミサイルを用いて攻撃する.
ミサイルは着弾すると爆発し,この爆発に巻き込まれるとダメージを
受ける.このダメージは,爆心に近いほど大きい.
また,ミサイルの射程は700mであり,一度に一発までしか発射できない.
3. 攻撃されたロボットはダメージを受け,ダメージが一定以上蓄積すると破壊される.
ロボットは以下の行動によりダメージを受ける.また,それぞれのダメージを示す.
・他のロボット,壁との衝突:2%
・ミサイルの爆発に巻き込まれる(爆心から40m以内):3%
・ミサイルの爆発に巻き込まれる(爆心から20m以内):5%
・ミサイルの爆発に巻き込まれる(爆心から5m以内):10%
このダメージが100%蓄積すると,ロボットは破壊され,戦闘から離脱する.
4. 最後まで破壊されずに生き残ったロボットを勝者とする.
=== ロボットの機能
ロボットは,以下の4つの機能を持つ.
・自分の状態の把握
自分の位置,速度,ダメージを把握することができる.
・移動
任意の方向に,任意の速度で移動できる.ただし,最高速度は秒速200mである.
また,移動方向の変更は,速度が秒速100m以下の時に限り行うことができる.
・戦場にいる他のロボットのスキャン
幅10度までの任意の視野角で,任意の方向をスキャンする.スキャンされた
範囲に他のロボットが存在した場合,そのロボットまでの距離を測定する.
スキャン範囲に複数のロボットが存在した場合,最も近いロボットまでの距離を
知ることができる.
視野角を広げると,広範囲をスキャンすることができるが,発見した
ロボットまでの距離の測定精度が低下する.
・ミサイルの発射
任意の方向,700mまでの任意の距離に,ミサイルを発射する.ミサイルは
着弾,爆発してはじめて敵ロボットにダメージを与えられる.つまり,
飛行中のミサイルにロボットがぶつかることはない.
== 実装の評価
開発したロボットのアルゴリズムの優劣の評価は,そのロボットに
実際に戦闘を行わせることによって行った.
参加大学数が5大学,一度に戦闘を行えるロボット数が4であるため,
各チームが一度ずつ抜けての総当たり戦(5試合)を行った.
各試合に参加したロボットには,早く破壊された順に1点,2点,3点を与え,
最後まで勝ち残ったロボットには4点を与える.
全試合が終了した時点での得点により,順位を決定する.
試合の結果を以下に示す.
ただし,表内の「奈良先」は,奈良先端科学技術大学院大学を指す.
また,数字はその試合における得点を,「--」はその試合に参加して
いなかったことを示す.
大学(順位順) | 第1試合 | 第2試合 | 第3試合 | 第4試合 | 第5試合 | 合計 |
大阪大学 | -- | 4 | 4 | 4 | 4 | 16 |
奈良先 | 4 | 3 | 1 | -- | 3 | 11 |
立命館大学 | 2 | -- | 2 | 3 | 2 | 9 |
兵庫県立大学 | 3 | 1 | 3 | 1 | -- | 8 |
京都大学 | 1 | 2 | -- | 2 | 1 | 6 |
|