kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

ICFP 2008 Programming Contestの軌跡

Twitter検索で検索したものから、ICFPCに関係あるのを抜き出してきたものなので、抜けがあると思うけど、一応、こんな感じの雰囲気でしたということで。

1日目

おきたー。さて、もーすぐ IFCP プログラミングコンテスト開始だ。

http://twitter.com/kmizu/statuses/855929456

submission instructions のとこで少しわからないのが、ビルド済みバイナリ (.jar ファイルとか ) を bin/ 以下につっこんどいて、 bin/run で駆動するのは OK なのかということ。

http://twitter.com/kmizu/statuses/855932806

. を間違えて、 , と typo してしまって、引数の数が合わなくて数分間悩んだ orz

http://twitter.com/kmizu/statuses/856140311

まだまだ時間はあるのだから、あまりあせらないようにしよう。

http://twitter.com/kmizu/statuses/856197569

ようやく ( とりあえず ) 動作するようになった。まだ home には帰還できてない。

http://twitter.com/kmizu/statuses/856208781

うきー。 call by name パラメータ指定するの忘れてたせいで、不可解な挙動に悩まされ続けてた orz

http://twitter.com/kmizu/statuses/856264348

運がよければ home にたどりつけるお馬鹿なルーチン。

http://twitter.com/kmizu/statuses/856267637

しばし休憩。疲れた…

http://twitter.com/kmizu/statuses/856360580

思った通りになかなか制御できないなあ。難しい。

http://twitter.com/kmizu/statuses/856360850

つか、こんだけやって、まだ home に確実に戻れない俺 orz

http://twitter.com/kmizu/statuses/856362559

いい加減、 LiveCD の環境上でプログラミングするのに耐えられなくなってきたので、 VMWare Player 使って別途 Linux 環境構築中…

http://twitter.com/kmizu/statuses/856382702

どうも home にちゃんと向かわないなあーと思ってたら、角度の計算間違えてた。メッセージで来る角度は counterclockwise なのに、 home の方向は clockwise で計算してた。

http://twitter.com/kmizu/statuses/856485102

これで、ようやくまともに動き始めた気がする。

http://twitter.com/kmizu/statuses/856485219

今日はもう寝よう。

http://twitter.com/kmizu/statuses/856542227

2日目

おきったー。

http://twitter.com/kmizu/statuses/856861175

いったん home を見つけたら、そこそこ動作するようになってきた。敵を避けるのはまだだけど、とりあえず物体避けと同じにしておく。

http://twitter.com/kmizu/statuses/856979579

練習用 map って全部 home がど真ん中にあるけど、本番はもちろんそれは想定できないわけだよな。とりあえず、しらみつぶしに home 探すようにした方が良いのか。

http://twitter.com/kmizu/statuses/856999581

どうも時々クレーターの回避に失敗するな…

http://twitter.com/kmizu/statuses/857015048

ふう。ようやく、サンプルの全マップで確実に home に到達できるようになった。遅いよ俺

http://twitter.com/kmizu/statuses/857036773

衝突判定とか、 java.geom.* にほぼお任せ状態。ちなみに Scala で書いてる。

http://twitter.com/kmizu/statuses/857046810

s/java.geom/java.awt.gem/

http://twitter.com/kmizu/statuses/857047292

パラメータいじってたら、クレータにぶつかったりするようになってしまった orz

http://twitter.com/kmizu/statuses/857080873

うーむ。やっぱりアドホックなやり方だと限界があるな…。真面目に現在の状態をモデル化した方がいいんだろうけど、めんどい。

http://twitter.com/kmizu/statuses/857115360

なんか行き詰ってる感があるな…。どうしたものか。

http://twitter.com/kmizu/statuses/857130635

プログラムの出来はあれだけど、とりあえず submit する準備を整えた。

http://twitter.com/kmizu/statuses/857172133

疲れた。今日はこの辺にしといて、そろそろ寝よう。

http://twitter.com/kmizu/statuses/857217708
3日目

おきったー。 ICFPC もラスト1日。がんがる。

http://twitter.com/kmizu/statuses/857555403

@kinaba さんが貼っておられたクマーの map 挑戦してみた。今の回避ルーチンだと、 home と重なってるクレーター避けようとして、絶対 home に到達できないなあ…駄目だ。

http://twitter.com/kmizu/statuses/857559939

アルゴリズム改良してみたら逆効果になった。難しい。

http://twitter.com/kmizu/statuses/857651534

とりあえず現時点でのプログラムを submit した。

http://twitter.com/kmizu/statuses/857829092

もうこれ以上、小手先の改良続けても意味無いんじゃないか疑惑。あきらめて、さっき submit した奴で最終にしようかな。

http://twitter.com/kmizu/statuses/857838200

現時点でのプログラムだと、クマーのマップみたいに、岩石とかクレーターが連なって壁になると、ヤヴァイ。

http://twitter.com/kmizu/statuses/857839036

一つ思いついたアイデアがあるので、これから実装してみる。改善される…といいなあ。

http://twitter.com/kmizu/statuses/857847975

というわけで、最初に出したバージョンを最終版に。色々あがいてみたんだけど、改善されるどころかむしろ悪化したりして、ぐちゃぐちゃ orz

http://twitter.com/kmizu/statuses/857904997

こう、今回のような問題は、苦手とするところではあったけど、なかなか楽しかった。特に、パラメータ色々いじくってるときは、なんか無意味にたのし。

http://twitter.com/kmizu/statuses/857908489

@kinaba どうもです。今回、計算式のミスに起因するバグに悩まされまくりんぐでした。

http://twitter.com/kmizu/statuses/857915442

たとえば、プログラム内部で方向を 0 〜 360 度に正規化してたんだけど、一部正規化し忘れた角度と比較してて、なかなか原因がつかめなかったりした。今思うと、この処理要らなかった気がするが。

http://twitter.com/kmizu/statuses/857917014

今回、 ICFPC では Scala でプログラム書いたけど、やっぱ Java で書くのに比べた楽だわ。 Eclipse のアシストが弱いのを置いといても、そう思う。ただま、コンパイルが遅いとかいくつか難もあるが。

http://twitter.com/kmizu/statuses/858061630

暇つぶしに自分のプログラムに maze.wrld 解かせてみよう。たぶん、すぐ墜落するだろうなあ…

http://twitter.com/kmizu/statuses/858135815

maze.wrld 開始した瞬間、凄いスピードで飛んでくる火星人に kill されたり、壁につっこんだりした。むずい。

http://twitter.com/kmizu/statuses/858143615