Basic Logic基礎の論理

Crude Awakening粗野な目覚め

このゲームにおけるインプットとアウトプット、ワイヤーのシグナルの伝達について学ぶ。

解答(ネタバレ注意)

NAND GateNANDゲート

NANDゲートの導入。入力を変化させ、下部の真理値表の出力を正しく埋める。

解答(ネタバレ注意)

NOT GateNOTゲート

NANDゲートを用いて、NOTゲートを作成する。

解答(ネタバレ注意)

AND GateANDゲート

NAND、NOTゲートを用いて、ANDゲートを作成する。

解答(ネタバレ注意)

NOR GateNORゲート

NAND、NOTゲートを用いて、NORゲートを作成する。

解答(ネタバレ注意)

OR GateORゲート

NAND、NOTゲートを用いて、NORゲートを作成する。

解答(ネタバレ注意)

Always On常にON

常に出力がオンとなる回路を作成する。

解答(ネタバレ注意)

Second Tick2番目のティック

真理値表の2番目のみがONとなる回路を作成する。

解答(ネタバレ注意)

XOR GateXORゲート

今までに作成したゲートを利用して、XORゲートを作成する。

解答(ネタバレ注意)

Bigger OR Gateより大きなORゲート

3入力のORゲートを作成する。

解答(ネタバレ注意)

Bigger AND Gateより大きなANDゲート

3入力のANDゲートを作成する。

解答(ネタバレ注意)

XNOR GateXNORゲート

今までに作成したゲートを利用して、XNORゲートを作成する。

解答(ネタバレ注意)

Arithmetic算術

Binary Racer2進数レーサー

10進数から2進数への変換問題に回答する。レベル4到達でクリア。

Double Trouble2重の問題

4つの入力のうち2つ以上がONの時にONを出力する回路を作成する。

解答(ネタバレ注意)

ODD Number of Signalsシグナルの奇数

ONの入力の数が奇数の時にONを出力する回路を作成する。

奇数を判定するには、XORゲートが有用です。

解答(ネタバレ注意)

Counting Signalsシグナルのカウント

ON入力の数を3ビットの2進数として出力する回路を作成する。

解答(ネタバレ注意)

Double the Number数を2倍に

バイト入力を2倍にして出力する回路を作成する。

バイト入力を右 or 左にシフトすると値はどうなる?

解答(ネタバレ注意)

Half Adder半加算器

半加算器を作成する。

解答(ネタバレ注意)

Full Adder全加算器

全加算器を作成する。

半加算器を2つ使用します。

解答(ネタバレ注意)

Byte ORバイトOR

2つのバイト入力の各ビットのORをとる回路を作成する。

解答(ネタバレ注意)

Byte NOTバイトNOT

バイト入力の各ビットのNOTをとる回路を作成する。

解答(ネタバレ注意)

Adding Byteバイトの加算

2つのバイト入力の加算を行う回路を作成する。

解答(ネタバレ注意)

Negative Numbers負の数字

10進数から"符号つき"2進数への変換問題に回答する。レベル4到達でクリア。

最上位ビットは負の符号を表します。負の値であれば、必ず最上位ビットはONになっています。

Signed Negator正負の反転

バイト入力の正負を反転させて出力する回路を作成する。

2の補数の作り方の手順を考えて取り組みましょう。

解答(ネタバレ注意)

1 bit decoder1ビットデコーダー

1ビットの2進数を10進数に変換する回路を作成する。

解答(ネタバレ注意)

3 bit decoder3ビットデコーダー

3ビットの2進数を10進数に変換する回路を作成する。

解答(ネタバレ注意)

Logic Engine論理エンジン

2つのバイト入力のOR、NAND、NOR、ANDの出力をインプットのコードに応じて切り替えられる回路を作成する。

バイト用のORとNOTを利用して、NAND/ANDを作成するとコンパクトになります。

解答(ネタバレ注意)

Memory記憶

Circular Dependency循環参照

循環参照を行う回路を作成する。

出力を入力に戻して、循環するようにしてみましょう。

解答(ネタバレ注意)

Delayed Lines遅延回路

入力を2ティック送らせて出力する回路を作成する。

解答(ネタバレ注意)

Odd Ticks交互に出力

ON/OFFを交互に出力する回路を作成する。

入力は常にOFFなので、必ずしも入力を使う必要はありません。

解答(ネタバレ注意)

Bit Switchビット切り替え

入力ビットを切り替える回路を作成する。
※利用できるモジュールの制限あり。

解答(ネタバレ注意)

Bit Inverterビット反転

反転フラグが有効である時、入力ビットを反転させる回路を作成する。

解答(ネタバレ注意)

Input Selector入力の選択

2つのバイト入力のどちらを出力するかを選択できる回路を作成する。

解答(ネタバレ注意)

The Busザ・バス

2つずつのバイト入出力のどちらを入出力するかを選択できる回路を作成する。

解答(ネタバレ注意)

Saving Gracefully華麗に保存

保存フラグが有効である時、入力ビットを保存する回路を作成する。

循環参照を用いて、入力を保存する回路を作成する事が出来ます。

解答(ネタバレ注意)

Saving Bytesバイトの保存

バイト入力を保存/出力フラグに応じて、保存/出力を行う回路を作成する。

解答(ネタバレ注意)

Little Box小さな箱

8ビットレジスタを4つ使用し、レジスタの指定により4つの任意のレジスタを選択して値を保存/出力できる回路を作成する。

レジスタは保存/出力フラグが有効である時のみ入力/出力を行います。

解答(ネタバレ注意)

Counterカウンタ

1ティックに1ずつ加算されるカウンタを作成する。ただし、上書きフラグが有効である時はバイト入力の値でカウンタの数字を上書きし、その値からカウントアップを再開する。

レジスタと加算器をそれぞれ1つずつ使用すると簡単です。※使用しなくても作成可能

解答(ネタバレ注意)

CPU ArchitectureCPUアーキテクチャ

Arithmetic Engine算術エンジン

2つのバイト入力のOR、NAND、NOR、AND、加算、減算の出力をインプットのコードに応じて切り替えられる回路を作成する。

OR/NOR・NAND/AND・加算/減算の組で共通のモジュールを利用すると、コンパクトに作成出来ます。

解答(ネタバレ注意)

Registersレジスタ

6つのレジスタ・入力/出力に対して、レジスタの指定に応じて保存/出力できる回路を作成する。

基本的な考え方は、"Little Box"と同じですが、今回はレジスタの指定に3ビットデコーダーが利用できます。

Component Factoryコンポーネント・ファクトリー

コンポーネント・ファクトリーに関する説明。

以降のレベルではコンポーネント・ファクトリーのコンポーネントが利用可能なので、回路が大きくなってしまう場合は積極的に利用しましょう。

Instruction Decoder命令デコーダー

バイト入力の上位2ビットを利用して、即値・計算・コピー・条件の命令を切り替えられる回路を作成する。

解答(ネタバレ注意)

Calculations計算

"Registers"で作成した回路に"Arithmetic Engine"で作成したALUを追加する。

バイト出力が混ざらないようにバイト切り替えモジュールを利用してみましょう。

Conditions条件

バイト入力の0と等価・大小判定をする回路を作成する。

全てのビットがOFFなら0、最上位ビットがONの場合は負の数であると判定出来ます。

解答(ネタバレ注意)

Programプログラム

"Calculations"で作成した回路にプログラムカウンタを追加し、プログラムを実行できるようにする。

Immediate Values即値

"Program"で作成した回路に即値入力を追加する。

作成しているコンピュータの都合上、64以上の即値入力は出来ません。

Turing Completeチューリング完全< Working Computer

"Immediate Values"で作成した回路に"Conditions"で作成した比較回路を追加し、動作するコンピュータを完成させる。

Programmingプログラミング

Add 55の加算

入力に5を加算するプログラムを作成する。

解答(ネタバレ注意)

Calibrating Laser Cannonレーザー・キャノンの較正

入力された惑星の半径から円周を出力するプログラムを作成する。
※πは3として近似

掛け算の実装はないので、足し算で代用しましょう。

解答(ネタバレ注意)

Spacial Invasion宇宙からの侵攻

ロボットを操作して、迫ってくるネズミをすべて討伐するプログラムを作成する。

ロボットは自分の前にあるブロックのIDを入力に出力してくれます。
const文を利用して、ロボットの操作のために出力する番号を変数として登録しておくと便利です。

解答(ネタバレ注意)

Storage Crackerストレージ・クラッカー

0から255のパスコードを総当たりで出力し、パスコードをクラックするプログラムを作成する。

label文と数値比較を利用して、ループするプログラムを作成しましょう。

解答(ネタバレ注意)

Masking Timeマスキング・タイム

入力を「mod 4」して出力するプログラムを作成する。

AND演算を利用すると、値の必要な部分のみを抽出することが出来ます。

解答(ネタバレ注意)

The Maze迷路

ロボットを操作して、迷路から脱出させるプログラムを作成する。
※コインは獲得しなくても良い。

右 or 左壁沿いに辿って行けばゴールに到達出来ます。

解答(ネタバレ注意)

CPU Architecture 2CPUアーキテクチャ2

XOR排他的論理和

入力を2回読み取って、それらのXORを出力する。
※プログラム or ALUへの実装どちらでも良い。

Byte Constantバイトの定数

定数のバイトを出力する回路を作成する。

解答(ネタバレ注意)

Byte XORバイトのXOR

2つのバイト入力の各ビットのXORをとる回路を作成する。

解答(ネタバレ注意)

Equality等価

2つのバイト入力の等価を判定する回路を作成する。

減算を利用しましょう。

解答(ネタバレ注意)

Unsigned Less符号なし大小比較

"符号なし"のバイト入力の1つ目が2つ目よりも小さい時にONを出力する回路を作成する。

解答(ネタバレ注意)

Signed Less符号あり大小比較

"符号あり"のバイト入力の1つ目が2つ目よりも小さい時にONを出力する回路を作成する。

解答(ネタバレ注意)

Wide instructions様々な命令

偶数ティックの時にプログラムの出力を保存し、奇数ティックの時に保存した値と現在のプログラムの出力の2つを出力する回路を作成する。

奇数か偶数はバイトの下位1ビットで判定出来ます。

解答(ネタバレ注意)

Wire Spaghettiワイヤー・スパゲッティ

"LEG"アーキテクチャのコンピュータの作成を開始する。

解答(ネタバレ注意)

Opcodesオペコード

"Wire Spaghetti"で作成した回路に加算、減算、AND、OR、NOT、XORの命令を追加する。ALUはコンポーネント・ファクトリー等で自作する。

Immediate Values即値2

"Opcodes"で作成した回路に即値入力を追加する。

Conditionals条件2

"Immediate Values"で作成した回路に比較回路を追加し、"LEG"アーキテクチャのコンピュータを完成させる。比較回路はコンポーネント・ファクトリー等で自作する。

解答(ネタバレ注意)

Functions関数呼び出し

Hex Racer16進数レーサー

16進数から2進数への変換問題に回答する。レベル4到達でクリア。

Shiftシフト

バイト入力を任意のバイト入力分ビットシフトする回路を作成する。※最大7ビットシフト。

解答(ネタバレ注意)

RAMランダムアクセスメモリ

"LEG"アーキテクチャのコンピュータにRAMを追加し、必要な命令も合わせて追加する。

解答(ネタバレ注意)

Delay遅延

回路の遅延スコアに関する説明。

解答(ネタバレ注意)

The Product of Nibblesニブルの産物

2つのバイト入力の掛け算を行う回路を作成する。

ビットシフトを有効活用しましょう。

解答(ネタバレ注意)

Stackスタック

スタックを実現する回路を作成する。

解答(ネタバレ注意)

Divide除算

2つのバイト入力の割り算を行う回路を作成する。

解答(ネタバレ注意)

PUSH and POPプッシュとポップ

"LEG"アーキテクチャのコンピュータにスタックを追加し、必要な命令も合わせて追加する。

解答(ネタバレ注意)

Functions関数呼び出し

"LEG"アーキテクチャのコンピュータに関数呼び出しを追加し、必要な命令も合わせて追加する。

解答(ネタバレ注意)

Assembly Challengesアセンブリへの挑戦

AI ShowdownAIと対決

解答(ネタバレ注意)

Robot Racingロボットレース

解答(ネタバレ注意)

Unseen Fruit見えない果物

解答(ネタバレ注意)

Delicious Order美味しさの順番

解答(ネタバレ注意)

Dancing Machineダンシング・マシン

解答(ネタバレ注意)

Tower of Alloy合金の塔

解答(ネタバレ注意)

Planet Names惑星の名前

解答(ネタバレ注意)

Water World水の世界

解答(ネタバレ注意)
×

ド・モルガンの法則

Coming Soon...

2進数における負数表現

Coming Soon...

アセンブリ言語

Coming Soon...

アセンブリにおけるループ

Coming Soon...

スタック(LIFO)について

Coming Soon...

関数呼び出し(サブルーチン)

Coming Soon...