正月に姉から「最近、動画をアップしてないね」といわれた。
今回のネタ自体は「72」連鎖を作った頃に思いついていたのだが、ここ数日、
を見たので、動画にしてみようと思い立ったのだった。
]]>2009年後半は、日記を1回しか書かないなどのやる気の無さっぷりを発揮したのだけれども、今年はもうちょっとましになるといいな、と希望的観測しておこうと思った。
]]>最近Twitter(@yowa) でつぶやいてるばかりで日記書いてないなあとは思っていたが、二ヶ月近くも更新してなかったらしい。
近況をまとめると、
]]>
あいかわらず熱いぷよm@sシリーズや、TASさん(左手)vs.TASさん(右手) などのぷよぷよ動画に影響されて、ぷよるアルゴリズムを作りたくなった。
最終目標は、ぷよ通ルールで相手フィールドも把握する(小連鎖に対応もするし、相手にスキがあればこちらからも仕掛ける)ようなヤツを作ることだけれど、その道のりは長い長い。
つーことで現在できているのは、ぷよ1ルール*1で、致死連鎖*2を目指す、というもの。
100回チャレンジさせたところ、
手数 回 11 1 12 12 13 7 14 17 15 13 16 9 17 13 18 11 19 9 20 1 21 4 22 2 23 1
という結果になった。
15手以内に発火できたのが48回と、ほぼ半数を占める。
ぷよm@s*3で言えば亜美・真美と勝負になるくらいの実力かなあ。千早には届かないだろう。
ちなみにオレ自身は、100回やって15手以内に致死連鎖発火できたのは23回だった。余裕で負けますね!><
作り上げる前に飽きてソース紛失するのが毎度のパターンなので、現時点でのソースをうpしておく。ソースの読みやすさ?知らないよ、そんなの。
ruby 5ren.rb
で動かす。"\e[1;31m"とかで色づけしてるので、そういう端末でどうぞ。
*1 ネクストは1組だけ見れる
*2 ここでは4760点=おじゃまぷよ68個分とした
*3 part12 現在
気づいたところで。
参加してそうな人はわかっても、チーム名がわかんないんだ!
期間中に、はてブのタグ「ICFPC2009」を見てれば、他の人が収集してた情報を横から掠め取ることができてたのか!!!
ルールの悲劇。回答は自動生成しなきゃいけない(手でイジるのはダメ)なのは気づいてたけど、VMを複数回走らせるようなマネもダメだってことはよくわかってなかった。
「試行錯誤していいのかなあ?」と思って FAQ を読んでみたけど、
とゆーとこにその答えが書いてありそうだったけど英語が読めなかったし、そもそも上位入賞するわけないから気にしないでいた。なので、ソースも送ってない。わはは。
]]>期間終了した。参加したみなさま、お疲れ様でした。
今年は衛星を操作する問題だった。課題が 4 種類で、それぞれの課題でパラメータ違いの 4 問があって計 16 問。
問題文PDFの最初に VM の仕様が書かれていて、「なるほどこの VM 上で動くプログラムを書くのか」と思ったら、そうではなかった。各課題ごとにVM 上で動くプログラム(= 自機の動きとか、目標の動きとか、スコアリングとかをシミュレートしてくれる)が与えられてて、オレがやるべきことはそのプログラムに対する入力(具体的には、各時刻での自機の推進力(⊿Vx,⊿Vy)をどうするか)を決めること、だった。
去年は「Linux 上で動くシミュレータを配布」という形だったが、環境の整わず参加できない人が多かったようなので、今年は「VM と、それ上で動くシミュレータのコードを配布するから、自前で VM を実装してね」という形になったのだろう。
VM 実装が本題ではないので、VM の仕様はとてもシンプルだった。……のだが。バイナリフォーマットは命令と即値データのペアがズラリと並んでいる形なんだけど、「奇数番地は命令が先、偶数番目はデータが先」という並びになっていた。なぜこんなブービートラップ仕掛けたし。
雑多な感想。
ご心配かけてしまいしたが、親父の CRASH は関係者全員無事でした。
正確には親父の懐具合が無事じゃなくなるような気もするが、深くは気にしないぜ! まさに外道(と書いてニートと読む)!
]]>ICFPC のサイトにつながらない。カウントダウンページを開いてた意味が無い。
つながった。登録したところ、Team ID が #293 だった。この時間でもう293人も登録してるのかー。
PDF 読む。なんかデブリ回収みたいなことをするマシン操作らしい。去年のと似てるのかな?
VM の仕様を読む。i番目のinstruction の結果は メモリのi番目に入るっぽい?
(2.4 Orbit Executable Format)奇数番地と偶数番地で、[命令,データ]の順序が違うとか誰得。
まだ課題がわかってない。ダウソしたバイナリは何なんだ。
やっとわかった気がする。
ねる。
おきったー。
VMはcode生成していろいろ最適化、とかやりかけてたけど、そういう小手先のことをやるのをやめおく。まずはベタに動かして通ってからにしようぜ。
とりあえず動かしながら考えよう。早すぎる最適化は諸悪の根源。
atan2() って y が先だった!!
1001 から解ける気がしない。900 step でたどり着けないんすけどー。
To successfully complete this task, the satellite must remain in within 1km of the target orbit radius for 900 seconds.
これってもしかして、目標とする軌道(の1km以内)に900秒間留まれって言ってるの? 900秒以内にたどり着け、じゃなくて?
1001 で初めてプラスのスコアをげっと!!! さて、traceをどういうフォーマットで書き出せばいいのか、説明を読むか。
osfファイル(trace)を出力するやつができた、ので、1001 の結果をうぷったー。「Successfully uploaded trace solution for scenario # 1001!」結果はいつ分かるの?
「CRASHED!」って出てた。出力フォーマットを間違ってたようだ。
ということらしい。修正。
再提出も、はいはい「CRASHED!」。自分で出力した osfを読んで、自前のVMで走らせてみよう。
通った!!0x2(⊿Vx)と0x3(⊿Vy)だけ入力して、0x3e80 にシナリオIDを入れてなかったお(^ω^;;
PDF に書いてある得点式と、VM が出す得点が全然合わない。faq を見てみたところ、100x には燃料使うほど得点が高いというバグ(? faqでは仕様だと言ってるが)があるそうな。
つーことで、わざと燃料使いきれば高得点。姑息。
寝れないので起きる。VMを速くすべき?
id:ku-ma-me さん(*1)経由で Hohmann 用の式(*2)を知る。(手動)二分探索とかしてたのがアホみたいだ。
残った燃料を使い切るようにして、とりあえず 100x は終了。全員のスコアボード(*1)とか最初からあったっけ?
100x の 4問を解いて、Score 382。4問しか解けてないグループでは 2位タイっぽい。
(*1) http://icfpcontest.org/scoreboard.php
VMいじりをためそう。
毎ステップ、バイナリをデコードしてたのを、・あらかじめcode生成して・eval("lambda{#{code}}")しといて ・それを評価するようにするだけで7倍速とか半端ねぇ。さっさとやっとくべきだった。
今になって sx, sy が「地球からの距離」じゃなくて「地球への距離」なことに気づいた。つまり符号が逆。どおりでいろんな場所で謎のマイナスをつけないとキチンと動かなかったわけだ。わはは。
200x は別軌道上の別衛星の1km以内に留まる問題。100x は軌道半径だけ合わせればよかったけど、今度は偏角も合わせる必要がある。
書いたコードの概略。基本動作は2パス。
100x よりシビアなので、到着後の微調整が必要だなあ。
2001, 2003, 2004 は通った。(異様に点が高い気が??)
2002 は CRASH といわれてビビったが、よく見たらローカルでも -1.0 点だったのである意味安心。
単にステップ数が足りてなかったみたいだ。軌道を合わせるのに38000ステップくらいかかるのに、20000ステップで打ち切ってた。
2002 も通った。
43rd score:1092.1160 ID:yowa solved:8
300x を読む。200xと似た問題だけど、自分もtargetも任意の楕円軌道だそうだ。
思いついたのは、
とゆー方法だけど、強制的に円軌道にする fuel は足りるんだっけ……?
3001-3004は、ぱっと見、自分は最初から(ほぼ)円軌道のような気がする。
300x は自分が円軌道であることを前提にした。
200xと似たやり方だけど、楕円軌道だと半径と角速度が一定ではないからめんどい?
みたいなやり方で、3001,3002,3004 はクリア。
3003 は target がチョー長い楕円軌道で、軌道を一周するのに 160万ステップくらいかかるっぽい。
オレの VM だと 160万ステップに4分くらいかかるので何度もトライするのがめんどいな。
オレ的に期間終了。
期間終了。
]]>挑戦中。期間は 2009-06-30 03:00:16 まで(日本時間)。
去年はLinux 環境が用意できず門前払いだったが、今年は環境を選ばないっぽい。
「スコアを残す」を目標にがんばる。
(プラスの)スコアをゲットできたので目標達成。上位入賞とかは無理なので、あとはのんびりやろう。
]]>以前ぷよぷよ関連で「のみ95」というハンドルを使っていたのだけども、1色7連鎖(お邪魔なし)とか考えたりしてたのは 1999年だったらしい。
10年たっても似たようなことをやってるんだなあ。
]]>290 :NPCさん:2009/06/05(金) 16:45:13 ID:??? 最近になってニコニコでのアイマスがVIPで言う所のやる夫なんだと気が付いた。]]>
介党鱈Pによる熱すぎるアイマス×ぷよぷよ動画、ぷよm@sシリーズ↓にあやかりたいと一念発起して作った動画。
ネタバレ含むメモ。
もともとは、ノベマス的なアイドルの会話でやろうと思ってて、
みたいにストーリーを何パターンか考えたものの、自然な会話を書くだけの筆力がオレにはなかった。アイマスの知識不足からセリフにボロが出そうだしな。
]]>