創成工学実験
ymy.KeiBility   4S 42 山谷佳祐
基本戦略
   移動
     敵の弾丸をよける        移動
     壁をよけつつランダムな動き
   レーダー
     常に360度回転し続ける レー
                         大砲
     特定の敵を追跡      ダー
   大砲
     敵の行動履歴から移動パターンを判定し衝突位
      置を推定
     衝突位置がバトルフィールド内であれば発射
戦術
   実装クラスの選択
     現在の状況を判断して戦略を変更可能
   反重力移動
     バトルフィールド内に”反重力点”を配置
     なるべく動きが単調にならないようランダムな
      位置にランダムな力を与えておく
   ターゲットの行動予測
     線形or円形かの予測により命中率の向上
     弾丸のパワーは敵との距離に応じて変化
反重力移動
   反重力・・・距離に反比例するような力
   敵と自分の間にばねの力が働いていると仮定




   例えば,l0をフィールドの対角線とすることで,反
    発力を考えられる

     敵や壁などに近づかない動きが可能
対戦結果(Level01,02)
                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts       2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.Ke 17921
1st                     5000   1000   9934   1987   0   0    100            0          0
       iBility (100%)

       exe.Le
2nd           1 (0%)       0      0      0      0   1   0        0     100             0
       vel_01


                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts       2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.Ke 15505
1st                     5000   1000   7920   1584   0   0    100            0          0
       iBility (82%)

       exe.Le 3477
2nd                        0      0   3477      0   0   0        0     100             0
       vel_02 (18%)
対戦結果(Level03,04)
                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.Ke 14454
1st                    4800   960   7289   1405   0     0        96          4          0
       iBility (71%)

       exe.Le 5930
2nd                    200    40    5589   101    0     0        4       96             0
       vel_03 (29%)

                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.Ke 12657
1st                    4550   910   6036   1161   0     0        91          9          0
       iBility (68%)

       exe.Le 6083
2nd                     450    90   5344    199   0     0         9      91             0
       vel_04 (32%)
対戦結果(Level05,06)
                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.Ke 11278
1st                    4750   950   4682   896     0    0        95          5          0
       iBility (65%)

       exe.Le 6091
2nd                     250    50   5628   162     1    0         5      95             0
       vel_05 (35%)

                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.Ke 15359
1st                    4600   920   8147   1521   112   60       93          7          0
       iBility (70%)

       exe.Le 6513
2nd                     350    70   5715    196   149   34        8      92             0
       vel_06 (30%)
対戦結果(Level07,08)
                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       exe.Le 12868
1st                     3300   660   7699   1208   1    0        66      34             0
       vel_07 (72%)
       ymy.K 5002
2nd                     1700   340   2737    224   1    0        34      66             0
       eiBility (28%)

                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.K 13949
1st                     4850   970   6809   1319   1    0        97          3          0
       eiBility (70%)

       exe.Le 6030
2nd                      150    30   5776     74   0    0         3      97             0
       vel_08 (30%)
対戦結果(Level09,10)

                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.Ke 14359
1st                    4700   940   7311   1387   20    0        94          6          0
       iBility (69%)
       exe.Le 6318
2nd                     300    60   5780    142   36    0         6      94             0
       vel_09 (31%)


                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2
       exe.Le 14526
1st                    4100   820   8197   1407   2     0        82      18             0
       vel_10 (70%)
       ymy.Ke 6157
2nd                     900   180   4684    391   2     0        18      82             0
       iBility (30%)
対戦結果(Rx75,Rx78)

                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       ymy.K 11576
1st                     4750   950   4916    946   14   0        95          5          0
       eiBility (78%)
       eff.Rx7 3278
2nd                      250    50   2892     80    5   0         5      95             0
       5 1.0 (22%)

                                              Ram
       Robot  Total Surviv Surv Bullet Bullet       Ram
Rank                                          Dmg *       1sts        2nds       3rds
       Name Score al       Bonus Dmg Bonus          Bonus
                                              2

       eff.Rx7 13635
1st                     4500   900   6929   1306   0    0        90      10             0
       82      (88%)

       ymy.K 1915
2nd                      500   100   1271     44   0    0        10      90             0
       eiBility (12%)
長所・短所



  1vs1,Meleeの両方に 弾丸回避行動のよけ
  対応             方が単純なので読ま
                 れやすい
  一定の動きをする敵
  への命中率が高い       予測にない動きをさ
                 れると命中率が下が
                 る
今後の改良点
         実装しきれなかった戦術を完成させる
   DodgeBullet(Fermatの弾丸回避アルゴリズム)
     弾丸の衝突地点を計算
     検出したすべての弾丸をリストに追加し,各弾丸の位置
      を計算
     弾丸の弾道を識別し,直角になる姿勢にして弾丸から身
      をかわす
   GuessFactorTargeting
       敵に対して弾丸を撃ち,到着するまでの間に敵が動ける
        範囲は,多くても直線的に最速で動いた範囲
       その範囲における統計をとって,存在確立の高いところ
        に弾丸を撃つ
考察・感想
  考察
 • パターンマッチングのような,規則性をもとにし
   た照準アルゴリズムには反重力移動は効果的
 • 行動戦略をAvoidBulletにしたとき,逆に自分が規
   則性をもってしまうため当てられやすくなる
 • Rx78に勝利するには先に述べたような優れた”弾
   丸回避”,”照準”アルゴリズムが不可欠と考えられ
   る

   感想
 • Javaとオブジェクト指向プログラミングの理解が
   今まで以上に深まった

Kei_bility

  • 1.
  • 2.
    基本戦略  移動  敵の弾丸をよける 移動  壁をよけつつランダムな動き  レーダー  常に360度回転し続ける レー 大砲  特定の敵を追跡 ダー  大砲  敵の行動履歴から移動パターンを判定し衝突位 置を推定  衝突位置がバトルフィールド内であれば発射
  • 3.
    戦術  実装クラスの選択  現在の状況を判断して戦略を変更可能  反重力移動  バトルフィールド内に”反重力点”を配置  なるべく動きが単調にならないようランダムな 位置にランダムな力を与えておく  ターゲットの行動予測  線形or円形かの予測により命中率の向上  弾丸のパワーは敵との距離に応じて変化
  • 4.
    反重力移動  反重力・・・距離に反比例するような力  敵と自分の間にばねの力が働いていると仮定  例えば,l0をフィールドの対角線とすることで,反 発力を考えられる 敵や壁などに近づかない動きが可能
  • 5.
    対戦結果(Level01,02) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.Ke 17921 1st 5000 1000 9934 1987 0 0 100 0 0 iBility (100%) exe.Le 2nd 1 (0%) 0 0 0 0 1 0 0 100 0 vel_01 Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.Ke 15505 1st 5000 1000 7920 1584 0 0 100 0 0 iBility (82%) exe.Le 3477 2nd 0 0 3477 0 0 0 0 100 0 vel_02 (18%)
  • 6.
    対戦結果(Level03,04) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.Ke 14454 1st 4800 960 7289 1405 0 0 96 4 0 iBility (71%) exe.Le 5930 2nd 200 40 5589 101 0 0 4 96 0 vel_03 (29%) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.Ke 12657 1st 4550 910 6036 1161 0 0 91 9 0 iBility (68%) exe.Le 6083 2nd 450 90 5344 199 0 0 9 91 0 vel_04 (32%)
  • 7.
    対戦結果(Level05,06) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.Ke 11278 1st 4750 950 4682 896 0 0 95 5 0 iBility (65%) exe.Le 6091 2nd 250 50 5628 162 1 0 5 95 0 vel_05 (35%) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.Ke 15359 1st 4600 920 8147 1521 112 60 93 7 0 iBility (70%) exe.Le 6513 2nd 350 70 5715 196 149 34 8 92 0 vel_06 (30%)
  • 8.
    対戦結果(Level07,08) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 exe.Le 12868 1st 3300 660 7699 1208 1 0 66 34 0 vel_07 (72%) ymy.K 5002 2nd 1700 340 2737 224 1 0 34 66 0 eiBility (28%) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.K 13949 1st 4850 970 6809 1319 1 0 97 3 0 eiBility (70%) exe.Le 6030 2nd 150 30 5776 74 0 0 3 97 0 vel_08 (30%)
  • 9.
    対戦結果(Level09,10) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.Ke 14359 1st 4700 940 7311 1387 20 0 94 6 0 iBility (69%) exe.Le 6318 2nd 300 60 5780 142 36 0 6 94 0 vel_09 (31%) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 exe.Le 14526 1st 4100 820 8197 1407 2 0 82 18 0 vel_10 (70%) ymy.Ke 6157 2nd 900 180 4684 391 2 0 18 82 0 iBility (30%)
  • 10.
    対戦結果(Rx75,Rx78) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 ymy.K 11576 1st 4750 950 4916 946 14 0 95 5 0 eiBility (78%) eff.Rx7 3278 2nd 250 50 2892 80 5 0 5 95 0 5 1.0 (22%) Ram Robot Total Surviv Surv Bullet Bullet Ram Rank Dmg * 1sts 2nds 3rds Name Score al Bonus Dmg Bonus Bonus 2 eff.Rx7 13635 1st 4500 900 6929 1306 0 0 90 10 0 82 (88%) ymy.K 1915 2nd 500 100 1271 44 0 0 10 90 0 eiBility (12%)
  • 11.
    長所・短所 1vs1,Meleeの両方に弾丸回避行動のよけ 対応 方が単純なので読ま れやすい 一定の動きをする敵 への命中率が高い 予測にない動きをさ れると命中率が下が る
  • 12.
    今後の改良点 実装しきれなかった戦術を完成させる  DodgeBullet(Fermatの弾丸回避アルゴリズム)  弾丸の衝突地点を計算  検出したすべての弾丸をリストに追加し,各弾丸の位置 を計算  弾丸の弾道を識別し,直角になる姿勢にして弾丸から身 をかわす  GuessFactorTargeting  敵に対して弾丸を撃ち,到着するまでの間に敵が動ける 範囲は,多くても直線的に最速で動いた範囲  その範囲における統計をとって,存在確立の高いところ に弾丸を撃つ
  • 13.
    考察・感想 考察 • パターンマッチングのような,規則性をもとにし た照準アルゴリズムには反重力移動は効果的 • 行動戦略をAvoidBulletにしたとき,逆に自分が規 則性をもってしまうため当てられやすくなる • Rx78に勝利するには先に述べたような優れた”弾 丸回避”,”照準”アルゴリズムが不可欠と考えられ る 感想 • Javaとオブジェクト指向プログラミングの理解が 今まで以上に深まった