COREWAR

/
Step 25: 【Stone(石)】高速爆撃機の観察とステップ幅の改造
🎯ステップ幅を調整したStoneで敵のScissors(スキャナー)を撃破する(0/1)

ミッション一覧 (全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
🟢 編集モード(セルをクリックして変更できます)
[番地][命令 (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 25 OF 30第5章:3大アーキタイプ(石・紙・鋏)と進化生態系⏱ 読了目安:約5分
📖 講義ノート:この実験で起きているコンピュータ科学と人工生命の原理

【Stone(石)】高速爆撃アーキタイプの極意——被弾面積の最小化と火力密度の力学

なぜ「眼を持たない単純な石(Stone)」が、「知覚を持つ精巧な鋏(Scissors)」を打ち砕くのか?

#Stone Archetype#Code Footprint (Target Size)#Cycle Efficiency#Mod-4 / Mod-8 Granularity#Asymmetric Combat
🔬Step 25: 【Stone(石)】高速爆撃機の観察とステップ幅の改造

最終章・第5章では、CoreWarの生態系を支配する 「3すくみ(Stone・Paper・Scissors)」 をマスターします! - 🪨 Stone(石=爆撃機) は ✂️ Scissors(鋏=スキャナー) に強い! (スキャナーは眼を持つぶん身体が大きく、Stoneの高速爆弾に先に撃ち抜かれやすいためです)

ただし、今のStoneは1行目の爆撃ステップ幅が #16(大雑把すぎる間隔)になっているため、0400〜0405 番地にいる敵スキャナーを飛び越してしまいます。

🎯 やってみよう 0000 番地の爆撃ステップ幅 A(左の数値) を #16 から #4(または #8)に変更し、[PLAY] を押して敵のScissors(スキャナー)を粉砕しましょう!

1. 3大アーキタイプ(石・紙・鋏)の幕開け:なぜStoneはScissorsに強いのか?

いよいよ最終章・第5章に突入しました! ここから先の6ステップでは、CoreWarの生態系を支配する3大種族『Stone(石:爆撃機)』『Paper(紙:自己複製体)』『Scissors(鋏:索敵スキャナー)』、そして奇襲種族『Vampire(罠)』の戦術力学をマスターします。

直感的に考えると、「眼(SEQ命令)を持って敵を探してから撃つ賢いスキャナー(Scissors)」のほうが、「眼を持たず盲目的に爆弾を投げまくる爆撃機(Stone)」よりも高等で強そうに思えますよね。しかし、実際のCoreWarの生態系では、なんと【🪨 Stone は ✂️ Scissors に対して圧倒的に有利(天敵)】なのです!

なぜ「単純な石」が「精巧な鋏」に勝てるのでしょうか? 理由は2つの物理的・時間的格差にあります。 ① 被弾面積(コードサイズ)の差:Scissorsは「比較する命令(SEQ)」や「空地の基準箱(DAT)」を持たなければならないため、身体(行数)が大きくなります(6行〜10行以上)。一方、Stoneはわずか3〜4行の極小サイズです。暗闇で撃ち合ったとき、身体が大きいScissorsのほうが圧倒的に流れ弾に当たりやすいのです。 ② ループ速度と副作用の差:Stoneは投げるすべての弾が実弾(DAT爆弾)であり、敵の近くに落ちれば敵のポインタや命令を即座に破壊します。

🪨 STONE (4 lines = Small Target)          ✂️ SCISSORS (6 lines = 1.5x Larger Target!)
  [0000] ADD.AB #4, $3                       [0400] ADD.AB #12, $4
  [0001] MOV.I  $2, @2 ──(Mod-4 Barrage!)──► [0401] SEQ.I  @3, $4
  [0002] JMP.A $-2, #0                       [0402] MOV.I  $3, @2  ◄── 💥 Guaranteed Hit!
  [0003] DAT.F  #0, #390                     [0403] JMP.A $-3, #0
                                             [0404] DAT.F  #0, #12
                                             [0405] DAT.F  #0, #0

2. 敵の体長(Footprint)に合わせた「ステップ幅(粒度)」の設計

ただし、どんなにStoneが優位であっても、爆撃のステップ幅(網の目の粗さ)が適切でなければ勝つことはできません。 今回のミッションでは、敵のScissorsは『0400 番地から 0405 番地までの 6マス(体長6行)』を占めていました。 ところが、初期状態のStoneの1行目は『ADD.AB #16, $3』(16マスおきの爆撃)になっていました。ポインタ初期値は『0003 + 390 = 0393 番地』ですから、ステップ幅が『#16』のままだと、1発目は『393 + 16 = 0409 番地』に着弾し、0400〜0405 番地にいる体長6マスの敵を丸ごと飛び越してしまいます!

幾何学的な必中条件(Pigeonhole Principle:鳩の巣原理)を考えてみましょう。 連続する $L$ マス(今回は $L = 6$ マス)の体長を持つ敵を、1回の通過で【100%確実に(隙間から逃さずに)】仕留めるためには、爆撃の間隔 $S$ を『$S \le L$(敵の体長以下)』に設定しなければなりません。 あなたがステップ幅を『#4』または『#8』に変更したことで、着弾点は『393 + 4 = 0397 ➔ 0401 ➔ 0405 番地』(または『393 + 8 = 0401 番地』)となり、敵スキャナーの胴体ど真ん中(0401番地のSEQ命令)を正確に撃ち抜いたのです!

3. 「KISSの原則(Keep It Simple, Stupid)」と実戦の美学

ソフトウェア工学には『KISSの原則(Keep It Simple, Stupid:単純にしておけ、愚か者よ)』という有名な格言があります。複雑で高度な機能を詰め込んだプログラムほど、バグが潜む場所(脆弱な箇所)が増え、また実行速度のオーバーヘッドも大きくなるという教訓です。

CoreWarにおける『Stone』は、まさにこのKISSの原則の結晶です。「余計な判断(SEQ)を一切せず、最小の行数で、最速でDAT爆弾を投げ続ける」という徹底したシンプルさが、複雑な構造を持つScissorsを圧倒します。では、そんな最強に見えるStoneがどうしても勝てない相手とは誰でしょうか? 次のStep 26で、第2の種族『Paper(紙)』の驚異の生態を目撃しましょう。

🔒

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

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