CheckIOで色々な問題を解く

プログラミングを覚える上では、明確にやりたいことがあるのが一番ですが、始めのうちはプログラミングで何ができるのか、何をプログラミングに任せると効率的な作業ができるのか、判らないという問題があります。

漠然とプログラミングを学びたい、もっとPythonを使えるようになりたいと思ったら、CheckIOというサイトを利用してみましょう。

CheckIO (https://checkio.org)

 

CheckIOはPython(またはJavascript)を使って、出題される問題をゲーム感覚で解いていくサイトです。

海外のサイトですが、問題の多くは日本語に訳されていますので、英語力はあまりいりません。

順番に問題を解いていけば、徐々に難しいことができるようになります。

また、一度解いた問題では他の人が解いたスクリプトを見ることが出来ます。評価の高いスクリプトを見ると、こんなにスマートに書けるの!?という驚くこともあるでしょう。

 

CheckIOの使い方

CheckIO (https://checkio.org)にアクセスし、今日の所はCheckIOのPythonを選びましょう。(ちなみにJavascriptも使えます。)

なお、以前はPython 2とPython 3に対応していましたが、最近はPython 3だけに統一されたようです。(参考 Python 3 Only Blog py.CheckiO – game for python coders)

 

アカウントが必要ですので、SNSアカウントに紐付けるか、専用のアカウントを作成します。

ログインすると、いくつも島が浮かんでおり、それぞれに問題があります。とは言え、始めはHOMEと、点線で結ばれ右側に浮いているELEMENTALY以外はロックされているので、どちらかを選びましょう。

島を選ぶと問題がいくつも並んでいます。どれから手をつけても大丈夫ですので、とりあえず何か選んでみましょう。

問題画面は以下のようになっています。TranslationをJapaneseにすると問題が日本語訳になります。

問題文を読み終えたら右側のメニューから次の操作を行います。まずはSolve itを選択しましょう。

ちなみに他のメニューは以下の通り。

Story 問題文の確認をします。
Solve it プログラミングをして問題を解く画面に移ります。
Discuss 他のユーザーと問題に関する議論が出来ます。
All Solutions 一度でも問題を解いた後であれば、他のユーザーの解答を見ることができます。

特に、most votedで一番上に来る解答は非常にスマートなものです。

Rand. Solution 一度でも問題を解いた後であれば、他のユーザーの解答をランダムに見ることができます。
Get next task 次の問題に移ります。

 

エディタ画面に切り替わりましたら、さっそくプログラミングをします。制限時間はないので、じっくり考えて挑みましょう。

基本的にはcheckio関数の中を変更し、returnで問題が求める答えを返します。

出来たと思ったら上メニューにあるcheckを押してください。上手くいかなかった場合は(英語ですが)ヒントを見ることも出来ます。

 

その他のメニューでよく使うものは以下の通り。

run スクリプトを動かします。まずは最低限動くものを作りましょう。
check スクリプトに書いてある以外の引数をcheckio関数に渡し、問題の要求通りの仕様になっているか少し時間をかけてチェックします。

全て上手く行けば正解になります。

Reset Code スクリプトを最初の状態に戻します。
Mission Info 問題を確認します。

 

正解したら、他人のスクリプトを見る、スクリプトを公開する、次の問題に進むを選ぶことが出来ます。

また、問題を解く、プログラムを公開する、他人のプログラムに投票することによりスコアが加算され、アカウントのレベルが上がっていきます。

色々な問題を解いてPythonの腕を鍛えましょう。