rickytheta's blog

競プロ

CODE RUNNER 2015 参加記

交通費支給のイベントで夕飯分の食費を浮かせる一般的なテク。のつもりが10位入賞で嬉しい誤算。

以下ツイート付けながら参加記を書きます

予選

A:ランダムに線分を取り続ける戦略。脳死。99位。

B:閾値に達したら攻撃する、みたいな戦略。途中誰も攻撃しないとかあって辛かった。63位。

本戦参加権は予選Bの63位のおかげだそうです。

開始前

結局ほとんど準備せず。(環境整備を少しだけ)

開始

本戦は「お国からタスクを受注するか、市場に出てるタスクを外注として引き受けて、自社の社員に割り振って報酬をいっぱい得よう」みたいなゲーム。他プレイヤーとの相互作用ポイントは外注システムのみ。

社員は酷使していくと経験値が溜まっていって、タスク処理速度が上がっていく。

最初のうちはとりあえずinfoを叩きながら、全員でお国から受注した1つのタスクをこなす、というところを自動化した。

これが自動化安定した時のツイートのはず。

プロフィール文を「🍣」に変更。その時プログラムを稼働させている人が少なく上位だったためちょっとだけ目立つ。

中盤

お国からいくつか受注して、能力の特化した社員がいれば充てるようにして少しだけ効率を上げようとしたが、無駄に受注してリスクが発生してしまい順位が下がる。

ここで減衰のシステムを知ったので、減衰したタイミングで戦略を切り替えて逆転を考える。

悲しい誤算。焦る。

終盤

ここで、リスクが発生しない外注システムを読み返す。

外注のinfoを叩いてタスクを見てみると、割と報酬の良いタスクがいっぱいあったので、これで行くことに。

閾値以上の報酬がもらえる外注タスクを一つ一つ見て、今使える弊社社員のうちそのタスクを処理する速度が速い順に並べて、社員の能力がそこそこ活かせるようにタスクがこなせる(速い順に使って行って、最低の速度が3以上みたいな判定基準)なら受注する、みたいなアルゴリズムに変更。

この時点で30位前後だったはず。

うまくハマって少し安堵。

このツイートから20分間ターミナルとランキングに張り付いていた。

自分が12位の時に11位の人が「ここから下は賞金なし」ってコメントに変更していて非常に辛さがあった。

終了

滑り込み10位でした。歓喜。

表彰

"rickytheta"のIDが読みづらい事案が発生。「リッキー」でお願いします・・・

その後

"#coderunner2015"ではその後考察が多く流れていたが、「社員ガチャ」「社員厳選」など、思いつかなかった(というよりそのAPIを無視していた)戦略があって奥が深いと思った。

超ホワイト。

あと、今回は外注を受ける側にひたすら回っていたが、外注を出す戦略でももしかしたらかなり儲かるのかもしれない。もうちょい早く考察するべきだった。

感想

すごく楽しかった。

他の普通の[要出典]競プロと比べるとかなり違う頭の使い方をした。

かなり勝手が違うし、APIも仕様も多くてかなり難しいと思ったけど、3時間でどのように使いこなせるか、というのを競うは結構お仕事のプログラミングに近い気がした。

懇親会ではいろんな企業がインターンの募集やってたしそういうのにも手を付けたい。

なお、懇親会で🍣は出なかった。