1. 分類・学名・基本スペック(Taxonomy & Profile)
地球の生命史において、約5億4000万年前の「カンブリア爆発」を引き起こした最大の要因は、三葉虫やアノマロカリスなどの捕食者が「眼(視覚器)」を獲得したことだと言われている(アンドリュー・パーカーの『光スイッチ説』)。それまで海底の泥を手探りで這い回り、偶然ぶつかった獲物を食べるだけだった生物たちの世界に、「遠くから獲物の姿を見つけて狙い撃つハンター」が誕生した瞬間、生態系は劇的な進化を遂げた。
CoreWar の歴史においても、まったく同じ進化の跳躍が起きた。Dwarf のような初期の Stone(爆撃機)は、視力を持たず、ただ闇雲に4マスおきに爆弾を投げ続ける「盲目の捕食者」だった。そこへ登場したのが、比較命令(`CMP` / `SEQ` / `SNE`)という名の「光学センサー(◉)」を体内に組み込んだ索敵捕食者「Scanner(スキャナー:三すくみにおける Scissors=鋏)」、学名 Venator oculatus である。
2. 生態と行動様式(Ecology & Behavior)
Scanner の行動様式は「平時の索敵(Search)」と「発見時の破壊(Destroy)」という2つのフェーズが明確に切り替わる条件反射(Reflex)によって成り立っている。ビバリウムで観察すると、Scanner の核(PC)は普段、上部4行のうち「0000(ADD)➔ 0001(CMP)➔ 0003(JMP)」という3行だけを3サイクル周期で回る。0002番地にある攻撃命令(MOV)は、遠隔地のセルが空(DAT.F #0, #0)である限り、CMP 命令のスキップ機能によって完全に飛び越され、1サイクルの無駄も生じない。
つまり Scanner は、8,000マスの広大な砂漠に爆弾を無駄撃ちする代わりに、「そこには何かがいるか?」を3サイクルに1回の高速サッカード(眼球運動)で覗き見しているのである。そして視線ポインタ(0004番地)が、敵の Warrior のコードや、Imp の抜け殻、あるいは Paper が増殖させたクローン群の1マスを捉えた瞬間——遠隔セルの中身が「DAT.F #0, #0」と一致しなくなるため、CMP 命令はスキップを行わず、実行ポインタが初めて 0002番地(`MOV.I 3, @2`)の攻撃筋肉へと流れ込む!
さらに競技レベルへと進化した高等 Scanner(He Scans Alone や鐵鋏系の Scissors)では、敵を見つけたときに単発の DAT 爆弾を投げるだけでなく、まず「`SPL.A 0, #0`(プロセスマヒ毒)」を敵のコードに撃ち込む。敵が `SPL 0` を踏むと、敵のプロセスキューは意味のない自己分裂で瞬く間に64個まで溢れ返り、身動きが取れない全身麻痺(スタン状態)に陥る。Scanner は獲物を麻痺させてから、最後にコアクリア(連続 DAT 絨毯爆撃)でゆっくりと確実に息の根を止めるという、狩りバチやクモさながらの冷徹な捕食行動を見せる。
3. 生体解剖図:コードと器官の対応(Cellular Anatomy & Organelles)
Scanner の細胞構造における最大の特徴は、0001番地に位置する青い同心円グリフ「◉(感覚器:CMP / SEQ / SNE)」の存在と、下部にある2つのデータ嚢(0004番地の視線ポインタと、0005番地の基準標本兼爆弾)の精巧な分業にある。
4. ノイマン型アーキテクチャにおける意義(Computer Science Insight)
コンピュータ・アーキテクチャの観点から見ると、Redcode の比較命令(`CMP`=`SEQ`:等しければ次行をスキップ、`SNE`:等しくなければ次行をスキップ)は、初期のミニコンピュータ(PDP-8 など)で採用されていた「Test-and-Skip(条件スキップ命令)」の系譜に属している。通常の条件ジャンプ命令(`JMZ` や `JMN`)は「ゼロかどうか」しか判定できないが、`CMP.I @3, 4` は「任意の2つのメモリ番地に格納されている命令構造体(オペコード・修飾子・A/Bモード・A/B値)が完全に一致するかどうか」を1サイクルで丸ごと比較できる。
この機能により、Scanner はメモリ空間のあらゆる番地に対して非破壊検査(Read-Only Probing)を行うことができる。しかも、もしスキャナーが自分自身のコード領域を誤ってスキャンして自爆するのを防ぎたければ、ステップ幅の数理設計(Mod-N)や、スキャンポインタが自陣付近を通過する際だけスキップする自己認識ロジックを組み込むことができる。
そして人工生命(ALife)および進化生物学の視点において、Scanner は「感覚器を持つことの進化論的コスト」を見事に説明するモデルとなっている。生物が高度な眼や脳(感覚器と情報処理ループ)を発達させると、獲物を見つける能力は飛躍的に高まるが、その分だけ「身体が大きく複雑になり、エネルギー消費や被弾リスクが増える」というトレードオフが生じる。CoreWar のメモリ空間では、命令1行の増加がそのまま「物理的な体長(標的面積)の増加」に直結するため、知性のコストが1セル単位の厳密な確率として現れるのである。
5. 天敵・弱点・食物連鎖(Predators & Metagame)
コア中にクローンを広げるPaperは、Scannerの眼(CMP/SNE)にとって見落とすはずのない巨大な獲物である。空地を無駄撃ちせず3サイクルで飛び越えるScannerは、増殖で鈍化したPaperのコロニーを次々とロックオンし、精密射撃やSPLスタン攻撃で切り裂く。
「眼(感覚器)」を進化させた代償として、ScannerはDwarf(4行)よりも身体が大きく(6〜12行以上)なり、被弾面積が増大している。わずか4マスのDwarfを12マス飛びの視線で見つけ出す前に、Dwarfの盲目的なMod-4高速砲火に視覚器官やループを撃ち抜かれやすい。
なぜ Scanner(Scissors)は Paper(自己複製スウォーム)に圧倒的に強く、逆に Stone(Dwarf などの小型爆撃機)には脆いのか?その答えは「標的の空間密度」と「自身の被弾面積」の比率にある。Paper は生き残るためにコア全体に何十個ものクローンを展開するため、メモリ空間の至る所に非ゼロの命令が露出する。Scanner の12マス飛びの視線は、あっという間に Paper のコロニーを捕捉し、増殖速度が鈍ったクローンを次々と精密射撃で切り刻む(鋏が紙を切る)。
ところが、相手がわずか4行(さらにはプリデクリメントを使った3行)の極小 Stone だった場合、状況は一変する。8,000マスの広大な空間の中で、たった4マスの Stone を見つけ出すには長いスキャン時間が必要になる。その間、Stone は感覚器を持たない分だけ最速の3サイクル周期で容赦なく4マスおきの爆弾をばら撒き続ける。Scanner は「眼と基準標本」を持つために身体が6行〜10行以上に肥大化しており、自分が小さな Stone を見つけ出すよりも先に、Stone が放った流れ弾が Scanner の長い胴体に直撃してしまうのである(石が鋏を砕く)。
さらに Scanner には「デコイ(Decoy:おとり)」という弱点もある。敵が戦闘開始直後に無意味な非ゼロのゴミデータをメモリ各所にばら撒いておくと、Scanner の鋭敏な眼(CMP)はそのゴミデータを「敵だ!」と誤認してしまい、誰もいないおとり座標を一生懸命に爆撃して貴重なサイクルを浪費してしまう。視覚を持つからこそ「視覚の錯覚(擬態・カモフラージュ)」に騙されるという点まで、自然界の捕食者と完全に同じ進化ドラマが展開されている。
6. 🔬 Lab / Academy でこの生命体を観察する
0001番地の複眼センサー(◉ CMP.I)が空のセルをスキップし、敵の痕跡を見つけた瞬間にだけ0002番地の狙撃命令(▼ MOV.I)を実行する様子を観察してみましょう。