CodinGame - Wondev Woman 参加日記

二度目のCodingGameコンテスト。ボードゲームAIの強さを競うもので、結果は世界310位/2299人、アメリカ17位/179人(ゴールドリーグ中位)だった。前回のCodinGame参加日記にも書いたが、このコンテストは

  • ランキングはリーグ制
  • ウッドリーグ3部からスタート
  • リーグボスを倒すごと、ウッド2→ウッド1→ブロンズ→シルバー→ゴールド→レジェンドとランクアップする
  • ランクアップとき、ルールが追加されることがある

の特徴がある。マッチを美しいグラフィックで観戦できるのが楽しい。
https://www.codingame.com/replay/243115997


ゲームルール概要

  • ターン制の2Dボードゲーム
  • お互い1つ(上位リーグより2つ)の駒を持つ
  • 初期配置はランダム
  • ボード上の各セルは、高さ(0~4)を持つ
  • また、ボード上には移動できないセルもある
  • 駒は上下左右および斜めの8か所に移動できる
  • ただし、移動できるのは現在より低い地点か、1つだけ高い地点のみ
  • また、高さ4のセルへは移動できない
  • 各ターンで1つの駒へ、次の命令を行う
  • MOVE&BUILD …移動して、移動先の隣接セルの高さを+1する
  • PUSH&BUILD(上位リーグより) …隣接する敵駒を押して移動させ、その場所の高さを+1する
  • 下位リーグ:高さ3のセルに最初に到達したほうが勝ち
  • 上位リーグ:高さ3のセルに到着した回数の多いほうが勝ち
  • 敵の駒情報は、味方に隣接してる場合のみ与えられる(上位リーグより)


実装

  • 1手だけ読む
  • ゴール回数、現在地と移動可能な隣接セルでスコアを付ける
  • 現在地・隣接セルともに、高いほどよいスコアにする
  • 敵に近かったらペナルティ
  • 動けなくなったらペナルティ

敵の場所の予想、狭い場所を嫌う仕組みなどは思いついたが実装せず。2手読みさせたら弱くなったのが原因不明。
https://bitbucket.org/yambe2002/codingame-wondev-woman


反省
こんな感じに「それっぽく不具合なく動く」程度でゴールド中位くらいになるようだ。Topcoder MMの黄色下位と同レベルくらいか。
レジェンドリーグからが本番の雰囲気があるので、次回はそこを目指したい。