[Switch][iOS]プログラミングを学べてしまうパズルゲーム「ヒューマンリソースマシーン」が面白すぎる
公開日:
:
iPhoneアプリ
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
@akio0911です。
以前から気になっていたパズルゲーム「ヒューマンリソースマシーン」を買ってプレイしているんですが、これが面白すぎて、外ではiPhoneとiPad、家ではSwitchでずっと遊んでいます。ハマりすぎて困ってます(笑)
こんな人にオススメなゲームです!
- プログラミングを学んでみたい
- プログラミングを過去に学んだことはあるが、処理の内容を自力で考えることができなくて挫折してしまった
- プログラミングはやったことがあるが、アセンブリ言語や、CPUがどのようにして動いているのか知りたい
- 開発中にアプリがクラッシュした時に出てくるマシン語?みたいなやつがどんなことをしているのか知りたい
って方にオススメです!
シンプルなコマンドを組み合わせて、上司の課題を満たすプログラムを作り上げる!
「基本的なコマンドを組み合わせてプログラムを作り、上司から出される指示を満たすように、左側にあるブロックを右側に移動させる」という、ルールはものの数分で理解できるわりかしシンプルなゲームです。
↑ 最初はこんな感じで
- 左側からブロックを取り出す
- 手に持っているブロックを右側に置く
- プログラムの実行位置を指定した場所までジャンプする
3つのシンプルなコマンドを組み合わせるだけなので楽勝なんですが、
↑ ステージをクリアするに従って、上司からの指示が少しずつ難しくなっていき、使用できるコマンドも少しずつ増えていきます。
↑これは「0ではないブロックだけを右側に移動する」という課題。
- 手に持っているブロックを床にコピーする
- 床においてあるブロックを手元にコピーする
- 手元にあるブロックと床に置いてある数値を足す
- 手元のブロックが0だったら、実行位置を指定した位置へジャンプする
というコマンドが増えてます。
↑ これは「左側にあるブロックを右側に移動する。ただしそのブロックの数値がマイナスの場合は、符号を除去してプラスにしてから移動する」という課題。
- 手元にあるブロックから、床に置いてある数値を引く
- 手元のブロックがマイナスだったら、実行位置を指定した位置へジャンプする
というコマンドが増えています。
という具合に、ステージが難しくなっていく度合いが絶妙で、新しく追加されたコマンドの基本的な使い方をマスターする→応用的な使い方をマスターする、という風に少しずつコマンドに慣れていけるように構成されていると感じました。
実際のコンピュータもスマホも同じような仕組みで動いてます!
最近だとプログラムはJavaScriptとかRubyとかSwiftとかJavaとかのいわゆる高級言語とかで書くことが多いかと思いますが、これらは最終的にはマシン語と呼ばれているものに変換され、CPU(コンピュータやスマホの中に搭載されているチップ)の中で実行されることになります。
その際にマシン語とかCPUとかがやっていることは、実は今回紹介したヒューマンリソースマシーンでやっていることとほとんど同じなんです!
コマンドはオペレーションコードあるいはオペコードと呼ばれるものだし、左側と右側のブロックが置いてある領域はメモリだし、真ん中の一時的にブロックを置いておく領域はCPU内のレジスタと呼ばれるものです。
このゲームを遊んだ後にCPUの仕組みを解説している書籍を読むと、驚くほど同じような仕組みになっていることが分かるかと思います。
プログラムをより短くしたり、実行時間をより短くする、やりこみ要素もあり
「プログラムをより短くする」「実行時間をより短くする」というやりこみ要素もあるので、既にプログラミングに慣れ親しんでいて、各ステージで出される課題をわりとすんなりクリアできてしまったエンジニアの方は、こちらに挑戦してみるのも良いかと思います。
@akio0911はこう思った。
色々と悩みながらようやく完成したプログラムが最後まで問題なく動いた時の喜びは格別なものがあります!
ぜひぜひ遊んでみて下さいっ!
by @akio0911
関連記事
この記事が気に入ったら「いいね!」しよう
Twitterで更新情報をゲット!