異色TVゲームで学ぶプログラミングの神髄

あなたも誇り高き社畜になってみませんか

プレーヤーが使える命令はあまりにも貧弱だ。すごく少ないから全部説明しよう。

「inbox」入力のベルトコンベヤーに待機している箱を手に持つ
「outbox」手に持っている箱を出力のベルトコンベヤーに置く
「copyfrom」指定番号の床に置いてある箱をコピーして手に持つ
「copyto」指定番号の床に、手に持った箱をコピーして置く
「add」手に持った箱と、指定番号の床に置かれた箱の内容を足して、その結果を手に持つ
「sub」手に持った箱から、指定番号の床に置かれた箱の内容を引いて、その結果を手に持つ
「bump+」指定番号の床に置かれた箱の数値を+1して手に持つ
「bump-」指定番号の床に置かれた箱の数値を-1して手に持つ
「jump」指定の行まで飛ぶ
「jump if zero」手に持った値が0なら、指定の行まで飛ぶ
「jump if neg」手に持った値がマイナスなら、指定の行まで飛ぶ

 

以上。なお、最終的には指定番号に間接参照を使えるようになる。間接参照の意味を説明するのは面倒なので、ゲーム内で教わってほしい。

最初からこれらが全部使えるのではなく、後半になるに従って使える命令が増えていく。ゲームをクリアしていけば、読んだだけではちんぷんかんぷんな命令の使い方も徐々に理解できるようになる。

プログラムのスパゲティ化は避けられない

それにしても、あまりに命令が少ない。たとえば足し算と引き算の命令しかないのに、お題では掛け算や割り算を要求される。また条件分岐でも「ab」「a==b」みたいな比較演算子は使えない。条件分岐はjump命令で実現するしかなく、プログラムのスパゲティ化は避けられない。

スパゲティ化とは、まさに皿に盛られたスパゲティのように、どこがどこにつながっているのか、さっぱりわからないプログラムの状態を指す。普通のプログラミングであればダメダメなコードだが、このゲームではスパゲティ化は必然である。

そんな貧弱な命令を駆使して、フィボナッチ数列を出力したり、素因数分解をしたり、文字列のソートを行わなければならない。後半は職業プログラマーでも頭の中がぐちゃぐちゃになること請け合いだ。

次ページすばらしい部分は?
ライフの人気記事
トピックボードAD
関連記事
  • 非学歴エリートの熱血キャリア相談
  • スージー鈴木の「月間エンタメ大賞」
  • 今見るべきネット配信番組
  • 「お金で損しない」森永康平のマネーリテラシー講座
トレンドライブラリーAD
人気の動画
採用担当者が嘆く「印象の悪い就活生」の共通点
採用担当者が嘆く「印象の悪い就活生」の共通点
ヤマト独走に待った!佐川・日本郵便連合の勝算
ヤマト独走に待った!佐川・日本郵便連合の勝算
度数1%未満の「微アルコール」が広がる理由
度数1%未満の「微アルコール」が広がる理由
アメリカの若者の心つかむ中国アパレル「SHIEN」の正体
アメリカの若者の心つかむ中国アパレル「SHIEN」の正体
アクセスランキング
  • 1時間
  • 24時間
  • 週間
  • 月間
  • シェア
トレンドウォッチAD
私大トップ校の次の戦略<br>早慶上理・MARCH・関関同立

受験生確保や偏差値で高い水準を誇る関東・関西のトップ私大13校。少子化や世界との競争といった課題に立ち向かうための「次の一手」とは。大きく揺れる受験動向や、偏差値や志願倍率と比べて就職のパフォーマンスが高い大学・学部なども検証します。

東洋経済education×ICT