summer_tree_home

Check iOでPython3をマスターするぜっ

CheckiO始めました。ついでにブログも始めました

はてなブックマークでCheckiOというサイトを知った。
プログラマーのみが登録できるサイトで、ゲーム感覚でプログラムの勉強ができるというもの。登録するには、簡単なPythonのコードを書く必要があって、クリアできないとアカウントすら作らせてくれない。なかなかPython愛好家のプライドをくすぐってくれるサイトではないか。

私はPythonを使い始めて3ヶ月ほどで、基本的なことはだいたいわかったけど、もっとスキルアップしたいと思っていたところ。まさに私にぴったりのサービスではないか。早速、登録してみた。
(今のところ、対応している言語はPythonのみとなっている。ふふん)


CheckiO
http://www.checkio.org/

はてブで見た記事はこれ
http://plus.appgiga.jp/masatolan/2014/02/13/50594/

(ところで、 Check iO か CheckiO かどっちなんだ?)

アカウント登録

さて、アカウント登録時に出された問題は、「リストelsの先頭3要素の和を計算せよ」というものだった。

#python3.3 is inside
def checkio(els):
    return els

if checkio([1, 2, 3, 4, 5, 6]) == 6:
    print('Done!')

checkio関数の中身を自分で書き換えて、正しい答えが返るようにすればよい。

def checkio(els):
  return sum(els[:3])

とか

def checkio(els):
  return els[0] + els[1] + els[2]

とかでいいわけだ。

アカウントが無事に作成されるとメールが届く。
メール本文の下の方に「email confirmation link」があるので、ちゃんとクリックしておこう。

プレイ内容

最初は、マップ中央のHOMEという島にいる。HOMEでいくつかの問題をクリアすると、他の島に行けるようになる。まだ行ってないが、O'REILLYとかDROPBOXとか、なんか聞いたことあるような名前の島もあるようだ。

  • ブラウザ上のエディタにコードを入力して、Run&Checkをクリックすれば、自動テストが実行される。
  • 自動テストにパスするとクリア!(Task Solved!)
  • 問題をクリア(Solved)するとポイントがもらえる。ポイントがたまるとレベルアップする。
  • 自分のコードを公開(Published)することもできる。公開することでもポイントがもらえる。
  • クリア後に、他の人の公開したコードを見ることができる。これがなかなか勉強になる。
  • 実績に応じてバッジがもらえる。(ゲームのアチーブメントやトロフィーのようなもの)
  • マップ上では、マウスの左ドラッグでスクロール可能。
  • 言語はPython3.3と2.7を選択できる。私のようにPython3しか知らない人も安心。

感想

登録した勢いで5問ほどやってみたのだが、クリア自体はともかく、Pythonistaとしてエレガントなコードを目指すとなかなか難しい。そして、他の人の答えを見ると、全く別のアプローチだったり、自分の知らなかったモジュールを使っていたり、とても勉強になる。

難点は、とにかく重いということ。泣きたくなるぐらい重い。あと、ブラウザ上のエディタで入力するわけだが、当然、入力補完機能などは無い。普段、PyCharmで楽々プログラミングをしている身としてはちょっとしんどい。

というわけで、毎日少しずつプレイしていきたい。せっかくなので、このブログ上で進捗を報告したいと思う。