異色TVゲームで学ぶプログラミングの神髄 あなたも誇り高き社畜になってみませんか

✎ 1〜 ✎ 3 ✎ 4 ✎ 5 ✎ 最新
拡大
縮小

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

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

 

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

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

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

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

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

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

次ページすばらしい部分は?
関連記事
トピックボードAD
ライフの人気記事
トレンドライブラリーAD
連載一覧
連載一覧はこちら
人気の動画
【田内学×後藤達也】新興国化する日本、プロの「新NISA」観
【田内学×後藤達也】新興国化する日本、プロの「新NISA」観
TSUTAYAも大量閉店、CCCに起きている地殻変動
TSUTAYAも大量閉店、CCCに起きている地殻変動
【田内学×後藤達也】激論!日本を底上げする「金融教育」とは
【田内学×後藤達也】激論!日本を底上げする「金融教育」とは
【田内学×後藤達也】株高の今「怪しい経済情報」ここに注意
【田内学×後藤達也】株高の今「怪しい経済情報」ここに注意
アクセスランキング
  • 1時間
  • 24時間
  • 週間
  • 月間
  • シェア
会員記事アクセスランキング
  • 1時間
  • 24時間
  • 週間
  • 月間
トレンドウォッチAD
東洋経済education×ICT