みにまむAIのテックブログ

みにまむaiのぶろぐ

暗号通貨やブロックチェーンが気になり「よし。ブログ書こう。」となり開始したのですがまあ三日坊主なやつなのでどこまで続くか不明

ゲームでプログラミングを勉強できる「CodinGame」が逸材すぎる

真面目に勉強しているのになかなかプログラミングのスキルが向上しない…
とスランプ気味になっている方に朗報です。少し真面目さを取り除きましょう!
 
一体どんな勉強方法だとお思いですよね。実は、非常に丁寧に作りこまれたWebゲームを遊びながら、プログラミングの勉強をすることができる夢のようなサービスなのです!しかも無料です。特にいま海外でより注目されているので一足お先にご紹介しちゃいます。
 
 

CodinGame

f:id:since1991:20170206133306p:plain

CodinGame(https://www.codingame.com)は、プログラミング学習とゲーム作りが一体となったWebサービスです。さまざまな種類のゲームの設定が用意されており、ユーザーはその機能の実装を行います。

 

CodinGameの特長は、対応するプログラミング言語の豊富さにあります。JavaJavaScriptRubyPHPPythonといった人気の言語はもちろん、GoやScalaといった最近注目されている言語を選択することができます。プログラミング初心者だけではなく、複数の言語を使えるようになりたいプログラミング経験者にもオススメです。
 
 

ゲームのやり方

f:id:since1991:20170206133218p:plain
ゲームの作成はブラウザ上で行うことができます。ゲームの目標が与えられるので、それに従ってプログラミングを行います。
 
f:id:since1991:20170206133223p:plain
例えば、初めに提示される課題は「迫り来る敵を打ち落とす」ゲームです。画面右上のエディター画面で、プログラム作成を行います。画面左上で作成したプログラムの挙動を確認し、画面左下の標準出力でログを確認することができます。画面右下では、プログラムが通過するべきテストケースを選択することができます。一つの課題に対して、複数のテストケースが用意されているので、その全てをクリアすることが目標です。
 
求められる仕様が満たせれば、「YOU WIN!」の文字が表示され、ポイントを獲得することができます。ポイントを貯めると、世界のユーザーの中でのランキングが上がり、レベルを上げることができます。
 
 

ゲームの種類

f:id:since1991:20170206133239p:plain

ゲームの難易度は「EASY(初級)」「MEDIUM(中級)」「HARD(上級)」「VERY HARD(最上級)」とあり、多くの種類のゲームを作成することができます。課題をクリアするたびに、挑戦できる課題が増えていきます。
 
技術的な観点からも、条件分岐、検索などのアルゴリズムを網羅しており、プログラミング技術の向上に役立ちます。また、一人用の課題だけではなく、複数人で取り組む課題もあります。コンピューターを相手に取り組むこともできますが、その他のユーザーを招待して、一緒に課題を解くのもよいでしょう。
 
 
まとめ
CodinGameはゲームを作りながらプログラミングが学べるユニークなWebサービスです。ゲームの消費者ではなく、ゲームの創造者となってプログラミングを行えることが醍醐味です。20以上のプログラミング言語を自由に切り替えられる点もCodinGameの優れた点です。
 
自分の得意な言語の腕を磨くとともに、手がつけられなかったけれども興味のある言語についても学ぶことができます。条件分岐などのプログラミング技術も網羅されているので、初心者にとっても情報科学の基礎を学ぶことができます。ぜひ試してみてはいかがでしょうか。