ヒューマンリソースマシーン解答例: 1

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

「ヒューマン・リソース・マシーン」レビューにおいてレビューした「ヒューマン・リソース・マシーン」の解答例を少しずつ書いてみたい。今回は出題1〜2の解答例と解説を掲載する。

運び屋さん (YEAR 1)

解答例

→inbox
outbox→
→inbox
outbox→
→inbox
outbox→

解説

「ヒューマンリソースマシーン」における「Hello, world」プログラムみたいのなもの。ここでは「→inbox」と「outbox→」の二つの命令が使える。

左のコンベアにある全てのパネルを右のコンベアに運ぶ必要があるが、最初はそれを知らないで、

→inbox
outbox→

としてしまいがちである。この時はエラーとして怒られる。

忙しい運び屋さん (YEAR 2)

解答例

模範解答 (サイズ目標を満たした場合)

top:
→inbox
outbox→
jump top

その他の解答例 (スピード目標を満たした場合)

top:
→inbox
outbox→
→inbox
outbox→
jump top

解説

ここでは初めてjump命令が使えるようになる。これによってループ処理を行えるようになり、多数の処理を短いコードで行えるようになる。

なお、当ブログでは実際のゲームの内容とは違い、jump命令の飛び先が異なっている。今回の解答例のコードでは、top:という部分では処理は行わず、jump topという命令で、制御をtop:まで移動させるというものになっている。なお、jump命令の飛び先は行数にはカウントされない。

しかしながら、この問題ではサイズ目標とスピード目標の両方を同時に満たすことはできない。というのは、jump命令も1ステップに含まれるからである。

タイトルとURLをコピーしました