異色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
ライフの人気記事