LoginSignup
123
146

【CodinGame】ブラウザでコーディングの基礎からトレーニングできるサイト (疑似ゲーム開発環境を使って学べます。解答は25種類のプログラミング言語から選択して記述可能!)

Last updated at Posted at 2018-01-08

2019/02/15: 『CodinGame はBOT(AIプログラム)でバトルするのが正しい楽しみ方かもしれません』 という記事を新たに書きました。宜しければ、こちらも併せてお読みください。

25種類のプログラミング言語を使ってテストファーストの開発スタイルを身に着けることができます。

  • ゲーム(または「疑似ゲーム開発環境」)でプログラミングを勉強できるサイトです。25種類のプログラミング言語に対応しています。複数の言語が使えるようになりたい方におススメです。テストを実行するとゲームのグラフィックが動くのでコーディング・デバッグ作業が楽しいです!

  • 解答に使うプログラミング言語は、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 の中から自由に選べます。また、一度解いた問題を別の言語を使って(繰り返し)チャレンジすることができます。

  • 留意していただきたい点は、このサイトの問題はパズルとして提供されていて、日々のプログラミングの勉強用としてはベストではないかもしれないというところですね。問題数もそんなに多くはありません。プログラミングのドリルとして使いたい場合は、【Codewars】ブラウザでコーディングの基礎からトレーニングできるサイト (ブラウザでvimが使えて32種類のプログラミング言語に対応。4000個以上の問題が投稿されています!) の方をお奨めします (ただし、これは 2019/02/14時点での私の個人的な意見です)。

CodinGame はブラウザ上で(自分のマシンに開発環境がなくても)コード作成・デバッグ・(問題作成者が提供する)テストの実行がワンボタンクリックでできて、「正解であるとお墨付きがもらえた時点で解答を提出できる」という特徴があります。(なので、ラクチンで安心です。また、Codewars もその点は同じです)

1. CodinGameサイトのPRACTICE画面

Mac/Linux/WindowsのWebブラウザで https://www.codingame.com/training にアクセスします。最初に、Googleアカウントを使ってサインアップします。画面右上の「SIGN UP」をクリックします。

  • 【サイトの説明文】CodinGame is a challenge-based training platform for programmers where you can improve your coding skills with fun exercises.

image.png

2. サインアップ

image.png

3. 最初にやるトレーニングを位置づける

image.png

4. トレーニングに関する情報をチェックする

image.png

5. 問題(THE DESCENT)の画面を開く

一覧から THE DESCENT の画像をクリックして問題の説明画面に飛びます。

image.png

6. IDE(解答画面)でコーディング・テストをする

解答に使うプログラミング言語は、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 の中から自由に選べます。

image.png

7. 説明を読んでみる(コードを先見ておくとよいかも!)

image.png

8. コードエディタの初期ソースコードを見る

  • このトレーニングはサーバーサイドで処理されるロジックを記述しますが、初級の課題ではデーターのやり取りが「標準入力」と「標準出力」を用いて行われます。デバッグは(Javascriptの場合は) printErr(X); を用いて標準エラー出力に書き出すことで行えます。

  • 13行目で parseInt(readline()) が8回呼ばれて、mountainH という変数に高さが入りますが捨ててますね、値を。19行目では、print('4'); で無条件に4(5番目という意味になりますね)を出力しています。

  • この問題は、そんなにチャレンジングじゃないので(?)、IDEの使い方の説明のために解いちゃいます。

image.png

9. デバッグ文を追加して実行する(解いてないのでテストは失敗します)

  • デバッグ文で表示させているのと同等の出力は左下のペインを上方向にスクロールしてみれば確認できます。(あくまで、printErr() の使い方の説明ということで)

image.png

10. テストが全て通ったら「提出」!

image.png

最後に

CodinGameサイトでは、他のユーザーと競争するマルチプレイヤーモードもあります。
英語の勉強と、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 でのロジック開発の練習ができるので得意な言語からチャレンジを開始してみてはいかがでしょうか?

  • 一回解いた問題を別のプログラミング言語でチャレンジしなおすこともできます。再度チャレンジするには https://www.codingame.com/training にアクセスした上で下図の手順で解答済みの問題にアクセスできます。

  • Javascriptに関する情報を求めて、海外のサイトの記事をみていて見つけたサイトですが、他にも紹介したい内容があるので、もし CodinGame について新たな発見があったらまた記事を書きますね!

image.png

image.png


2019/02/15: 冒頭にも書きましたが、『CodinGame はBOT(AIプログラム)でバトルするのが正しい楽しみ方かもしれません』 という記事を新たに書きました。C#でコードを書きましたが、コメントを書いているので他の言語で利用する際にも役立てることができると思います。宜しければ、こちらも併せてお読みください。

123
146
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
123
146