新しいプログラミング言語に初めて触る、という際に、意外と"言語の内容"より"その言語の勉強の準備"に手間取ることがあります。処理系のインストール、エディタや実行環境を整えて・・・面倒くさいんだよ!!!!!
また、モチベーションの維持も大変です。簡単な問題を一人で解いていくだけではあまり面白くありません。
そんな人にちょうど良さそうなサイトがありました。
CodinGameというサイトです。
www.codingame.com
何が良いって、
- ブラウザ上でコードを書いて実行までできる
⇒エディタ、実行環境を整えなくていい!
- 多くのプログラミング言語に対応してる
⇒C#, C++, Java, Javascript, Python3, Bash, C, Clojure, Dart, F#, Go, Groovy, Haskell, Kotlin, Lua, ObjectiveC, OCaml, Pascal, Perl, PHP, Python2, Ruby, Rust, Scala, Swift, VB.NETが使えます。
- ゲーム形式
⇒やる気が出る!みんなゲームが大好き!
というサイトなのですよ。日本語対応していないのが残念ですが、「英語の勉強ができる!」とポジティブにとらえましょう。
さて、「色んなゲームを"コードを書いて"クリアしていく」というのがこのサイトのメインコンテンツですが、僕がハマったのがこの"CLASH OF CODE"というコンテンツ。
www.codingame.com
これは、"数人が集まって、同じ問題(1問)を早解きする"というゲームがひたすら行われる、というものです。
どんな感じか紹介します。
- まず、ゲームに参加する(最大8人でプレーのようです)
上記のリンクの「JOIN A CLASH」をクリックすると、こんな感じになります。マッチング待ち、という感じですね。
※僕以外の方のユーザー名は消しています。実際は表示されます。友人とかとマッチングしたらアツいですね
長くとも2分くらいで締め切られ、ゲームが始まります。
- ゲーム開始
開始と同時に、問題が開示され、下記のような画面になります。
※説明のため、少しコードを書いた状態の画面です。
左に(英語で)問題が出ます。問題文と、入力の条件、そして入力例&解答例が書かれています。この画面の右側のところに、直接コードを書けるようになっています。
何がありがたいって、標準入出力まわりはすでに書いていてくれていることです。初めて触る言語でも、処理の部分に集中できます。やったね!
- コードを書いたら
そして、コードが完成したら、右下の「PLAY ALL TESTCASES」を押してコードが合っているか確かめましょう。ここで、そもそもコードにエラーがある、テストケースのうち何問中何問正解している、など確かめられます。
そして全部正解したら「SUBMIT」をクリックしてクリア!いかにはやくここまで辿り着けるか、が勝負です。
ちなみに何問か解いてみたのですが、AtCoderのように「実行速度」が問われる問題はなさそうです。あくまで、「ちゃんと問題内容を把握して、間違いなく実装できるか、そしてそれがはやいか」が問われるようです。
問題の書き方も
①何をすべきか書いてある問題
(ex.「入力される文字列が次の条件を満たしているか、確かめなさい」)
②入力⇒出力が複数書いてあって、自分でルールを発見してコードを書く問題
(ex."10⇒2、198⇒3、198652⇒6、1243676781⇒10"のみ書いてある⇒「入力の数字の桁数を答える」と推理して解く)
の2種類ありました。②は謎解きパズルみたいでわくわくします。
また、問題の制限時間は15分のようで、小さいサイクルでたくさん問題に取り組むことができます。早く解けた場合はすぐに次のCLASHに参加できるので、ガンガン取り組めます。
楽しい!!!!!!!!
以上です。
★追記
もう一つ、問題のパターンがありました。
詳しくはコチラの記事をご覧ください!