Nintendo Switchでプログラミングそのものがパズルと化す「ヒューマン・リソース・マシーン」日本語版でデスマーチ回避にトライしてみた
新入社員「ぷろぐらまー」くんを命令して動かし、与えられた仕事をこなしていくことでゼロからプログラミングの知識をつけていくことができるパズルゲーム「ヒューマン・リソース・マシーン」が2017年6月8日からNintendo Switchで配信されています。公式サイトによると「目指すは誇り高き社畜……もとい社員!」とのことなので、プログラミングに疎い編集部員がプレイして高みを目指し、デスマーチを回避できるレベルになれるかどうかプレイしてみました。
ヒューマン・リソース・マシーン|Nintendo Switchソフト|任天堂
https://ec.nintendo.com/JP/ja/titles/70010000000753
Tomorrow Corporation : Human Resource Machine
https://tomorrowcorporation.com/humanresourcemachine
ヒューマン・リソース・マシーン | フライハイワークス
http://flyhighworks.heteml.jp/games/hrm/
◆「ヒューマン・リソース・マシーン」ゲーム開始から1年目まで
「ヒューマン・リソース・マシーン」の基本的な動きを確認してみたいと思います。ホーム画面でコントローラーのボタンを押すと画面が遷移します。
「どのIDカードだっけ?」と問われます。どうやら社員IDを求められているようなので、「new」のエリアから新規作成します。
上司にあたる人物に顔を覚えられていないようで、どのような見た目か聞かれます。色黒の男女、色白の男女と4パターンから選択。
社員IDを獲得したら、「エレベーターあっちだから」と誘導されます。
入社1年目の仕事をムービーにしてみたので、どのような動きか確認してみてください。
Nintendo Switch「ヒューマン・リソース・マシーン」入社1年目の様子 - YouTube
エレベーターには「わが社へようこそ」の張り紙が。どうやらプレイヤーは新入社員のようです。エレベーター1階のみが選択できます。
入社1年目の仕事は「運び屋さん」とのこと。
上司らしき人に「よく来たね」と歓迎されます。いい人そうでよかった。
「君には早速、簡単な仕事をしてもらうよ」
「なんかあったら聞いてくれ」とのこと。
上司の話が終わると仕事の指令が出てきます。「コマンドを組み合わせ、左のコンベアにあるパネルを右のコンベアに運んでください」と言われますが、何をすればいいのかがいまいちよくわかりません。
「なんかあったら聞いてくれ」と言ってくれていたので、早速上司に話しかけましょう。カーソルを上司に合わせボタンを押すと、ふきだしがでてきます。
一番上にある「上司に声をかける」を選択すると……
最初の会話を繰り返されます。
「もっと話したい」を選びます。
パネルを持つ「inbox」とパネルを運ぶ「outbox」を交互に並べていくのがよいそうです。
パネルやキャラクターを直接選択するのではなく、右側にある緑のコマンドを動かすことで、キャラクターに命令を与えるとのこと。
「解答例」を押すことで答えを教えてくれそうな気がしましたが……
結果を教えてくれるだけでした。とりあえず今回は、左のコンベアに並ぶ緑色のパネルを順番に運べばよいそうです。
コマンドリストから「inbox」をつかみ……
プログラムエリアにドラッグ&ドロップ。
「outbox」も同様に。
ドラッグ&ドロップで指示を出していきます。
プログラムエリアを確認できたら、再生ボタンを押します。
すると、新入社員が1つめのコマンド「inbox」によりパネルを手に取り……
2つめのコマンド「outbox」でパネルを運び、右のコンベアにリリース。
「OUTBOXのデータが足りてないよ!」と怒られてしまいました。しかし新入社員は表情を変えません。上司が怒鳴りながらもヒントをくれたので、「3個ある」という状態を目指します。「リセットする」を押して最初からやり直し。
同じ内容を3回繰り返してみました。これでどうでしょうか。
1つめを運びに行ったあと……
3つめのコマンド「inbox」に従い、パネルを取りに帰ってくれました。
3つ運び終えたらコンベアが流れていきました。正解のようです。
初年度の評価がでました。「若手らしいやる気はある様子。今後のガンバリに期待」とのこと。褒められているのかどうか微妙なところですが、とりあえずエレベーターに戻ります。
エレベーターに戻ると、2階、もとい入社2年目が解放されています。この要領でどんどんのぼりつめていきましょう。
◆プログラマーを目指して
入社6年目(ステージ6)まではチュートリアル。入社7年目から一気に複雑になっていくので、次第に増えるコマンドを習得していかねばなりません。
入社2年目は「忙しい運び屋さん」。「jump」コマンドが追加され、同じ動作を繰り返すことができるようになりました。
入社3年目は「コピーのお仕事」。「copyfrom」は指定した場所から数字・文字を手元にコピーします。
入社4年目は「逆にして運んで」。「copyto」は指定した場所に手元の数字・文字をコピーします。画像の場合「inbox」でパネルをとり、「copyto 0」で床の「0」部分に手に取ったパネルを貼り付けます。
入社5年目はコーヒーブレイク。このようにときおりアニメーションがはさまれ、「ヒューマン・リソース・マシン」の設定・ストーリーが見えてきます。
入社6年目は「真夏の雨」。「add」コマンドは指定箇所の数字を手元の数字に加算します。
入社7年目は「ゼロを取り除け」。ここから一気に複雑になるといった理由がコマンド「jump if zero」。手元の数字が0なら矢印の先にジャンプ、それ以外ならスルーという条件付きコマンド。
チュートリアルを終え、試しにステージ9に挑戦。以下が目的とコマンドです。
解答例を作成しました。ムービーがこちら。
「ヒューマン・リソース・マシーン」クリアだが、非効率? - YouTube
「ゼロだけを残せ」との指令。9年目の仕事です。
課題とコマンドリストがこちら。「0だけを右側に運んでください」との指令が。
パネルをとる「inbox」の次に「パネルがゼロならば矢印の先へジャンプ」のコマンド「jump if zero」で矢印の先にとび、その次の「outbox」でパネルを運びます。
「jump if zero」の後に「jump」を配置し最初に戻してやれば、パネルがゼロじゃなかったときに最初の「inbox」に戻ります。
末尾に同じことを繰り返すため「jump」を設置し最初に戻ります。これで、「パネルを取りゼロならばoutboxまでジャンプ」「パネルを取りゼロ以外なら次のパネルを手に取る」を繰り返し、目的達成してくれるわけです。
いざ再生。パネルが「6」、ゼロではないので捨てて次を手に取ります。
パネルが「0」なので獲得、運びます。
これを繰り返してクリア、しかし結果画面によると完全ではないとのこと。「サイズ(プログラムの行数)」は目標達成ですが、「スピード(実行のステップ数)」が3オーバーしています。
効率化を目指してみました。以下のムービーからどのように効率されているのかがわかるはず。
「ヒューマン・リソース・マシーン」YEAR 9解答例 - YouTube
こちらが新しいプログラム。
先ほどのもの(左)と効率化したもの(右)を比べると、赤枠の部分が注目点になります。効率化前は「inbox」の前にどうしても「jump」の着地先が2つ必要で、そこを通り過ぎるステップが余分にかかってしまいました。効率化後は「outbox」を前に持ってくる工夫により「inbox」前の「jump」の着地先が1つで済みます。
結果画面をみても、効率化目標を達成できたことがわかります。
このように、ただクリアするだけでも先には進めますが「最適」かつ「最小」のコマンドを作成することに挑戦することもできます。ただ、ステージが進むと「最適」「最小」コマンドはネットで論争が起きるほど難しいようです。さらに、ステージが進むにつれて命令できる内容は増えていきます。当然のことですが、コマンドが増えれば増えるほど難易度は上がっていきます。
画像は入社29年目のもの。ここまで来るとすべてのコマンドが出揃います。「add」は入社6年目で登場した足し算。その下の「sub」は引き算。手元の数字から指定箇所にコピーされた数字を引きます。
「bump」はカウントダウンのコマンドです。指定した箇所の数字を数字をプラス1、マイナス1します。これが登場するあたりで急に難易度が上昇します。
エンディングを見るための最終ステージの指令は、「並び替えよ」。「0」を終端とした文字列が流れてくるので、各文字列について並び替えを行って小さい順に右側に運ぶ、というものです。複雑で長い手順にはなりますが、ここまでの技術を総動員すれば解けない問題ではありません。
また、正規のクリアルートとは別に、高難易度のステージがあります。
そちらのルートは、上司にすら「わざわざ解きに来なくてもいいのよ」と言われるほどの難易度なので、実力に自信がある人向けです。
最終面に至っては、上司が「少なくともボクには解けないね」と言うほど。
そんな最高難度の指令は「素因数に分解せよ」。ここまで難易度が上がってくると、ひとつめになにをすべきかがわからず立ち往生してしまいます。クリアルート自体は確立されているようですが、効率化目標の同時達成はなかなかに難儀しているとのこと。解答例をまとめているGitHubのページでは、現在進行形で改良案が生まれ続けているようです。
ステージは全41面、難易度も後半に進むにつれて加速度的に増していき、パズルゲームとしてはかなりのボリュームがある「ヒューマン・リソース・マシーン」でしたが、覚えたコマンドを総動員して解決に臨み、少しずつ動作確認しながら最終目的を目指すという、新感覚のパズルゲームとして楽しめました。これによりプログラミング能力が向上するかと言われると難しいところですが、言うなれば「プログラミング的思考力」のようなものを身につけることができるはずです。プログラミングの教育の重要性を考えると、ゲームとして楽しめる「ヒューマン・リソース・マシーン」であれば、プログラミングをしたことがない人であっても、プログラミング的思考力を育てるのに大いに役立つ可能性大です。
・関連記事
Nintendo Switchにプログラミングツール「FUZE Code Studio」が登場、Switch上でスイッチ用ゲームを作ることが可能に - GIGAZINE
23年ぶりに登場したマニアが作った渾身の2Dクラシックソニック「ソニックマニア」プレイレビュー - GIGAZINE
ソースコードを見てどのプログラミング言語なのかを特定するクイズ「Language Identification Quiz」 - GIGAZINE
6歳の子ども向け「プログラミング教室」を実際にやってわかった成功させる方法 - GIGAZINE
あなたの使うプログラミング言語は何位?人気ランキング「Top Programming Languages 2017」発表、「急成長中の言語」「就職の際に有利になりそうな言語」も - GIGAZINE
・関連コンテンツ