1. 分類・学名・基本スペック(Taxonomy & Profile)
Imp と並び、1984年に A.K. デュードニーによって最初に記載された歴史的標本が「Dwarf(ドワーフ)」である。CoreWar の3大基本戦術「Stone(岩石・爆撃型)」「Paper(紙・増殖型)」「Scissors(鋏・索敵型)」のうち、すべての Stone 系ボマーの直接の祖先にあたる存在であり、学名 Petraeksito modularis(モジュロ周期で破壊をもたらす岩石生物)として分類される。
Imp が「自らの身体を移動させること」に特化した生命体であるのに対し、Dwarf は「自らは初期位置から1ミリも動かず、遠隔地のメモリを破壊すること」に特化している。その姿は、海底の岩場に固着しながら長い触手を伸ばして周囲に毒針(刺胞)を放つイソギンチャクやサンゴ礁のポリプに酷似している。わずか4行という極小のコードの中に、「算術加算(+)」「間接転送(▼)」「ループ制御(↺)」「ポインタ兼データ爆弾(■/◆)」という4種類の異なる生体器官が1つずつ配置され、時計仕掛けのような完璧な調和で機能する。
2. 生態と行動様式(Ecology & Behavior)
ビバリウム内で Dwarf の観察を開始すると、本体のある4マス(0000〜0003番地)の中で、プログラムカウンタ(核)が「0000 → 0001 → 0002 → 0000...」と3サイクル周期で高速に往復(呼吸)しているのが見える。そして2行目(0001番地の MOV.I 2, @2)が実行されるたび、本体から伸びた赤い標的ビームが 0007番地、0011番地、0015番地、0019番地……と4マスおきの座標を指し示し、そこへ菱形の結晶(◆ DAT 毒胞子)を次々と着弾させていく。
なぜ Dwarf は「DAT 命令」を投げることで敵を殺傷できるのか?MARS 仮想空間において、DAT(Data)は「ここは数値データ置き場であり、実行可能な命令ではない」ことを示す特殊なセルである。もし敵のプログラムが稼働している最中に、そのコードの1行でも Dwarf の放った DAT 胞子によって上書きされると、敵の実行ポインタ(PC)がそのセルを踏んだ瞬間に「不正命令実行(データ領域への突入)」を起こしてプロセスが即死する。つまり Dwarf は、メモリという大地に「踏めば即死する地雷」を4マス間隔で規則正しく敷設し続ける工兵なのである。
さらに注目すべきは、Dwarf が自身の4行目(0003番地)にある DAT セルを「照準ポインタ(変数箱 ■)」として使いながら、同時に「投下する爆弾のコピー元(◆)」としても流用している点である。投下される爆弾の中身は「DAT.F #0, #4」「DAT.F #0, #8」と少しずつB値が増えていくが、オペコードが DAT である限り致死性はまったく変わらない。1つの器官に2つの役割を兼ねさせることで、身体サイズを最小の4セルに抑えているのである。
3. 生体解剖図:コードと器官の対応(Cellular Anatomy & Organelles)
Dwarf の4行のコードは、Redcode プログラミングにおける「機能分化(オルガネラ化)」の最も美しい教科書である。1行ごとに異なるグリフ(+, ▼, ↺, ■)が並び、どれか1行でも欠ければ生命として成立しない。
4. ノイマン型アーキテクチャにおける意義(Computer Science Insight)
計算機科学において Dwarf が体現している最大の発明は、「間接参照ポインタ(Indirect Pointer:`@` モード)」の威力である。もし Redcode に直接参照(`
そしてもう一つの深い数理的洞察が、「なぜステップ幅が『4(#4)』なのか?」という問題である。MARSの標準コアサイズは 8,000 セル(または初期規格の 4,096 セル)であり、どちらも「4」で綺麗に割り切れる(8000 ÷ 4 = 2000)。Dwarf は自身の4行目(0003番地)を起点(オフセット0)として、+4, +8, +12... と4の倍数の位置に爆弾を落とし続ける。
すると、ちょうど 2,000 発の爆弾を投下してコアを1周(8,000番地分)したとき、2,000発目の爆弾はどこに着弾するか? `0003 + 8000 ≡ 0003 (mod 8000)` —— すなわち、Dwarf 自身の4行目(0003番地の DAT セル自身)の上にだけ着弾し、0000〜0002番地の生きた実行コード(ADD, MOV, JMP)は未来永劫、自分の爆弾によって傷つくことがない!しかも、長さが4行以上ある敵プログラムは、コアのどこに潜んでいようとも4マスおきの網の目に100%引っかかって破壊される。この「モジュロ演算による自己免疫(Self-Immunity)と完全被覆の両立」こそ、Dwarf が持つ数理的美学の極致である。
5. 天敵・弱点・食物連鎖(Predators & Metagame)
高度な感覚器(CMP/SNE)を持つため身体が大きく(6〜10行以上)なりがちなScannerに対し、わずか4マスのDwarfは被弾面積が極小であり、Scannerが発見する前に4マスおきの高速爆撃で感覚器やループを撃ち抜く。
3サイクルに1発ずつ律儀に点爆撃を行うDwarfに対し、SPL命令で指数関数的にクローンを増殖させるPaperは圧倒的な物量で空間を埋め尽くす。1個体を爆破しても残りの数十個体が生き残り、やがてDwarf自身が上書きされる。
三すくみ(Stone / Paper / Scissors)の生態系において、Dwarf(Stone)は「Scissors(スキャナー/索敵捕食者)」に対して強い優位性を持つ。スキャナーは敵を探すための比較命令(CMP/SNE)や分岐ロジックを備えるためコードサイズが肥大化しやすく、4マスおきの爆撃網に容易に捕捉される。一方、Dwarf 自身はわずか4マスしかなく、スキャナーが広大な8,000セルの中から Dwarf を見つけ出す前に、Dwarf の盲目的な高速砲火がスキャナーの身体を撃ち抜くことが多い。
しかし逆に、Dwarf は「Imp(1行移動体)」や「Paper(自己複製スウォーム)」に対して構造的な弱点を抱えている。第1に、4マスおきの爆撃には「3マスの安全地帯(隙間)」が空いているため、体長3行以下の極小プログラムや、1マスずつ移動する Imp が隙間をすり抜けて接近してくるのを止められない。
第2に、Dwarf は移動能力を持たない完全固着生物であるため、一度でも自分の座標(0000〜0002番地)に爆弾が直撃するか、Paper の大群に周囲を包囲されて上書きされると、逃げ場がなく即座に絶滅する。競技レベルの進化型 Stone(たとえばプリデクリメント `<` を併用した2行・3行ボマーや、8000と互いに素に近い最適Mod-4ステップ定数 `2365` や `3359` を採用したボマー)は、すべてこの原種 Dwarf の遺伝子を受け継いだ直系の子孫たちである。
6. 🔬 Lab / Academy でこの生命体を観察する
0003番地のDAT箱のB値が 4, 8, 12... とカウントアップし、間接参照ビーム(@)が4マスおきに毒胞子(◆)を着弾させる様子を Workbench と Arena で実際に確認しましょう。