ICFP2009 Programming Contest
http://www.icfpcontest.org/
年に一度のお祭り・ICFP Contestでしたよー。
が、けっこう心待ちにしていたはずなんだけども、あまり好きなタイプの課題じゃなく、どうも気分が乗りきらず途中で投げ出してしまった。へちょい。コンテスト72時間中の実働は15時間くらい?
以下やる気のない参加記を。
1日目
- ねぼう
- 問題を印刷して読む
- 人工衛星を制御して、軌道に乗せたり他の衛星とランデブーさせたりスペースデブリを回収したりする課題らしい
- でもシミュレータのVMがどうのとか問題文に書いてあることがよくわからない。何を作ったらいいかわからない
- 2時間くらいじっくり読む
- ああ、わかった。
- ってことね
- さくっとVMを実装。バイナリ仕様は問題文に書いてあるからまあ単純作業ですな
- 単純作業とか言っている割にいろいろバグって2時間くらいかかってしまった
- 一番簡単な1000番台の課題(円運動している人工衛星を他の円軌道に載せる)をやる
- 解法は問題文にヒントが書いてあるからそのままやればOK
- やっぱりバグって上手く動かない
- 軌道のビジュアライザ作る
- Swingが動かん。たまにしか書かないから書き方がよく分からないのだ
- いろいろ調べて2時間くらいかけてなんとか動いた
- 座標を逆さまに見てて逆噴射してた。なんとありがちな
- それでもなんか変…?
2日目
- なんか変だった原因は、目的の軌道をキープするのは900秒間でいいのをタイプミスで9000秒になってたせいであった
- そこを直してようやく1000番台クリア
- 次、2000番台を(円運動している人工衛星を、別の円軌道上にあるもう一つの衛星とランデブーさせる)
- 相方がちょうどいい位置に来るのを待ってから、1000番台と同じ方法で円軌道間を遷移させればいいだけじゃないのか?
- やってみた
- 衛星の飛ぶスピードが数km/sあるから、シミュレータの時間分解能1秒じゃ1kmの精度(ランデブーの条件は1km以内の距離を保つこと)で制御できないじゃないか
- けっこう誤差もあるし
- まあ適当にスピード上げたり下げたり調整するコードを書けばいいんだろうけど
- うおーめんどくせー
- 手作業チューニングはなんか空しいしなぁ
- スコアボードも上位20チームしか出てないのでモチベーションが上がらない
- あとで全参加者分が見えるようになっていた
- 打ち切り