『マリオメーカー』で計算機を作る人、ついに31+31を5秒で計算できる回路を生み出す!

写真拡大 (全11枚)

 今回紹介するのは、完熟ニコみかんさんが投稿した『マリオメーカーで31+31が5秒で計算できる回路を説明してみた。』という動画です。

投稿者メッセージ(動画説明文より)

小型化・高速化しました。

マリオメーカーで31+31が5秒で計算できる回路を説明してみた。

 任天堂のゲーム『スーパーマリオメーカー』で計算機をつくる人が、研究を重ね、ついに「31+31」を5秒で計算できるようになりました。

 『スーパーマリオメーカー』は、オリジナルのコースを作って遊ぶものです。2015年のゲーム発売直後「3+3」を計算する動画が投稿され、その後、複数の有志により脈々と開発が続いています。

 今回の動画は「31+31」を5秒で計算するというもの。相当な高速化が図られています。その動きを見ていきましょう。

 入力は2進数です。「31+31」を2進数で表すと「11111+11111」。10個並んだ音符ブロックが入力に対応しているので、まずは全部叩きます。

 音符ブロックから飛び出したトゲゾーは、画面右側に流れていきます。画面右端にある氷ブロックが計算結果を示しています。このブロックの上にトゲゾーがいれば“1”、いなければ“0”を示しています。

 出力は6桁で、上から読みます。一番下のみトゲゾーがいない状態ですので、結果は“111110”。10進数にすると62です。きちんと計算できています。

 次のデモンストレーションは「31+1」。これは2進数にすると「11111+00001」です。入力の音符ブロックは左から、足される数の16の位、足す数の16の位、足される数の8の位、足す数の8の位……の順で並んでいるので、“1010101011”と入力します。

 一気に桁上がりが起こり、“100000”すなわち10進数の32が出力されます。

 仕組みはどうなっているのでしょうか。コンピューターと同様、半加算器から考えます。半加算器は2進数の「1+1」を計算するものです。繰り上がりの桁と、1の位が出力されます。

 音符ブロックが入力で、出力は右側を見ます。右側の上段が繰り上がり、下段が1の位を示します。メットがいれば”1”、何もいなければ”0”です。

 左側の音符ブロックを叩くと、右下の1の位を示すスペースにメットが入ります。

 続けて右側の音符ブロックを叩きます。すると、飛び出たメットは、右下の1桁目を示すスペースにすでにいるメットを弾き飛ばします。

 同時に、右側上の桁上がりを示すスペースにもメットが入りました。結果は“10”(10進数の2)となり、1+1が計算できました。

 半加算器を応用して、下からの桁あがりも入力できる全加算器をつくります。

 全加算器をいくつも組み合わせて、5桁+5桁の演算装置をつくりました。同様の計算は、2015年には20秒かかっていました。驚きの進化です。

文/高橋ホイコ