ゲームで学ぶプログラミング

明けましておめでとうございます。
プログラマのわたしんです。

本年もどうぞ技術ブログをよろしくお願いします。

ということで年明け一発目の内容は
新しくプログラミング始めてみようかな?」という人に向けて行ってみたいと思います。

ゲームでプログラミング

いざプログラミングを始めよう!とした場合、
何を用意したらいいのか、何から学んだら良いのか迷いますよね?
そのハードルを下げる為に今回はゲームでプログラミングを学ぶ方法を提案します。
ゲームができる環境さえ整えれば後は参考書も不要。
それになんてったってゲームは面白いから勉強が長続きします。

今回は「ヒューマンリソースマシーン」というゲームを紹介します。
Nintendo Switch、WiiU、iOS、Androidなどで配信されています。
ただ日本語に翻訳されているのはNintendo SwitchとWiiUのみのようです。

このゲームは主人公(人間)に命令を与えて仕事をさせるゲームになっています。

©2017 Experimental Gameplay Group, LLC

もうちょっと解説すると
ゲームの目的は左のベルトコンベアにある文字や数字の書かれた箱を
ステージの指示通りに右のベルトコンベアに置きなおすことです。
その為に左のベルトコンベアから箱を1つもってくる「inbox」や
右のベルトコンベヤに箱を1つ置く「outbox」を使います。
この命令を組み合わせて処理(仕事)をさせるということがそのままプログラミングになります。

ゲームでのプログラミングはとてもグラフィカルで結果がすぐに見えます。
これがイインデス!
正直プログラミングは画面に結果が出るまでが長くツライ・・・
だからこそ最初はすぐ結果が見える環境で勉強しましょう。

アルゴリズムやポインタを学ぶ

プログラミングはまず文法を覚えます。
そして次に「アルゴリズム」と呼ばれるプログラミングの考え方を学びます。
条件判定、交換、ソート、探索などです。

後は言語によりけりなのですがCやC++と呼ばれる言語では
ポインタ」と呼ばれる間接的に指定を行う考え方があります。
このゲームではプログラミング学習の鬼門とされているポインタを含め
プログラミングに必要なことを視覚的にわかりやすく覚えられるのではないかと思います。

習得したいプログラミング言語に合わせてゲームを選ぶとよさそうですね。

最適化を行う

このゲームには各ステージに「サイズ目標」と「スピード目標」が存在します。
サイズ目標」はプログラムの行数をどれだけ少なくできるか
スピード目標」はプログラムのステップ数をどれだけ少なくできるかを目指します。

パズルの要領で命令を組み替えていくのですが、
正直な話コンピュータの性能が上がった現代のプログラミングではどちらも必須ではありません。
しかし、この二つと「可読性」と言われる読みやすさのバランスが取れたプログラミングは
いつの時代も求められるものだと思っています。

ただ動けば良いプログラミングから、
必要とされるプログラミングへ。
一通り習得したら、次はそこを目指すのもよいかもしれません。

最後に

今回紹介したゲーム以外にも
とっつきやすくプログラミングをする方法は世の中にたくさんあります。
その中から自分が頑張れそうだ、面白そうだと思うものを探してみてください。
そして少しでもプログラミングに触れれば、
世の中の色々な物の見え方が変わってくるはずです。