てきとーな日記

2011-06-21

[]ICFP Programming Contest 2011 01:46

日本開催ということで今年は初めて大規模なチームを組んで本気参加

チーム名は"Unagi: The Gathering"で,チームメンバーは

自分,秋葉,いるーん,いもす,hos先生,tos先生

の競技プログラミングに最適化された6人

結果は多分今ひとつな感じぽいけど,問題も自分が過去に参加した中では一番面白かったし,初めてのチーム戦も非常に楽しかった.

一日目

お昼

大学の授業出ながらルールを読む.

どうやらカードゲームのAIを作るらしい.

SKとか出てきてよくわからんのでとりあえず「β 簡約! λカ娘」を読んで勉強することになった.

なんかtwitterで他のチームの人たちが進んでる雰囲気を出していたのでとりあえずブラフでてきとーな発言をしておいた.

夕方

授業後秋葉家へ移動しつつ,妄想上の作戦を色々作った.

このころ作った作戦はあとになってみるとワロス過ぎた.

ゾンビゲーという言葉が聞こえてきたので,とりあえずブラフでputゲーという事にしておいた.


@imos,@ir5と合流して秋葉家へ着いた.

最強の GUI が完成していてテンションが上がる.

関数適用の回数が良く分からないので,decループを作って解析.

decループだと167しか効かないことがわかり,敵を倒すにはhelpループ→attack かーということになった.

とりあえず一体倒さないことにはゾンビゲーもできないので,まずは敵を一体倒すことから始めることになった.

メンバーで唯一関数型が得意な@toslunarが合流.

役割分担を決め,@iwiwiがC++でシミュレータを書いて,他の人は有用そうな関数を作成しておくことになった.

探索とかもしたいので,C++でnewして参照渡しだとメモリリークで死ぬから毎回コピー渡しすることになった.

(f x) (g y) の適用ができないと255番以外への攻撃すらできない…

SKを駆使することで,gがカードの場合はできるようになった.

(f x) (g y) = (S(K(f x))g)y

一般の場合はtos先生とhos先生に考えてもらうことにした.

用意されているインタプリタに打ち込む作業が修行だったのでundo機能とかステップ関数適用とか搭載したGUIでも作るかーと思ってJavaで作りはじめた.

二日目

深夜

パーサ部分は書き終わったので,秋葉さんと一緒にC++とJavaでシミュレータを書いた.

とりあえずブラフでゾンビパウダーが完成したことにした.

いるーんにより相手の255をループdecするだけの最初のサブミットがされた.

シミュレータがゾンビ以外できた気分になったので寝た.

起きたら@hos_lyricが合流していた.

どうやら指数的に大きくなる関数があって,コピーを使っているC++版シミュレータが落ちるらしい.

C++オワコン感が漂ってきてhos先生がD言語でシミュレータの実装を始めた.

C++はコピーやめて参照にし,メモリ管理機能つけて,探索終了時に探索で使ったメモリを解放することにした.

自分はコンボデバッグ用にワンステップずつ関数適用する機能の実装をすることにした.

tos先生によりSK変換器がなぜかHaskellで実装されていて他の人の環境で動かなくて大変だった.

秋葉さんのシミュレータが完成していたので,動作チェックをした.

decループのダメージはltgと一致するのだが,helpループの回復量が一致しない…

C++とJavaでは一致したのでどうやら我々の解釈が間違っているらしい

部分適用もカウントする解釈にしたら一致した.

夕方

昼飯食べに行って,そのままTCOに参加するため一度帰宅.

GUIとかイラネと思って,ltg互換のCUIにして満足した.

コンボ作ろうと思って色々考えたが,getループだと決められた場所からしか発動できないので不動点関数が欲しいなーと思い,SK版の不動点関数をググって調査.

普通の不動点関数だとcall by valueで動かないのでググッて見つけたcall by value用の普通のλ式YコンビネータをSKに変換すれば良いに違いないと思ってλ→SK変換器を実装し始める.

実装班の方はいもすがtos先生のSK変換器をC++に変換して秋葉さんのシミュレータとマージし,まともなAIが書けるようになったらしい.

tos先生も変換器を実装しているらしく,任せてTCOに備えて少し休憩

三日目

深夜

眠さでTCOが壊滅的だったが,とりあえず通過はできたのでよしとしてコンボ考えながら寝ることにした.

が,まともなコンボがいろいろできたのでwikiに書きこんでたら秋葉さんが早く来いというので秋葉家へ出発.

秋葉家へ到着.

helpループ→attackで敵を672ターンくらいで殲滅するAIが秋葉さんといるーんの実装班により作られていた.

相手の0付近を速攻で倒しに行くためのコンボを搭載してもらいつつ,ゾンビ用の関数を作ることにした.

ゾンビ用関数はIを受け取って発動するので,forループさせるためには別の関数をもう一つ送り込む必要があるなぁ…と思ったらcopyを使えば自分の場に用意するだけでよかった.

help i i をループさせれば,限界突破して殺せるので便利.

いつの間にかSK変換器が関数合成とかもできるようになっていたらしいが,すでにSK慣れしすぎて直接SK式書いた方が速かった.

66体を一気に殲滅できるゾンビパウダーが完成した.

昼〜夜

起きてゾンビパウダー実装してもらった.

面倒なので.shに直書きされたw

シミュレータは探索とかしなくてもnewしっぱなしだとメモリがヤバいらしく,C++オワコン感が非常に漂っていたが,秋葉さんがガベコレ実装するという激しいことをしていた.

いもすにより内部リーグが構築され,色んなAIを自動対戦させれるようになった.

相手より先に4発打てればほぼ殲滅できるので,hos先生とtos先生と一緒にゾンビパウダーのショートコーディングを開始した.

ゾンビ送り先はこちらから倒しやすい255にした方が便利で,255倒すのも01のHPを大きく犠牲にしてattackのみで倒すことにした.

01のHP減らすと敵のゾンビ対策にもなって一石二鳥.

最終的に123ターンで殲滅できるものが完成した.

hos先生によりincゲーということになったので,putマシンからput-incマシンに進化した.

四日目

深夜〜朝

色々な作戦が開発された.

  • 永続dec
    • 毎ターンdecを行えるコンボ
    • 敵が普通のreviveを必ず行って来る場合,敵の行動を完全に封じつつ,こちらは2ターンに一度自由行動ができるので確実に勝てる
  • dec-zombie
    • decとzombieを同一ターンで行うことにより敵の関数を消す
  • でこぼこ
    • help 2i (2i+1) ループによりでこぼこさせて敵のゾンビを防ぐ
    • 関数構築が遅すぎてゾンビに間に合わないorz
  • 撃墜
    • コピー版C++シミュレータが死んだ関数を作ることにより敵のシミュレータを倒す

速攻ゾンビで敵をほぼ殲滅したあと,中盤はダメージ可変の小ゾンビ,永続dec,dec-zombie,普通のdecを適切に行うという戦略に決まり,実装してもらうことにした.

中盤以降の戦略を実装前のはそんなに強くなくて,先の中盤戦略がどれくらい強いかもよく分からないので,強いチームはゾンビゲーだろうと推測し,対ゾンビハメAIも並列で作ってもらってどのくらいハマるは試してもらうことにした.

はめ殺しAI
  • 255を速攻で作る
  • 相手の0番を倒す
  • 相手が0をrevive→永続dec
    • 0番を必ずreviveするAIの場合,勝利確定
  • 相手がこっちの255を倒しにきた→永続revive
    • ゾンビを送るために255を必ずdecしに来るAIの場合,勝利確定

われわれのゾンビAIには余裕勝ちできるが,ゾンビを打たれる前に構築するには0番に永続reviveを設置する必要があり,0番使えないのは痛い,強いチームはハマらないだろうなどの理由により結局普通のゾンビで行くことになった.

中盤以降の戦略を実装したAIが提出されたが,結構負けるため,原因を考えることに.

序盤でのほぼ殲滅には成功し,その後reviveのスピードに追いつけずに,逆転されているという分析になったので,forループdecで敵を殲滅するショットガンを搭載してもらうことにした.

decは敵が死んでいてもエラーにならないのでとても便利.

撃墜は強いチームには効かないだろうということで,結局組み込まれなかったが,ひょっとすると結構効くのかも知れない…

最終的に提出したAI

  • まず最初に255を倒し,ダメージ6144の大ゾンビ発射機を設置(6144は255倒すのにも使用して再利用)
  • 大ゾンビで倒せる一番小さいインデックスに発射
    • 我々のゾンビは相当速そうなので,0付近を倒されてかつゾンビで上書きされない限り,敵をほぼ殲滅できるはず
  • 大ゾンビで倒せないなら一番関数の複雑度が高い場所を攻撃
    • すでに一度倒してreviveしてきたところの場合,永続decコンボを設置して攻撃
      • 重要なスロットが死んだら必ずreviveするというAIの場合,これが決まった瞬間勝利確定
    • HPが高い場合はダメージ可変の小ゾンビを飛ばして攻撃
    • 低くて十分複雑ならdec-zombieで消す
    • 全部のHPが低ければショットガンを設置して撃ち続ける
  • 0123のみrevive
    • もう少し守るべきだった

終了後

終了直前に,関数構築中にそのスロットが死んでもそのまま構築を続けるというバグが発覚したが時間中に治すことができなかった.

そのまま構築するとターンが無駄になるだけでなく,関数も消えてしまうので痛い.

他にも実はもう二箇所バグっていたらしく,それらを直すと関数消してしまわなくなり,結構強くなったぽい.

反省点

  • 初動が遅すぎ
    • 授業とかあって,実装開始時すでにスタートからすでに12時間以上たっていた
    • 序盤にいろいろ戦略妄想しても大抵役に立たないので,実装ゲーなシミュレータとかすぐに組み始めたほうがよい
  • 言語バラバラ
    • 言語の統一が全くされていなかったのも他の人の書いたコードが実行できなくて色々と大変だった
    • シミュレータは結局C++,Java,Dの3つも実装された
    • しかし,C++とかデバッグ無理ゲーなので来年からは非実装戦略専門要員として活躍することにしよう
  • デバッグ
    • 最後までずっと戦略の搭載をしていてテストする時間がなかった
    • チーム内対戦機能が搭載されたが,その棋譜を見て怪しい動作をしていないか分析する係を作ればよかったのか
  • チーム開発
    • そもそも3人以上のチームで協力して開発したことがなかった
    • 後半は実装班とコンボ班でお互いのやっていることがさっぱり分からなくなってしまった←バグの原因
    • もっと知識の共有をすればよい?

2010-06-22

[]ICFP Programming Contest 2010 03:01

きたまさが数学界に引きこもってしまったので今年はid:iwiwiと二人で参加。

チーム名はHITOCry

前回は劣化マラソンな感じで初日で飽きてしまったが、今回はなんか面白かったので完走した。

結果は7位だったorz

作業はGmailチャット+DropBoxのファイル共有で行った。

以下チャットのログから掘り起こした全体の流れ


一日目 21:30

開始前に仮眠をとったら30分位寝過ごしたorz

一日目 23:00

1時間半くらいかけてようやく問題文を理解し、とりあえず工場のフォーマットを調べるために提出しまくることに。

二日目 01:00

ようやく工場のフォーマットと入力例の最初17文字が解読された。

次はゲートの解析をすることに。

二日目 02:00

ゲートの入出力表の解析が完了した。

次はkey prefixを作成することに。

3進17文字なので3^17個くらいランダムなの試せば見つかるんじゃね、と思ってランダム生成することにした。

二日目 03:00〜10:00

秋葉さんが寝てしまったのでログがないorz

ランダム生成でkey prefixの生成に成功して得点ゲット。

入力が17文字しか分からないのでどうしたらいいか…

入力に依存せずに決まった出力を出す回路を作るしかないよなーという方針で色々考えることに。

1入力1出力で最初のターンにiを出力し、その後入力をそのまま出力し続ける回路が構築できれば、それ逆順につなげれば任意の列が出力できるという結論に至ったので、この回路を探索することにした。

が、全然見つからないorz

仕方ないのでさらに分割して、

1. rightが0の時i、right=rのとき入力をそのまま出力する回路

2. 入力によらず、rを出力する回路

を組み合わせることにした。

これはランダム生成ですぐに見つかり、ようやく回路自動生成器の作成完了。

しかし、1文字あたりゲート10くらい消費するしょぼさで、他にもやることいっぱいあったので結局こいつを最後まで利用することになったorz

たしかここらへんで8:00くらい

せっかくなのでそのままさらに燃料フォーマット解析に着手。

燃料の最初が[タンク数][成分数]と並んでいることが分かったので、これを利用して小さな数字の列挙を終えたあたりで力尽きて寝た。

二日目 14:00

起きたら秋葉さんが1問通していた。

Webから提出するのが面倒なので、秋葉さんがRubyで提出スクリプトを書くことに。

その後もRubyが大活躍していた。

二日目 15:30

未だに燃料フォーマットがさっぱり分からないが、別の車で通った燃料を他の車にも投げたら通ったので、とりあえず通った燃料を投げまくることに。

なんかいっぱい通ったw

二日目 17:00

未だに燃料フォーマットがわからない…

秋葉さんが自動提出スクリプトを書いて、車リスト更新しながら、それまでに見つかった正しい燃料をひたすら投げ続けるようになった。

二日目 18:00

成分数が1な燃料のフォーマットは解析できたが、成分数が増やせないorz

燃料の解析を諦めて、先に車の解析をすることにした。

二日目 20:00

車のフォーマットの解析が完了。

数字のフォーマットに二種類あるとか予想外すぎた。

この発見により燃料フォーマットの解析もついに完了。

二日目 21:00

ライトニング終了。

トップ10入りならずorz

手動で作った燃料で問題解くことに成功し、次はソルバーを作るかー。

と、その前TopCoderに向けて休憩&仮眠。

三日目 03:00

TopCoderから復帰。

寝る前に自動ソルバーを作って、動かしながら寝ることに。

とりあえずパーサー書いて食わせたらエラー落ち…

値がでか過ぎて用意してあった数表で足りなかったorz

というわけで数字フォーマットの推定or数表の拡大をすることに。

三日目 04:00〜7:00

秋葉さんが寝てしまったのでログが…

数字のフォーマットはイミフ過ぎて分からなかったので、とりあえず数表を拡大した。

てきとーにランダムソルバーを作って数問解けた

解けないやつ見てたら、なんか超でかい数が必要そうな問題(x>y^n, y^{n+1}>x)だったので、数字のフォーマット推定必須かよ…と思って再び頑張るも分からずorz

秋葉さんが書いた自動提出スクリプトに載せようと思ったが仕様が若干違って、しかも自分Ruby分からなかったので書き直せなかったorz

というわけで自動提出は諦めて寝た

三日目 15:00

起きたら秋葉さんが自動提出動かしてた。

車増えまくりでサーバー大丈夫か心配になってきたw

自分が数字フォーマットの推定をし、秋葉さんが車を作ることにした。

三日目 16:00

燃料の方でタンク数大きくすると1000くらいで文字数がたりねーよエラーになり、いくつになったか分からねーと困っていたが、車の方でタンク番号を大きくすればいいことに気づき、数表が拡大。

100万くらいまで作って、いい加減パターン見えないかなーと思うも一向に見えてこない…

3^nごとに謎のprefixがついてその後ろに3進数なのは分かるんだが、このprefix謎すぎる…

とずっと考えていたら、prefixがまた再帰構造になっていることに気づきようやく解決した。

次は成分数1専用ソルバを作ることに。

成分数が1の時は、両辺logとると線形になるので単体法とかで解ける。

三日目 17:30

成分数1ソルバが完成。

一気に大量の車が解けた。

秋葉さんの作った車がこのソルバで解けてしまうことが発覚。

成分数1で解けないようにするために、両辺の変数の出現回数が一緒で並び順が違う不等式を必ず入れることにした。

我々のソルバで解けない車がついに完成し、初出荷!と思ったらなんか謎のエラーが出て出荷できないorz

色々直したがずっとエラー…

三日目 19:00

ソルバーが順調に車を解いている。

車一覧に解けたかどうか表示するプログラム書いて出してみたところ、solved4くらいまでは大体解けてるのに、一部全然解けてない領域が…

どんなのだろうと見てみたら明らかに成分数1で解ける車だった

というわけでソルバのバグ修正に

三日目 20:00

バグ修正完了。

車の方はまだエラー。

なんかでかすぎるぽい。

というわけでサイズ小さくしたらうまく行って初出荷に成功!

wktkしながれ見てたら3分で他のチームにとかれたorz(ちなみにこの車、最終的に解いたのこのチームのみ…)

三日目 21:00

最強の車にするために、solved1な車の分析をすることに。

左辺のサイズが右辺のサイズより小さいのが難しそう、というわけでこういうのを作ることにした。

自分はソルバーの改良することに。

結構な問題が01行列で解けるぽいのでそれ専用ソルバを追加した。

秋葉さんが二台目の車を出荷!

しかし、またソッコーでとかれたorz(この車も最終的に解いたのはこのチームのみ)

三日目 22:00

秋葉さんの車は成分数とか色々変えながら数台出荷するも全て1チームに解かれる…

自分はランダムソルバを局所探索に変更した。

四日目 00:00

どうやらうちらの車を解いているチームは田中さんのとこらしい…ということが発覚し田中さんやべぇを連呼。

もう諦めて出荷しまくるかぁということになり、秋葉さんが車自動出荷スクリプトを書いた。

ソルバの方は局所探索ソルバがそこそこ解いてるぽいが鯖がつながりにくすぎて提出失敗しまくり…

車自動出荷スクリプトが完成して動かしたところ、鯖が重すぎてタイムアウトし、車IDが取得できない…

6台目の車IDが分からなくなってしまったので、急遽中断

四日目 02:00

なんか急に車のサイズ制限が100文字以下に変わった…

我々の車はそんな小さいはずもなく、100文字以下でつくってみたところ自分たちのソルバでよゆーで解けた…

さすがにありえなくね…というわけで寝た

四日目 08:30

起きたら車一覧ページが変わっていて自動提出が死んでいたorz(完全には死んでなくて穴抜けになっていたらしい)

とりあえず手動で全車リストを取得してソルバを回しておいた。

車のありえないサイズ制限は解除されていた。

授業があるので大学へ。

四日目 10:15

秋葉さんが自動提出スクリプトの修正を行い、自分は手動で問題選んで解いてた。

車ごとの燃料サイズ一覧が公開されており、我々の回路が超でかいことが明らかに…

しかし今更作りなおしている時間などないorz

昨日出した車は未だにsolved2だったが、敵チームの方が回路が小さくて我々には1/3点しか入ってこないorz

やはり頑張って解かれない車をつくるべきという結論に。

四日目 12:00

ファイル同期ミスとかでデータがぶっ壊れていたことが発覚。

秋葉さんが頑張って直しつつ、車をいろいろと出荷。

四日目 13:00

時間もないので一気にまとめて20台出荷した。

四日目 14:30

1時間たってもまだsolved1 ktkr

というわけで大量出荷開始。

72台出荷完了した。

四日目 16:00

ソルバを焼きなましてみたりしたが一向にムズイ問題解ける気配がないorz

車は40台ちょいがまだ生き残っていた。

点数が蓄積型なのでもはや大逆転は無理だなーと思いつつもベスト5位までいけないかなーと頑張る。

四日目 19:30

7位まで上がった。

もはやなにしても順位変わらないだろうということで、秋葉さんと晩飯食いに行って試合終了。

終了

結局7位だった。

解いた問題数は2424/3784

生き残った車は5/71,1チームのみに解かれたのが61/71 (1台行方不明)

どう考えてもぴゅあぴゅあがうちらの車解きまくったのが敗因ですね

これはもう責任とって優勝してもらうしかないw

反省

秋葉さんのRubyが神がかっていたのでとりあえず夏休みくらいにPython覚えるお!

2010-06-07

[]IPSC 2010 11:54

今年は個人で参加した。

8問半解いて、全体で15位、個人の部では1位だった。

A

数列が与えられるので、ソートされてないように並び替える問題

やるだけ

B

平面上に一本直線があり、この直線上と上下左右への移動のみによる二点間の最短距離を求める問題

二点から水平・垂直な直線引いて交点求めてそれらからなるグラフの最短距離求めるだけ

C

「変数=数式」っていう形の入力を受け取って、各変数の値を求める問題

ただしループはしない

頑張ってパースするだけ

D

N個の頭を持つドラゴンを倒したい

二種類の剣があって、剣iはドラゴンの頭をci減らすがその後gi本の新しい頭が生えてくる

ドラゴンの頭を全て切ることができればあなたの勝ち

ドラゴンの頭がci未満だとその剣は使えない

しかし、自分も頭があるので、ドラゴンの頭がci-1個の時は自分の頭も一緒に切ることで引き分けにできる

勝敗判定せよって言う問題

拡張ユークリッドして場合分けしまくったら通ったが怪しい

E

ちゃんと読んでないが、たぶんインタラクティブ問題

時間かかるので放置

F

N個のサイズが異なる立方体があるので、それらを積み上げて二つの等しい高さの山を作るとき、最大の高さを求める問題(全部使い切らなくても良い)

に対する嘘解法が4つ与えられるのでそれらを全て同時に撃墜できる入力を作る問題

ランダムに入力生成すればそのうち落ちるかと思ったが全然落ちなかったのでちゃんと考えて作ったら落とせた

G

読んでない

H

指定されたMD5値になるようにファイルを生成する問題

無理ゲー

I

多角形(凸とは限らない)が与えられて、その内部の点から各辺の延長線上におろした垂線の長さの和の期待値を求める問題

頑張って積分するだけ

J

N個の机があり、各机に青と赤で数字を書く

最初、N人の男女が各机に一人ずつ居て、一定時間ごとに男は青の数字の机に移動し、女は赤の数字の机に移動する

N回の移動で、各男女が全ての机に移動し、各男が全ての女と同じ机になることがあるような番号付けを求めよっていう問題

サンプルからてきとーに類推して出したら通った

K

二人プレーのゲーム

3次元中に点がN個あって、各点は原点からのユークリッド距離が真に小さくなる格子点上へ移動させれる

各ターンに最大K個の点を動かすことが出来、全部原点に移動させたプレーヤーの勝ち

勝敗を判定せよっていう問題

同時に1〜K個のゲームを進められるNimは山のサイズを二進表記の各桁毎に和を取って全部mod(K+1)で0なら負け、そうでなければ勝ち

座標が超でかくて山のサイズがナイーブに求まらないのでちょっと大変

位置(x,y,z)に対応する山のサイズは|(x,y,z)|^2=Mとすると、|(x',y',z')|^2=K<Mとなる点(x',y',z')が存在するようなKの個数に等しい

つまり3つの平方数の和で表せるような数の個数を求めればよい

google先生に聞いたところ、表せない数は4^n(8k+7)であることが分かったため、サイズがO(log M)で求まって解けた

L

1円の切手がN種類と、2円の切手がM種類あるから、これらからK円分買うような方法の総数を求める問題

smallはKが小さいので2円の切手を何円分買うかが全通り試せる

largeはKが超でかいが、行列累乗で解けると思う

最後10分くらいで気づいたが組み終わらなかった

M

ペナルティーを減らすサービス問題

コンテスト開始〜2時間と2時間30分〜4時間30分に2回ゲームが開かれる

好きなタイミングで提出して、全参加者の提出時間の平均の2/3に近いほどペナルティーが下がる

点は入らないので、終了直前に暇になったらやればいいやと思って、4時間30分過ぎた時点でようやく問題読んだらすでに終わっていた

2009-08-03

[]天下一プログラマー 16:07

なんか運良く優勝してしまった

普段出てるコンテストとは違って、探索メインかつ入力一つだけという変わった形式だったけどなかなか楽しめた

一日目の一問目

16クイーンの障害物あり版

とりあえずA*組んだが、全然終わらないorz

時間制限後に探索する方向を反対からにしたら数秒で終わった…

一日目の二問目

ナンクロとかいうパズル

てきとーに探索したら一瞬で答えが出た

一日目の三問目

やるだけ

二日目

DPのような気がしたが、そんなわけないのでA*開始

開始40分ちょいくらいで答えぽいものが出たので提出

あってるのかわからないのでずっと見直しをしてたらバグ発見orz

しかしそこ直しても答えが変わらなかったwラッキー

2009-07-01

[]ICFP '09 Programming Contest 12:18

id:iwiwi ときたまさと HITO(ryというチーム名で初参加した

一日目3:00

寝たはずのきたまさが「べ、べつにICFPのためにおきてたんじゃないんだからねっ」とかいって起きてきて吹いた

眠かったけどとりあえず問題文だけ読んだ

ルールによるとトップ10のは別の入力に対してテストしますとか書いてあるのに、実行時間制限とかないし、よくわかんねーってなった

とりあえずそこまで面白そうじゃなかったので寝た

一日目11:00

寝すぎた

iwiとかもうやる気なくしてそうだなーと思ったらやる気まんまんぽかったので、とりあえずVMとビジュアライザーを作成することにした

一日目17:00

VM&ビジュアライザーがまともに動いたのでようやくスタート地点

一日目20:00

とりあえずてきとーにやったら100*と200*は解けたが、300*が難しすぎた

100*のスコアがなんか計算式と違っていてよくわからなかった

一日目25:00

なんか100*はバイナリがバグっていて燃料使うほど高得点だったらしく、燃料使いまくりプログラムに改造してだいぶ点が上がった

一日目26:00

ライトニングのこり1時間というタイミングでようやく300*が3つ解けてトップ10には入れた?のかな??(ルールよくわかってない)

残りひとつは無理ゲーだったorz

二日目〜

みんな飽きてしまったのでしゅーりょー


f:id:wata_orz:20090701121636p:image