COREWAR

/
Step 26: 【Paper(紙)】自己複製スウォーム「Mice」を観察する
🎯Paperの自己複製を観察し、80サイクル以上生存(または勝利)する(0/80)

ミッション一覧 (全30ステップ)

第1章:画面とメモリの基本 (1-6)
BASIC★☆☆
Step 1: 時間を進める「STEP」ボタン
🔒
BASIC★☆☆
Step 2: プロセスの停止と「RESET」での復旧
🔒
BASIC★☆☆
Step 3: 「編集できる状態」と「実行中の状態」EDIT
🔒
BASIC★☆☆
Step 4: メモリの箱の3つの部屋(右の部屋 B を変える)EDIT
🔒
BASIC★☆☆
Step 5: 左の部屋(A)と右の部屋(B)を書き換えるEDIT
🔒
BASIC★☆☆
Step 6: 「数値(#)」と「番地($)」の記号の違いEDIT
第2章:代表的な命令とループ (7-13)
🔒
ARITHMETIC★☆☆
Step 7: 足し算の命令「ADD」の観察
🔒
ARITHMETIC★☆☆
Step 8: 足す「数値(A)」を変えてみようEDIT
🔒
ARITHMETIC★☆☆
Step 9: 足す「相手の場所(B)」を変えてみようEDIT
🔒
ARITHMETIC★☆☆
Step 10: 引き算の命令「SUB」を使ってみようEDIT
🔒
BASIC★☆☆
Step 11: 箱を丸ごとコピーする命令「MOV」EDIT
🔒
CONTROL★☆☆
Step 12: 時間を巻き戻すジャンプ命令「JMP」EDIT
🔒
CONTROL★☆☆
Step 13: 簡単なプログラムを作ろう(自動カウンター)EDIT
第3章:ノイマン型とデジタル生命 (14-18)
🔒
BASIC★☆☆
Step 14: なぜ「DAT」が爆弾になるのか?EDIT
🔒
BASIC★☆☆
Step 15: 自分自身の命令をコピーする(コード=データ)EDIT
🔒
BASIC★☆☆
Step 16: お手本観察:最古の生命体「Imp」をSTEP実行する
🔒
BASIC★☆☆
Step 17: Impの簡単な変更(コピー先の観察と実験)EDIT
🔒
ARITHMETIC★★☆
Step 18: 間接参照(@ポインタ)の仕組みを知るEDIT
第4章:伝統的アルゴリズム (19-24)
🔒
STRATEGY★★☆
Step 19: お手本観察:爆撃機「Dwarf」をSTEP実行で解剖する
🔒
STRATEGY★★☆
Step 20: Dwarfの簡単な変更(爆弾の間隔を変える)EDIT
🔒
STRATEGY★★☆
Step 21: 実戦デビュー:爆弾の間隔を調整して標的を破壊せよEDIT
🔒
CONTROL★★☆
Step 22: お手本観察:分裂命令「SPL」と増殖の仕組み
🔒
CONTROL★★☆
Step 23: お手本観察:条件比較命令「SEQ / CMP」で敵を探すEDIT
🔒
STRATEGY★★☆
Step 24: お手本観察と変更:防衛罠「Imp-Gate」でImpを止めろEDIT
第5章:実戦改造と総合演習 (25-30)
🔒
STRATEGY★★☆
Step 25: 【Stone(石)】高速爆撃機の観察とステップ幅の改造EDIT
🔒
STRATEGY★★☆
Step 26: 【Paper(紙)】自己複製スウォーム「Mice」を観察する
🔒
STRATEGY★★★
Step 27: 【Paperの改造】クローン投下距離を変更して増殖せよEDIT
🔒
STRATEGY★★☆
Step 28: 【Scissors(鋏)】索敵スキャナーの観察とスキャン間隔の改造EDIT
🔒
STRATEGY★★★
Step 29: 【Trap(罠)】敵の魂を誘拐する「Vampire」の観察と改造EDIT
🔒
STRATEGY★★★
Step 30: 卒業試験:愛機のチューニングと総合バトルEDIT
👁️ お手本観察モード([STEP] で観察)
[番地][命令 (Opcode)][A (左の値)][B (右の値)]
📦 データ領域 / 爆弾 (DAT)
0000
▼MOV
#
$
0001
▼MOV
<
<
0002
↺JMN
$
$
0003
❖SPL
@
#
0004
+ADD
#
$
0005
↺JMP
$
$
0006
■DAT
$0
$0
0007
■DAT
$0
$0
0008
■DAT
$0
$0
0009
■DAT
$0
$0
0010
■DAT
$0
$0
0011
■DAT
$0
$0
0012
■DAT
$0
$0
0013
■DAT
$0
$0
0014
■DAT
$0
$0
0015
■DAT
$0
$0
0016
■DAT
$0
$0
0017
■DAT
$0
$0
0018
■DAT
$0
$0
0019
■DAT
$0
$0
0020
■DAT
$0
$0
0021
■DAT
$0
$0
0022
■DAT
$0
$0
0023
■DAT
$0
$0
0024
■DAT
$0
$0
0025
■DAT
$0
$0
0026
■DAT
$0
$0
0027
■DAT
$0
$0
🏟️ARENA (20 ROWS)SCOPE: 0000 - 0019
[メモリ空間 800番地 (20行 × 40列)]左のエディタと1対1で同期
P1: 0
P2: 0
CYC: 0
📖 講義ノート // STEP 26 OF 30第5章:3大アーキタイプ(石・紙・鋏)と進化生態系⏱ 読了目安:約6分
📖 講義ノート:この実験で起きているコンピュータ科学と人工生命の原理

【Paper(紙)】自己複製スウォーム「Mice」と人工生命『Tierra』『Avida』への歴史的系譜

1986年第1回世界大会覇者「Mice」の6行ゲノム解剖と、CoreWarが切り拓いた人工生命(ALife)研究の歴史

#Paper Archetype#Mice (Chip Wendell, 1986)#Self-Replicating Swarm#Tierra & Avida (ALife)#Distributed Redundancy
🔬Step 26: 【Paper(紙)】自己複製スウォーム「Mice」を観察する

では、無敵に見える 🪨 Stone(爆撃機) に勝てるのはどんな生命体でしょうか? それが1986年の第1回世界大会を制覇した 📄 Paper(紙=自己複製スウォーム「Mice」) です!

Paperの6行のコードは、以下のように動きます: 1. 0000〜0002: 自分の6行のコードを丸ごと遠くの番地へコピー(転写)する。 2. 0003: SPL.A @2 で、完成したコピー(娘クローン)に新しい魂を吹き込んで起動する! 3. 1体が2体に、2体が4体に、8体、16体…とネズミ算式に増殖するため、Stoneが1箇所ずつ爆弾を落としても絶対に全滅しません!

🎯 やってみよう(編集不要) [PLAY] ボタン を押して、緑色のPaper(Mice)がArena全体にクローンを増殖させながらStoneの爆撃を生き延びる様子を観察しましょう!

1. 1986年第1回世界大会の衝撃:なぜ「紙(Paper)」は「石(Stone)」を包んで勝つのか?

Step 26では、1986年に開催された記念すべき第1回CoreWar国際トーナメント(ICWS)で優勝を飾った伝説のプログラム——チップ・ウェンデル(Chip Wendell)作の『Mice(マイス:ネズミたち)』をベースとした自己複製体【📄 Paper(紙)】を観察しました。

[PLAY] ボタンを押した瞬間、アリーナ画面で起きた光景に目を奪われたはずです。赤い敵(Stone)が一生懸命1発ずつDAT爆弾を投げている間に、緑色のあなたのPaper(Mice)は、1箇所から2箇所、2箇所から4箇所、8箇所、16箇所へと、アリーナ全体に次々と自分のクローン(分身コロニー)を増殖させていきました!

なぜ【📄 Paper は 🪨 Stone に圧倒的に強い】のでしょうか? Stoneは3サイクルに1発、たった1マスの点(ポイント)にしか爆弾を落とせません。それに対してPaperは、『SPL』命令と『MOV』ループを使って、自分の6行の身体そのものを丸ごと別の番地へコピーし、新しいプロセスを吹き込んで独立したコロニーとして起動し続けます。 たとえStoneの爆弾が運良く1つのPaperコロニーに直撃してそれを破壊したとしても、その頃にはすでに他の場所に10個以上の新しいクローンコロニーが誕生して増殖を続けているため、単発攻撃のStoneでは絶対にPaperの群れ(スウォーム)を全滅させることができないのです!

📄 PAPER ("Mice" 6-Line Self-Replicating Genome):
  [0000] MOV.AB #6, $0    ──► 1. Initialize copy counter = 6 lines (stored in 0000.B!)
  [0001] MOV.I <-1, <4    ──► 2. Copy 1 line from self (<-1) to remote clone (<4)
  [0002] JMN.B $-1, $-2   ──► 3. Loop back to [0001] until all 6 lines are copied!
  [0003] SPL.A  @2, #0    ──► 4. Awaken the newborn clone at @2 with a new thread!
  [0004] ADD.AB #253, $1  ──► 5. Advance dispersal pointer by +253 for next clone
  [0005] JMP.A $-5, #120  ──► 6. Repeat replication cycle (0005.B holds target pointer!)

2. わずか6行のDNA!「Mice」の高速ブロック転写アルゴリズム解剖

Mice(Paper)がわずか6行(0000〜0005番地)でどうやって自分自身の全6行を遠くへコピーしているのか、その天才的な遺伝子コードを解剖してみましょう。

1. 準備(0000番地:『MOV.AB #6, $0』):これから6行分のコードをコピーするため、自分自身の行($0)のBフィールドにカウンター『6』をセットします。 2. 高速転写ループ(0001〜0002番地:『MOV.I <-1, <4』と『JMN.B $-1, $-2』):ここが心臓部です! Step 24で学んだ『<(プリデクリメント)』をAとBの両方に使っています。『<-1』で0000番地のカウンターを 6 ➔ 5 ➔ 4 ➔ 3 ➔ 2 ➔ 1 ➔ 0 と1ずつ減らしながら自分のコードを順番に読み出し、同時に『<4』で0005番地の宛先ポインタも1ずつ減らしながら、遠くの番地へ下から順番に6行のコードを丸ごと転写していきます。そして『JMN.B(Jump if Not Zero:0でなければジャンプ)』によって、6行すべてを写し終えてカウンターが0になるまで0001番地を高速回転します。 3. 魂の注入(0003番地:『SPL.A @2, #0』):6行のコピーが完成した瞬間、その完成したクローン(@2が指す先頭番地)へ『SPL』命令で新しい実行ポインタを送り込み、独立した生命体として起動させます! 4. 次の繁殖地への移動(0004〜0005番地):『ADD.AB #253, $1』で次のクローンを作る場所を253マス先へずらし、『JMP』で最初へ戻ります。

3. CoreWarから誕生した人工生命(ALife)研究:トマス・レイの『Tierra』と『Avida』

実は、あなたが今目撃したこの「メモリ空間で自己複製するプログラム(Paper)」こそが、1990年代以降の現代科学における『人工生命(Artificial Life: ALife)』という学問分野を誕生させる直接の引き金となりました。

1980年代後半、熱帯雨林の生態学者であったトマス・レイ(Thomas S. Ray)は、CoreWarでこの自己複製プログラム(Miceなど)が動く様子を見て激しい衝撃を受けました。「もしCoreWarのルールに、コピー時のわずかな確率でのエラー(突然変異:Mutation)を加えたら、コンピュータのメモリの中でダーウィンの自然選択進化がそのまま起きるのではないか?」

こうして1990年にトマス・レイが開発したのが、歴史的人工生命シミュレーター『Tierra(ティエラ)』であり、その後カリフォルニア工科大学などで発展した『Avida(アヴィダ)』です。Tierraの仮想メモリ空間に1体の自己複製プログラムを放ったところ、人間が一切プログラムしていないにもかかわらず、自分のコピーコードを短縮して高速に増える進化種や、他者のコピー命令(MOVループ)を勝手に借りて増殖する「寄生虫(パラサイト)」、さらにはその寄生虫から身を守る「免疫獲得種」が次々と自律的に進化し、世界中の生物学者と計算機科学者を驚嘆させました。あなたが今動かしているビバリウムは、まさにその科学史の源流そのものなのです。

🔒

🔒 MISSION CLEAR で講義ノートの全編が解放されます

上段の実験シミュレーターでミッションを達成すると自動的に全編がアンロックされます。(下のボタンから今すぐ全文を先に読むことも可能です)