COREWAR

/
Step 13: 簡単なプログラムを作ろう(自動カウンター)
🎯0002番地のB値を 5 以上までカウントアップさせる(0/5)

ミッション一覧 (全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で同期
TASKS: 0
CYC: 0
📖 講義ノート // STEP 13 OF 30第2章:基本命令と自律プログラムの構築⏱ 読了目安:約5分
📖 講義ノート:この実験で起きているコンピュータ科学と人工生命の原理

最小の自律プログラム「自動カウンター」と状態機械のホメオスタシス

「演算(ADD)」「制御(JMP)」「記憶(DAT)」の三位一体が創り出す、生きたアルゴリズムの原型

#Finite State Automaton#Computation-Control-Storage Trinity#Counter Algorithm#Homeostasis#Turing Machine Prototype
🔬Step 13: 簡単なプログラムを作ろう(自動カウンター)

第2章の総仕上げとして、1人で動く 「自動カウンター」 を完成させましょう! 1. 0000 番地:ADD.AB #1, $2(2つ下の 0002 番地に 1 を足す) 2. 0001 番地:JMP.A $-1, #0(1つ上の 0000 番地へ戻る) 3. 0002 番地:DAT.F #0, #0(数字を貯めるデータ箱)

現在は 0000 番地の足す数が #0 になっているため、ループしても数字が増えません。

🎯 やってみよう 0000 番地の A(左の数値) を #0 から #1(またはそれ以上)に変えて [PLAY] を押し、0002 番地のB値が 1, 2, 3, 4, 5... と自動的にカウントアップして 5 以上 になるのを確認しましょう!

1. プログラムを構成する「三位一体(演算・制御・記憶)」

第2章の総仕上げであるStep 13では、たった3行で自律的に数字をカウントアップし続ける「自動カウンター」を完成させました。 ・0000 番地:『ADD.AB #1, $2』 ➔ 演算(Computation:状態を進化させる力) ・0001 番地:『JMP.A $-1, #0』 ➔ 制御(Control:時間を循環させ命を繋ぐ力) ・0002 番地:『DAT.F #0, #0』 ➔ 記憶(Storage:変化する状態を保持する器)

このわずか3行のプログラムをじっくりと眺めてください。実はこれこそが、人類がこれまでに作ったあらゆるソフトウェア——Webブラウザも、銀行のシステムも、大規模言語モデル(AI)も——の最も純粋な「最小原型(アーキタイプ)」なのです!

もし1行目の『ADD(演算)』がなければ、プログラムはただ同じ場所を空回りするだけで、世界には何の変化も生まれません。 もし2行目の『JMP(制御)』がなければ、プログラムは1回足し算をしただけで3行目のDATに突っ込んで死んでしまいます。 もし3行目の『DAT(記憶)』がなければ、足し算した結果を蓄積しておく場所がありません。 「演算・制御・記憶」の3つが1つのシステムとして噛み合った瞬間、静止していたメモリの箱に「時間とともに成長し続ける動的なプロセス」が誕生したのです。

┌─────────────────── THE COMPUTATIONAL TRINITY ───────────────────┐
│ [0000] ADD.AB #1, $2  ──► 1. COMPUTATION (ALU updates state)   ─┼─┐
│ [0001] JMP.A $-1, #0  ──► 2. CONTROL     (Loop sustains life)   │ │
│ [0002] DAT.F  #0, #5  ◄── 3. STORAGE     (Memory holds 1,2,3..)◄┘ │
└─────────────────────────────────────────────────────────────────┘

2. 2サイクル周期の代謝リズムとホメオスタシス

[PLAY] ボタンを押してカウンターが 1, 2, 3, 4, 5... と増えていく様子を観察したとき、0002 番地の数字は「2サイクルに1回」のペースで増えていたことに気づいたでしょうか? ・奇数サイクル(Cycle 1, 3, 5, 7, 9):0000 番地の『ADD』が実行され、カウンターが +1 増える。 ・偶数サイクル(Cycle 2, 4, 6, 8, 10):0001 番地の『JMP』が実行され、実行ポインタが 0000 番地へ戻る。

生物学において、生命体が外部環境の中で自身の内部サイクルを安定して保ち続ける性質を「ホメオスタシス(恒常性)」と呼びます。この自動カウンターは、2サイクルで1呼吸する代謝リズムを持ち、1呼吸ごとに0002番地という体内のエネルギー貯蔵庫に『+1』ずつ数値を蓄積しています。

そして何より興味深いのは、第1章では「踏んだら即死する危険な罠」に見えていた 0002 番地の『DAT』が、2行目の『JMP』によって適切な距離に保たれた結果、「決して踏まれることなく安全にデータを蓄える頼もしい臓器(メモリ変数)」として機能している点です。

3. カウンターから「ポインタ走査(爆撃機・索敵機)」への進化

「ただ 0002 番地の数字が 1, 2, 3, 4, 5... と増えるだけで、これがどうやって戦うプログラムになるのだろう?」と思うかもしれません。

では、想像してみてください。今 0002 番地で 1, 2, 3, 4, 5... と自動的に増え続けているその数字を、単なる「得点カウンター」としてではなく、「次に爆弾を投げ込む宛先番地のメモ(ポインタ)」として使ったらどうなるでしょうか? 1周目には 1 マス先へ、2周目には 2 マス先へ、3周目には 3 マス先へと、自動的に狙いをずらしながらメモリ空間の隅々まで攻撃や調査を行う「自律移動砲台」になりますね!

そう、あなたがこのStep 13で作った「自動カウンター」こそが、第3章・第4章で登場するすべての高等Warrior(DwarfやScanner)の心臓部(エンジン)そのものなのです。

🔒

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

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