2015年9月29日火曜日

そういうゲームじゃねえからこれ! マリオメーカーに「3+3=6」を計算させてみた動画が天才の発想すぎる

 Wii U専用ソフト「スーパーマリオメーカー」に「3+3=6」を計算させてみた動画が投稿されています。なるほど、わからん。

 コンピュータの演算には、+、-、×、÷でおなじみの四則演算のほかに、2つ以上の1または0の入力値に対して、1または0を出力する「論理演算」があることを学生時代に学習した方も多いのでは。この動画は、そんな論理演算をなぜか「マリオメーカー」でやってみたくなったという、なぜベストを尽くしたのか案件です。

 基礎的なAND演算、OR演算、NOT演算だけでなくNAND演算、NOR演算、XOR演算などもひとつひとつ検証しながらコースを構築していく投稿主さん。コンピュータでは「電流が流れる=1」、「電流が流れない=0」として演算するのですが、マリオメーカーでは電流の代わりに亀の甲羅を使用します。

 二進数において一桁同士の足し算を行い、その位の結果と繰り上がりがあるかどうかを出力する半加算器。そしてA、Bとは別の入力Xを用意し、前の位からの繰り上がりがあればX-1、なければ0としてA+B+Xのその位の結果と繰り上がりがあるかどうかを出力する全加算器。この両方を用意し、つなげることで二桁(二進数)同士の足し算までを可能にしています。すごい! これそういうゲームだっけ!!?

 つまり、機械は0と1しか認識することができず、1=1、2=10、3=11、4=100となるため、二桁同士の足し算ができるこのコースでは「3(11)+3(11)=6(110)」が限界となるわけです。う、う~ん。

 単純な計算なのに、ここまで大がかりでややこしいコースなってしまうとは……。普段何気なく使っているコンピュータの偉大さを改めて痛感させられます。

0 comments:

コメントを投稿