【Paperの改造】空間分散アルゴリズムとコロニー間干渉(自己上書き)の回避
なぜクローン投下距離(Dispersal Distance)が0だと自滅するのか? 植物の種子散布とメモリ空間のハッシュ分散
Paper(自己複製型)にとって最も重要なパラメータは、「親から何マス離れた場所にクローンを作るか(分散距離)」 です。 もし距離が #0 や近すぎる値だと、せっかく作ったクローンの上に次のクローンを上書きしてしまい、外の世界へ広がることができません。
現在のコードでは、5行目(0004 番地)のクローン分散距離が ADD.AB #0, $1(距離が増えない状態)になっており、0400 番地にいるStoneに届きません。
🎯 やってみよう 5行目(0004 番地)の A(左の数値) を #0 から #200(または #100 以上の大きな数値)に変更して [PLAY] を押し、クローンで敵のStoneを上書き撃破しましょう!
1. 自己複製体の罠:「親が子の頭上に次の子を上書きする」自己干渉
Step 27では、Paper(Mice)の5行目(0004番地)にあるクローン分散距離『ADD.AB #0, $1』を『#200』(または100以上)に改造し、0400番地のStoneをクローン群で包み込んで撃破する実験を行いました。
まず、改造前の『ADD.AB #0, $1』の状態で何が起きていたのかを分析しましょう。 6行目(0005番地)のBフィールドには、最初のクローンを作る宛先ポインタ『#205』が入っています。1回目の複製ループで、親コロニーは205マス先の番地に最初の娘クローンを綺麗に作り上げ、『SPL』で起動します。 ところが、その直後の5行目が『ADD.AB #0, $1(ポインタに 0 を足す=場所を変えない!)』になっていると、親コロニーは2回目の複製ループで、【たった今起動して動き始めたばかりの1人目の娘クローンの真上から、2人目のクローンを『MOV』で無理やり上書き】してしまうのです!
植物が自分の真下にばかり種を落とすと、芽が出ても親や兄弟と光を奪い合って共倒れしてしまうのと同じように、デジタル生命においても「新しいクローンをどれだけ遠くの新天地へ飛ばすか(分散距離:Dispersal Distance)」が生存の絶対条件となります。
Bad Dispersal (#0) : Parent [0000] ──► Overwrites [0205] again & again! (Colony traffic jam)
Good Dispersal (#200): Parent [0000] ──► Clone 1 [0205] ──► Clone 2 [0405] (💥 Overwrites Enemy at 0400!)2. Paperはどうやって敵を倒すのか?(上書き同化:Assimilation)
ここで1つ、非常に興味深い疑問が湧いてきます。 「StoneはDAT爆弾を投げて敵を殺すけれど、DAT爆弾を1つも持っていないPaper(Mice)は、どうやって敵のStoneを殺して『WIN(勝利)』したのだろうか?」
答えは【クローンによる上書き(Overwrite / Assimilation)】です! あなたが5行目を『ADD.AB #200, $1』に変えたことで、親や娘たちが作る新しいクローンの着地地点が、0205番地 ➔ 0405番地 ➔ 0605番地…と200マスずつ広がっていきました。 0405番地から上向き(プリデクリメント『<』)に6行分のクローンが書き込まれると、そのコピー範囲(0400〜0405番地)にちょうど居座っていた敵のStone(0400〜0403番地)のコードが、あなたのPaperの遺伝子コードで丸ごと上書きされてしまいます!
するとどうなるでしょうか? 1. 敵のStoneの4行目(DAT箱)があなたのコードの下敷きになるか、あるいは敵の実行ポインタが上書きされたあなたのPaperのコード(JMNやDATなど)を踏んでクラッシュします。 2. 仮に敵の実行ポインタがクラッシュせずにあなたのPaperのコードをそのまま実行してしまったとしても、敵の魂は「あなたの緑色のクローンを作る手伝い」をさせられる(洗脳される)だけで、二度とStoneとして攻撃することはできなくなるのです!
3. 分散距離の数学(ハッシュ分散と黄金比ステップ)
実際のトーナメントで戦うPaperを設計するとき、この5行目の分散距離には『コアサイズと互いに素であり、かつメモリ空間を黄金比に近い角度でバラバラに飛び回る大きな数値(例:800マスなら #253 や #303、8,000マスなら #1800 や #3200 など)』が選ばれます。
なぜなら、親から誕生した娘クローンも、さらにその孫クローンも、すべて同じプログラム(同じ加算値)で増殖するため、単純な数値だと親が2回目に作った場所と娘が1回目に作った場所が重なってしまう(ハッシュ衝突する)ことがあるからです。この5行目の数値1つを調整するだけで、アリーナの緑色の広がり方が劇的に変化する様子をぜひ色々な数値(#150, #253, #333など)で試してみてください。
🔒 MISSION CLEAR で講義ノートの全編が解放されます
上段の実験シミュレーターでミッションを達成すると自動的に全編がアンロックされます。(下のボタンから今すぐ全文を先に読むことも可能です)