黒縁眼鏡は海を飛ぶ

IT中心にそこはかとなく

Web上で開催されているプログラミングコンテストの問題URLを取得するGem作った

テスト書いてないしAtCoder(のABCARC)しか対応してないけど、一応動く模様。

github.com

これは何?

プログラミングコンテストの練習として、ひたすら過去問を埋めていくことがあると思いますが、いちいちブラウザから画面遷移するの辛かったりしませんか?

このGemは簡単なRubyスクリプトを実行すれば、解きたい問題のURLを得られます。

require 'contesturl'

contest = Contesturl.new('atcoder')

probs = {
  abc: {
    1 => %w(a b)
  },
  arc: {
    35 => %w(d)
  }
}

contest.obtain_url(probs).each do |prob|
  puts prob
end

# http://abc001.contest.atcoder.jp/tasks/abc001_1
# http://abc001.contest.atcoder.jp/tasks/abc001_2
# http://arc035.contest.atcoder.jp/tasks/arc035_d

上のようなスクリプトを書いて、ruby script.rb | xargs -n 1 firefox --new-tabのようにコマンドを叩けば、(Firefoxなら)一気に問題ページを開けます。

これからと所感

URL吐きたかっただけなので割と満足。
yukicoderとか、他のコンテストにも対応すれば競プロ活がはかどりそう。

ただ、上のprobsのように、欲しい問題をHash->Hash->Arrayな形で作らないといけないのが面倒だしイケてないなと思うので、なんとかしたいです。
いい機会なのでテストの書き方も勉強するぞ〜。

オブジェクト指向ホントにわからん

こんなのわざわざ自作しなくても、いい方法あるよ!という方、教えていただけたら最高です:)