ミジンコによるTuring Complete攻略
目次
Turing Completeとは
Turing CompleteはCPUアーキテクチャーを学べるパズルゲームです。自作CPUに興味を持っている初心者に最適でしょう。
NANDゲートから始まり、段々と複雑な回路を作り上げて、最終的に4ビットCPUができあがります。そして、そのCPU専用のマシン語を実装し、アセンブリー言語でのプログラミングを体験します。
Steamで約2,000円で販売されています。セールのタイミングで安くなることがあります。
Turing Completeの特徴
- キャンペーンに用意されたステージを段階を追ってクリアすることで、「デジタル回路⇒CPU設計⇒アセンブリー言語」の順で習得できる。
- 序盤は比較的簡単だが、中盤からはデジタル回路初心者にとっては厳しいかもしれない。
- 前提知識があれば、2週間ほど全ステージをクリアできるかもしれない。
- 私はすべての攻略記事を書きながらだったので、約1.5ヶ月かかった。
- サンドボックスモードで、ステージ関係なく自由に回路を組める。
- 作った回路を投稿することもできる。
- 大幅アップデートにより、一部のステージが変更になる可能性がある。
- 過去にもそういったことがあった。
得られるスキル
- デジタル回路の基礎・・・FFやシフトレジスターの実装はあるが、それ以上突っ込むことはない。デジタル回路の本で例えると、前半3分の1ぐらいの基礎が身につく。シミュレーター上で完結するので、リアルの世界にある泥臭いテクニックは不要(逆に習得できない)。
- 自作CPU・・・4バイト命令のCPUが完成する。複雑な命令はないので、理解しやすい。
- アセンブリー言語・・・レジスター、条件分岐、スタック、RAMといった基本的なプログラミングスキルは身につく。ハンドアセンブルを体験できるのはよい。たただし、フラグレジスターがないので、リアルなCPUのアセンブリー言語のプログラミングテクニックは扱わない。
ミジンコがTuring Completeを紹介した場面
『ホワイトハッカーの教科書』
『ホワイトハッカーの教科書』のP.154で紹介。遊びながら学べるゲームを4つ紹介したが、その1つがTuring Completeである。

「第100回 ゆるいハッキング大会」
「ミジンコがTuring CompleteでCPUを自作した話」と題して発表しました。
ステージ構成【2023年版】

各ステージの攻略記事
キャンペーンでは次のステージが用意されています。
下から上のステージに進んでいます。
1. Basic Logicカテゴリー

| ステージNo. | ステージ名 | 内容 |
|---|---|---|
| 1.1 | Crude Awakening | |
| 1.2 | NAND Gate | |
| 1.3 | NOT Gate | |
| 1.4.1 | AND Gate | |
| 1.4.2 | NOR Gate | |
| 1.4.3 | OR Gate | |
| 1.5 | Always ON | |
| 1.6 | Second Tick | |
| 1.7 | XOR Gate | |
| 1.8.1 | Bigger OR Gate | |
| 1.8.2 | Bigger AND Gate | |
| 1.9 | XNOR Gate |
2. ArithmeticカテゴリーとMemoryカテゴリー
左右に分割されています

| ステージNo. | ステージ名 | 内容 |
|---|---|---|
| 2.1.1 | Binary Racer | |
| 2.1.2 | Double Trouble | |
| 2.1.3 | Odd Number of Signals | |
| 2.1.4 | Circular Dependency | |
| 2.2.1 | Counting Signals | |
| 2.2.2 | Half Adder | |
| 2.2.3 | Delayed Lines | |
| 2.3.1 | Double the Number | |
| 2.3.2 | Full Adder | |
| 2.3.3 | Odd Ticks | |
| 2.4.1 | Bit Switch | |
| 2.4.2 | Bit Inverter | |
| 2.5.1 | Byte OR | |
| 2.5.2 | Byte NOT | |
| 2.5.3 | Adding Bytes | |
| 2.6.1 | Negative Numbers | |
| 2.6.2 | Input Selector | |
| 2.7.1 | Signed Negator | |
| 2.7.2 | The Bus | |
| 2.7.3 | Saving Gracefully | |
| 2.8 | Saving Bytes | |
| 2.9 | 1 Bit Decoder | |
| 2.10 | 3 Bit Decoder | |
| 2.11.1 | Logic Engine | |
| 2.11.2 | Little Box | |
| 2.11.3 | Counter |
3. CPU Architectureカテゴリー

| ステージNo. | ステージ名 | 内容 |
|---|---|---|
| 3.1.1 | Arithmetic Engine | |
| 3.1.2 | Registers | |
| 3.2 | Component Factory | |
| 3.3 | Instruction Decoder | |
| 3.4 | Calculations | |
| 3.5.1 | Conditions | |
| 2.5.2 | Program | |
| 2.6 | Immediate Values | |
| 2.7 | Turing Complete |
4. Programmingカテゴリー

| ステージNo. | ステージ名 | 内容 |
|---|---|---|
| 4.1 | Add 5 | |
| 4.2 | Calibrating Laser Cannons | |
| 4.3.1 | Spacial Invasion | |
| 4.3.2 | Storage Cracker | |
| 4.3.3 | Masking Time | |
| 4.4 | The Maze |
5. CPU Architecture 2カテゴリー

| ステージNo. | ステージ名 | 内容 |
|---|---|---|
| 5.1.1 | XOR | |
| 5.1.2 | Byte Constant | |
| 5.2.1 | Byte XOR | |
| 5.2.2 | Equality | |
| 5.3.1 | Unsigned Less | |
| 5.3.2 | Signed Less | |
| 5.4 | Wide Instructions | |
| 5.5 | Wire Spaghetti | |
| 5.6 | Opcodes | |
| 5.7 | Immediate Values | |
| 5.8 | Conditionals |
6. Functionsカテゴリー

| ステージNo. | ステージ名 | 内容 |
|---|---|---|
| 6.1.1 | Hex Racer | |
| 6.1.2 | Shift | |
| 6.1.3 | RAM | |
| 6.1.4 | Delay | |
| 6.2.1 | The Product of Nibbles | |
| 6.2.2 | Stack | |
| 6.2.3 | The Lab | |
| 6.3.1 | Divide | |
| 6.3.2 | PUSH and POP | |
| 6.4 | Functions |
7. Assembly Challengesカテゴリー

| ステージNo. | ステージ名 | 内容 |
|---|---|---|
| 7.1.1 | AI Showdown | |
| 7.1.2 | Robot Racing | |
| 7.1.3 | Unseen Fruit | |
| 7.1.4 | Delicious Order | |
| 7.2.1 | Dancing Machine | |
| 7.2.2 | Tower of Alloy | |
| 7.2.3 | Planet Names | |
| 7.3 | Water World |
全実績解除を目指す
Turing Completeには実績(Achivement)が用意されています。ストーリーモードを全クリアしたら、力試しに全実績の解除を目指すのはどうでしょうか。

難易度はグローバル実績の達成割合から推定しました。
※アップデートによって実績が増減する可能性があります。
| 実績名 | 実績解除の条件 |
|---|---|
| Turing Complete | Turing Completeステージをクリアする。 |
| 5 Component Full Adder | 5つの青いコンポーネントだけを使って、Full Adder回路を作成する。 Full Adderステージの解答で実績解除できる。 |
| 4 NAND = XOR | 4つのNANDコンポーネントのみを使ってXOR回路を作成する。 XORステージの別解3で実績解除できる。 |
| Symmetric ALU | 8ビット用コンポーネントのみを使ってLogic Engine回路を作成する。 Byte Splitterコンポーネントは8ビット用コンポーネントなのでセーフだが、3 Bit Decoderコンポーネントは使えない。 Logic Engineステージの別解などで実績解除できる。 |
| 3 Adder Multiply | 3つを超える8ビット加算器を使わずに(3つはセーフ)、The Product of Nibblesステージを解く。 The Product of Nibblesステージの別解で実績解除できる。 別解は3つの8 Bit Full Adderコンポーネントを使っているのでセーフである。 |
| Tutorial Complete | Functionsステージをクリアする。 このステージをクリアすると、記念すべき1つ目のCPUが完成したことになる。 |
| Condition 10 | 10つの青いコンポーネントだけを使って、Conditionsステージをクリアする。 Conditionsステージの別解で実績解除できる。 |
| Fast Adder | 遅延スコア35以下のByte Adder回路を完成させる。 Adding Bytesステージの別解4で実績解除できる。 |
| Water world | 最終ステージであるWater Worldステージをクリアする。 |
| Binary Counter | CounterステージをNANDスコア65以下でクリアする。 Counterステージの別解2で実績解除できる。 |
| FastBot | 64バイト以下のコードでRobot Raceステージをクリアする。 Robot Raceステージの別解3で実績解除できる。 |
| Helperbot | 宇宙船の4クエストをすべて完了する。 The Mazeステージをクリアすると迷路の外に出て、4つのクエストすべてにアクセスできるようになる。 攻略記事はこちらから。 |
| Best hat | 【隠し実績】伝説の最高の帽子を入手する。 攻略記事はこちらから。 |
| Black hat | 【隠し実績】帽子売りをハックする。 攻略記事はこちらから。 |
| Binary Racer | 【隠し実績】Binary Racerステージで最終レベル(レベル7)をクリアする。 攻略記事はこちらから。 現在、人間には現実的な不可能なレベルといわれている。 |
























