---
# System prepended metadata

title: 高専プロコン　乱数解のパラメータ
tags: [プロコン]

---

# 高専プロコン競技部門　ランダムウォーク解のパラメータ

## 現在考えているアルゴリズム

自分の周囲4マスに壁がなければ壁を建築する

自分が城にいるとき、隣接しているマスに、自分の陣地でなく且つ隣接しているマスに城以外のマスがある城がある場合はそのマスに移動

そうでなければランダムに移動する方向を決める(ランダムウォーク)

ただし、当確率に移動先の選定を行うのではなく各項目ごとに評価を行ってそのマスに移動する確率に加算する

また、この評価を2手先,3手先まで行った上で確率を求めるのもいいかもしれない

## 移動時に適応させるパラメータ(テキトーに決めました)

#### 移動先のマスの周囲8マスに隣接している自チームの壁と陣地の量

0,8マス -> 0pt

1 -> 5pt

2 -> 4pt

3,4 -> 2pt

5~7 -> 1pt

#### 移動先が城である場合

8pt

#### 移動先のマスが自分の陣地もしくは壁ではない(１つ目と被っている気はするが...)

5pt

他にも自分以外が建てた壁との距離とかも評価に加えるのもありかも...?

## Todo (solve4 py)

- [x] 自分の周囲4マスに壁がなければ壁を建築する関数 (buildAround)
- [x] 自分が城にいるとき、隣接しているマスに、自分の陣地でなく且つ隣接しているマスに城以外のマスがある城がある場合はそのマスに移動
- [x] 移動先のマスの周囲8マスに隣接している自チームの壁と陣地の量での評価
- [x] 移動先が城である場合での評価
- [x] 移動先のマスが自分の陣地もしくは壁ではないときの評価
- [x] マスの評価/周囲8マスの評価 の確率で移動先のマスを抽選する関数
- [ ] 千日手対策
- [ ] 
