亀場でプログラミング:亀場に登場する物体とセンサーのまとめ

「亀場」には亀以外にも、いくつかの物体やアイテムが登場するので、このページではそれらをまとめておく。

1. 物体(オブジェクト)

亀場のキャスティングは以下のとおりである:

C関数のまとめ

イベント処理

物体 機能 反応するセンサー /
関係するイベント
備考
亀 (TURTLE) 移動する。絵を描く。砲弾を発射する。
センサーで周囲の状況を知る。
FINDER, RADAR, SONARによって検知できる
亀が別の亀に衝突するとRUN_INTO_TURTLEイベントが発生
亀の歩行にとって障害物
砲弾を命中させると+10点
自分が被弾すると-30点
一発砲弾を発射すると-1点
ドーナッツ(DONUT) DONUT()関数で亀場に出現 FINDER, RADAR, SONARによって検知できる
ドーナッツに衝突するとRUN_INTO_DONUTイベントが発生
亀の歩行にとって障害物
近接で砲弾を命中させると+10点
石ころ(STONE) oキーを押すと、亀場に出現 FINDER, RADAR, SONARによって検知できる
石に衝突するとRUN_INTO_STONEイベントが発生
亀の歩行にとって障害物
壁(WALL) 対戦モード, 迷路モードで出現 FINDER, SONARによって検知できる
亀が壁に衝突するとRUN_INTO_WALLイベントが発生
亀の歩行にとって障害物
コイン(COIN) COIN()関数呼び出しで亀場に1枚登場
BORROWCOIN()関数呼び出しで10枚ゲット
Q_COIN()で近くのコインの枚数を検出できる
亀の近くにコインがあるとFOUND_COINイベントが発生
亀の歩行の邪魔にはならない

その他の物体として、亀が発射した砲弾がある。 一匹の亀が発射する砲弾は、亀場に同時に2発以上存在できない(砲弾が亀場にある間は、次の砲弾を発射することはできない)。 砲弾は、物体(亀、ドーナッツ、石、壁)に当たると爆発する。コインには当たらない。

砲弾が亀に命中すると、被弾した亀側にHIT_BY_BULLETイベントが発生する。

2. センサー

亀は以下のセンサー情報を使うことができる:

センサー 機能 反応する物体 備考
FINDER 前方の亀の幅の範囲にある物体を検出
物体の種類まで区別できる
TURTLE, DONUT, STONE, WALL Q_FINDER()関数を使用
RF()関数で検出範囲を調整できる
検出結果:
0:障害物なし 1:TURTLE 2:DONUT
3:STONE 4:WALL
RADAR 最も近い物体の方向角を検出 TURTLE, DONUT, STONE Q_RADAR()関数を使用
検出結果:
亀の正面を0°とした相対角度。
±20°の誤差を含む
SONAR 近接の障害物を検出 TURTLE, DONUT, STONE, WALL Q_SONAR()関数を使用
検出結果:
斜め左、前、右の障害物の状況
障害物無しが0, ありが1
コインセンサー 近接のコインの枚数を勘定 COIN Q_COIN()関数を使用
検出結果:
亀の体長(20ピクセル)の範囲内の枚数
物体数センサー 亀場中の物体の総数を検出 TURTLE, DONUT Q_NT()関数を使用
検出結果:
石を除いた物体数
チームセンサー 検出した物体のチーム番号を検出 TURTLE Q_FINDER()かQ_RADAR()を呼び出した後
Q_TM()関数を使用
検出結果:
FINDER,RADARで検出した物体のチーム番号

亀の周囲に何も物体が無い場合にRADARを用いると、返される値は 0 ± 20° のランダムな値となる。

亀が別の亀のFINDERセンサーで検出されると、検出された側にDETECTED_BY_FINDERイベントが発生する。 同様に、RADARセンサーに検出された場合はDETECTED_BY_RADARイベントが発生する。