HALプログラミングコンテスト参加中だがしかし

大体において,ブログを書こうと思うなんてのは,日課として行うか,それとも何かのきっかけがあったときとか,はっきりとした何かが見出せるものである.自分の場合は,何かが起こったときにしか書かない.さもなくばこのブログの記事数はもっと多くなっていることであろう!

で,今回のきっかけはHALプログラミングコンテストだ.株式会社HAL研究所(カービィで有名?なゲームメーカー)の有志が主催するプログラミングコンテストだ.

HALプログラミングコンテスト2009

2003年ごろから毎年,11月末〜年明け1月初頭にかけて行われる,学生向け(およびHAL研究所内部向け)プログラミングコンテストだ.学生向けというのは参加資格であって,問題自体はオープンである.ICPCやICFPのようなものだ.表彰されるのは学生だけ,でも問題はオープンにしておくよ.学生向けというのは,そうしないと本気の大人や学生が紛れ込むからじゃなかろうかと思える.が実際どうなんだろう.

話がそれた.

基本的に,スコア形式で,課題の作り出す状況はたくさん準備され,CodingGolfのように出力確定型でもなければ,ICPCのように明示的な解が見出せるものでもない.だからこそ競う余地がある,という問題が準備されている.

なんていうか,見たら,えー!ムリだよー!なんて思うのだが,冷静になって,問題を見て,とりあえずサンプルコードを投稿する.そしたら,明らかに点数が低いスコアが出てきて,おそらく最低順位=参加人数,と思われるような順位が出てきてなんかがっかりする.でも,サンプルコードを改善して,それで実行してみると,明らかにスコアがあがっていてなんかうれしくなる.それでウェブの投稿フォームに貼り付けて投稿して,ちょっとしたエラー(たとえば間違ってprintfを残しているとか)を発見して悲しくなって,でも直して再投稿するとスコアが少しあがってうれしくなる.そういう問題.

今年は,穴の開いた板があって,スタートとゴールがあって,そこを転がすという課題をプログラムでシミュレートし,回答を返すプログラムを製作する.要するに「どうやって穴をよけるか」だよね.なかなか魅力的である.

邪推

現在のスコアボードを確認すると,学生トップが976000点.邪推すると,ゲームの「0ターンクリア」スコアが1000点,ゲーム数が1000,ゆえに,絶対に超えられない天井は1000000点.となると,24000という値は,必要とするターン数に明らかに関連しているだろうと考えられる.ふーん,平均したら24ターンか,,,,ムリかもorz

追記

紹介記事をいくつか.

http://www.programming-magic.com/20090118202755/(2008年度優勝者,xnightsさんのページ)

http://www.timedia.co.jp/karetta/article/blog/relay/023530(HALプロコンではないが,プログラミングコンテストを紹介している記事)