Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ジャッジサーバのスコア状況を利用した効率的な移動 #55

Open
ikemuuu opened this issue Dec 28, 2021 · 10 comments
Open
Assignees

Comments

@ikemuuu
Copy link
Collaborator

ikemuuu commented Dec 28, 2021

1週目は,予め設定した周回コースを進む.
2週目以降は,相手に奪われた壁マーカのみを再び読みに行く.

@ikemuuu ikemuuu self-assigned this Dec 28, 2021
@ikemuuu
Copy link
Collaborator Author

ikemuuu commented Dec 28, 2021

・Target No. のつけ方

    6   [zone3]  8
           14
     7            9
[zone2] 16    15 [zone4]
     10           12
           17
     11  [zone1]  13
----------------------------------------
       Back 0                  Back 3
  R 2[enemy_bot(b)]L 1   R 5[my_bot(r)]L 4
       Front                   Front
----------------------------------------

@ikemuuu
Copy link
Collaborator Author

ikemuuu commented Dec 28, 2021

2週目以降は,相手に奪われた壁マーカのみを再び読みに行く

  • WarStateWatcher.py
    スコア状況を常に監視.
    壁マーカが相手に奪われた場合,そのマーカNo.(self.warState.enem_get_wall_marker_no)をpublish.
    壁マーカが一つも相手に奪われていないとき(sum(self.all_field_score[6:18]) == 0)はself.warState.enem_get_wall_marker_no=0としておく.

  • waypoint.py
    self.warState.enem_get_wall_marker_noをsubscribe.
    2週目以降(self.next_lap_flag = True),かつ,相手に1つ以上壁マーカを奪われているの場合(self.watch_score_flag = True),self.warState.enem_get_wall_marker_no に基づいて,あらかじめ設定されたwaypoint(waypoints_depending_on_score.csv)に移動して,壁マーカを取り返しに行く.

https://github.com/EndoNrak/burger_war_dev/commit/6f0d407fa68396acab260e61442a401fa7c9863e

@ikemuuu
Copy link
Collaborator Author

ikemuuu commented Dec 28, 2021

壁マーカを取り返しに行く場合の経路は,周回コースと違って,経由地を指定していないので,完全ランダム
(基本は広い方通るので,四方のブロックの内側を通る)

@ikemuuu
Copy link
Collaborator Author

ikemuuu commented Dec 28, 2021

(雑に言うと)今は,敵に直前に奪われたマーカを取り返しに行っている.

できれば,敵に奪われている かつ 自分から最も近いマーカを取りに行きたい.

@EndoNrak
Copy link
Owner

そもそも敵機マーカを取りに行くのと、敵にとられてるマーカを取り返しに行くのどっち優先させようかねー
このissueのスコープ外かもしれんけど

@ikemuuu
Copy link
Collaborator Author

ikemuuu commented Dec 29, 2021

そもそも敵機マーカを取りに行くのと、敵にとられてるマーカを取り返しに行くのどっち優先させようかねー

敵機マーカを取りに行くってのは

  • スコア状況から,敵の位置を予測して能動的に狙いに行く
  • 壁マーカを読みに行っている最中に,偶然出会ったのを読みに行く
    のどっち??

@ikemuuu
Copy link
Collaborator Author

ikemuuu commented Dec 29, 2021

残タスク

  • red side, blue side の対応 -> Done
    現状は,red side の場合のみでしか対応できていない.
    blue side の場合は,waypoints_depending_on_socre の座標を180度回転させる必要あり.

  • 敵が新たな壁マーカを取得しなかった場合の対応 -> Done
    現状は敵が直近に奪った壁マーカのみを取り返しに行くので,このマーカを取り返す間に,敵が新たな壁マーカを取得しなかった場合,次のwaypointが設定されない.
    そもそも,敵に奪われたどのマーカを取りに行くのかも含めて要検討.

  • 奪い返したら次のwaypointへ即移動
    今は,奪い返したらではなくて,奪い返すためのwaypointに着いたら,次のwaypointへ行くようになっている.
    マーカを奪い返せた時点で,waypointをキャンセル・更新して,無駄な移動をなくしたい.

@EndoNrak
Copy link
Owner

壁マーカを読みに行っている最中に,偶然出会ったのを読みに行く
こっちのイメージやったけど、基本戦略で変わるんか

イメージは基本的に、壁マーカーをとりながら敵を見つけたらそれを狙うって感じでいく?

@ikemuuu
Copy link
Collaborator Author

ikemuuu commented Dec 29, 2021

イメージは基本的に、壁マーカーをとりながら敵を見つけたらそれを狙うって感じでいく?

とりあえずはこっちのほうが無難かな〜.
この戦略で行くなら,現状の仕様では

そもそも敵機マーカを取りに行くのと、敵にとられてるマーカを取り返しに行くのどっち優先させようかねー

敵機マーカを取りに行くのが優先されるね.
Basic Mode → Attack Mode に遷移するから.


スコア状況から,敵の位置を予測して能動的に狙いに行く

パラメータ調整しきって,自律移動が完璧なら攻めたい気持ちもある笑

@EndoNrak
Copy link
Owner

全ての前提にパラメータ調整があるのが伝わってきたわ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants