読者です 読者をやめる 読者になる 読者になる

simanのブログ

ゆるふわプログラマー。競技プログラミングやってます。Ruby好き

PathDefense日記(Topcoderマラソンマッチ)

競技プログラミング

0日目

今日からTCO MM Round2の始まり始まりー、いつも対戦後に戦略とかをツイッターに流しているけど、
今回は日記を使ってコンテスト中の考えとかを雑にまとめてみるテスト。

1日目(2015/05/26)

5:00 起床

起きて問題文を読む。和訳が面倒だ...ひたすらGoogle翻訳に英文を投げ続ける

「Path Defense」
https://www.topcoder.com/longcontest/?module=ViewProblemStatement&compid=48152&rd=16471



タワーディフェンスだ」!

7:00 問題文大体翻訳終わった

とりあえず何もしないAIを投げる

165000.00

正のスコアが取れた!圧倒的感謝!

19:00 帰宅

とりあえず基本的な部分のコードを書き始める。

ぼーっと何もしないビジュアライザを眺める

「波状攻撃きつそう」

そういえばcreepって侵略者って認識だけど完全にコイツで再生される

f:id:simanman:20150526205839j:plain

ぶつかったら爆発して消失するところとか似てる

22:00

色々足回りのコード書いてるだけで終わりそう

今のところhoshiさんとhogeさんが上位

問題がCODEVSっぽいというか1.0ってタワーディフェンスだったような(参加していないので詳細は知らず)

23:45

testerに修正があったみたいyowaさんのツイートで気づく

とりあえず「攻撃範囲 * 攻撃力 / コスト」でタワーの価値を計算してみる、ゴミのようなタワーからコスパ最強のタワーまで色々あった。攻撃範囲のことを考えても使うタワーそんなに多くなさそう。

2日目(2015/05/27)

0:00

とりあえずタワーの射程範囲を見える化しておこう

グリッド系の問題では毎回お世話になってる「PathFinding.js」で確認
PathFinding.js

範囲1
f:id:simanman:20150527000231p:plain:w300

範囲2
f:id:simanman:20150527001008p:plain:w300

範囲3
f:id:simanman:20150527001339p:plain:w300

範囲4
f:id:simanman:20150527001702p:plain:w300

範囲5
f:id:simanman:20150527002024p:plain:w300


範囲5デカっ

範囲3から使い物になりそう。範囲1とか2はテストケース次第って感じかな

0:30

とりえあず眠いので寝よう

7:00

起きる。支度して会社

22:00

ひたすら足回りを実装、まだ終わらない

3日目(2015/05/28)

1:00

のんびり考えてたらこんな時間。

これ波状攻撃を以下に防ぐか、そして捨て基地が必要なのかが気になる。
端から4マスしか離れていない場所にある基地とか、近場のスポーン地点から波状攻撃があったら
即詰みしそう

3:00

コメントをdoxgen風に
明日には提出できるといいな

7:00

起床

20:40

帰宅

タワーを立てる条件を考えよう

  • 1. 敵が出現する
  • 2. 現在の建設状態で敵が基地に到達出来ない場合はスルー
  • 3. 敵を止めきれない場合、建設を行う

この「敵を止めきれない場合」を判定するのが難しい。

22:45

とりあえずコードに「やりたいこと」をコメントで残して「実装まだですコメント」を入れていこう

4日目(2015/05/29)

最初の1週間は何も出来ないマンになってる気がする

0:25

マップの各要素をセルとして扱っていたけど、各セルに対して「防御価値」をつけて
防御価値の高いセルを多く守れるようにタワーを設置してみよう。

防御価値の高いセルとは

  • 多くの基地への経路の一部となっている(ここを通る敵が多いので守るべき)
  • 基地に近い(基地に近いところは火力を高くしておく)

あまり思いつかないけど、とりあえずこの辺りで

5日目(2015/05/30)

ひたすら実装、想像以上に実装が多い

2:30

とりあえず欲しい機能をAmazonウィッシュリスト感覚で追加していったら
コード量がどんどん増えていく...

3:00

結講実装したつもりだけどまだ出せない...土日頑張ろ

6:00

おはようございます!そしておやすみなさい!

10:30

おはようございます!

頑張って今日で2投目投げたい、とりあえず戦略を一度整理して少しずつ実装していくことに

12:00

kindle 50%還元セールが始まってた。購入作業

6日目(2015/05/31)

機能はkindleのセールでほとんど作業できなかった


19:30
やっと完成したけど、バグ

7日目(2015/06/01)

バグが取れたので投げてみる

226754.39

うん。まぁこんなもんか、とりあえずここからここから

3:00

2投目を投げる

384385.96

やっぱり波状攻撃に対応しないとこんなもんか

8日目(2015/06/02)

セルに対して「防御価値」をつけて、その合計値が高いところにタワーを置くようにする

3投目

520472.44

まだちょっと評価値が変な感じ、あとは「捨てタワー」もどうするか出来てないし

13日目(2015/06/07)

日記つけるのさぼってました

日本勢の順位が1位(eitahoさん)、5位(hoshiさん)、11位(takaptさん)とかなり上がってきてる。

正直このゲームまだ「敵をひたすら殲滅」するゲームなのか「タワーを犠牲にしても良い」
のかよくわかってない

最終日(2015/06/08)

スプラトゥーン楽しい(∩´∀`)∩