• 【ぽこあポケモン】ゲームの中で2進数電卓を作ってみた(仕組み解説)

    ,

    ぽこあポケモンでは、水や扉、センサーなどを組み合わせることで、
    ちょっとした回路のような仕組みを作ることができます。

    今回はその仕組みを使って、ゲームの中に 2進数の足し算をする電卓 を作ってみました。

    少しお勉強っぽい内容になりますが、
    仕組みが分かると「こんなこともできるのか」と遊びの幅が広がると思います。

    気になる方は、ぜひ読んでみてください。


    ぽこあポケモンで作った2進数電卓

    緑のランプが1桁目、赤のランプが2桁目を表しています。

    左右のスイッチが入力となり、その入力に応じた計算結果が 2進数でランプに表示されます。


    電卓の全体構造

    この回路は、実は AND回路とXOR回路 を組み合わせて作っています。


    電卓の仕組み(簡単に)

    1桁の2進数の足し算は、以下の表の関係になっています。

    入力1入力2結果
    0000
    0101
    1001
    1110

    このとき

    • 1桁目→ XOR回路
    • 2桁目 → AND回路

    で表現できます。

    入力1入力2AND(2桁目)XOR(1桁目)
    0000
    0101
    1001
    1110
    • 1桁目は、入力が違うときだけ出力が1になる
    • 2桁目は、両方の入力が1のときだけ出力が1になる

    AND回路やXOR回路については、こちらの記事で詳しく解説しています。


    回路の構造

    全体をそれぞれ役割のパーツに分けると

    • 入力1
    • 入力2
    • XOR回路
    • AND回路

    の4パーツに分割できます。


    入力1と入力2について

    この電卓では、左右にあるスイッチが 入力1入力2 になっています。

    スイッチを押すと、水が流れて 対応する入力ラインが満たされる仕組みになっています。

    入力1を押した状態

    入力2を押した状態

    入力1のボタンを押すと、入力1の通路に水が流れ、
    その水を AND回路とXOR回路のセンサーがそれぞれ検知します。

    入力2も同じ仕組みで、入力2の通路に水が流れると、
    AND回路とXOR回路のセンサーが反応します。

    つまり、この電卓では

    • 入力1の水
    • 入力2の水

    という 2つの信号を使って、
    AND回路とXOR回路が計算を行う仕組みになっています。


    XOR部分の仕組み

    まずは XOR回路(1桁目) の動きを見てみます。

    XOR回路は、

    「入力がどちらか片方だけのときに1になる」

    という特徴があります。

    つまり、

    • 入力が無い → 0
    • 入力1だけ → 1
    • 入力2だけ → 1
    • 両方入力 → 0

    という動きになります。

    それぞれ実際の回路の動きを見てみます。

    入力なし

    どちらの入力にも水が流れていない状態です。

    この場合、XOR回路のセンサーは反応しないため、
    1桁目のランプは点灯しません。

    入力1のみ

    入力1のボタンを押すと、入力1の通路に水が流れます。

    この水をXOR回路のセンサーが検知するため、
    1桁目のランプが点灯します。

    入力2のみ

    入力2のボタンを押すと、入力2の通路に水が流れます。

    入力1のときと同じように、
    XOR回路のセンサーが反応するため、1桁目のランプが点灯します。

    入力1と入力2の両方

    両方の入力に水が流れると、
    二つの扉が閉まるため、水を通さずXOR回路のセンサーは反応しません。

    そのため、1桁目のランプは消灯します。

    このようにXOR回路は

    入力1入力2ランプ(1桁目)
    ONON光らない(OFF)
    ONOFF光る(ON)
    OFFON光る(ON)
    OFFOFF光らない(OFF)

    という動きをします。

    つまり、この箇所では 「1桁目の計算結果」 を表現していることになります。


    AND部分の仕組み

    次に AND回路(2桁目) の動きを見てみます。

    AND回路は、
    「両方の入力があるときだけ1になる」
    という特徴があります。

    つまり、

    • 入力が無い → 0
    • 入力1だけ → 0
    • 入力2だけ → 0
    • 両方入力 → 1

    という動きになります。

    それぞれ実際の回路の動きを見てみます。

    入力なし

    どちらの入力にも水が流れていない状態です。

    この場合、AND回路のセンサーは反応しないため、
    2桁目のランプは点灯しません。

    入力1のみ

    入力1だけに水が流れている状態です。

    AND回路は 両方の入力がそろったときだけ反応する ため、
    この状態ではセンサーは反応せず、2桁目のランプは点灯しません。

    入力2のみ

    入力2だけに水が流れている状態です。

    この場合も入力は1つだけなので、
    AND回路のセンサーは反応せず、ランプは点灯しません。

    入力1と入力2の両方

    両方の入力に水が流れると、
    AND回路のセンサーが反応します。

    その結果、
    2桁目のランプが点灯します。

    このようにAND回路は

    入力1入力2ランプ(2桁目)
    ONON光る(ON)
    ONOFF光らない(OFF)
    OFFON光らない(OFF)
    OFFOFF光らない(OFF)

    という動きをします。

    つまり、この箇所では 「2桁目の計算結果」 を表現していることになります。

    これらの入力, AND回路, XOR回路の仕組みを使うことで、2進数電卓を作ることが出来ます。


    意外とシンプルでしょ?

    実際に作ってみると、電卓の仕組みは意外とシンプルです。
    基本的な回路を組み合わせるだけで、ゲームの中でも計算を再現することができます。

    もっと効率の良い回路も作れると思うので、ぜひいろいろ試してみてください。

    せっかく人間がいなくなった世界なのに、また人間の手で機械化させましょう!
    良きぽこあ回路ライフを!


    ぽこあ回路関連

    【ぽこあポケモン】ぽこあ回路入門 | 何から作ればいいかわからない人へ

    【ぽこ あ ポケモン】クロック回路作ってみた(ぽこあ回路)

    【ぽこあポケモン】ゲーム内で足し算できる電卓を作ってみた!(ぽこあ回路)

    【ぽこあポケモン】ゲーム内で論理回路を作る(AND / OR / XOR回路)

最新の記事