3

AIを使ったトロンゲームをするという宿題があります。私と私のチームはほぼ成功しましたが、適切なヒューリスティックを見つけようとしています。ボロノイについて教えましたが、ちょっと遅いです :

for yloop = 0 to height-1
for xloop = 0 to width-1

// Generate maximal value
closest_distance = width * height

for point = 0 to number_of_points-1
  // calls function to calc distance
  point_distance = distance(point, xloop, yloop)

  if point_distance < closest_distance
    closest_point = point
  end if
next

 // place result in array of point types
 points[xloop, yloop] = point

next
next

移動するのに 5 秒ありますが、このアルゴリズムはあまり良くありません。コードは必要ありません...必要なのはアイデアだけです! ありがとうございました !

後で編集: Delaunay Triangulations を試す必要がありますか?

4

2 に答える 2

1

古い W​​urmeler ゲーム (AI を含む) を再設計することを検討しているので、新しいアイデアを探しているときにあなたの質問に行き詰まったので、古い AI からの洞察をここに示します

  • Wurmeler は tron に似ていますが、多くの slover と worms はスムーズに回転します
  • ゲーム空間は 2D ビットマップ
  • それぞれの AI は非常に単純です...ばかです...
  • しかし、私よりもうまくナビゲートします
  • 他のプレイヤーによって閉じられない限り
  • またはローカルの最小値/最大値に押しつぶす
  • それでも彼らは楽しい

さて、すべての意思決定の動きにおける AI アルゴリズム:

  1. ワームからいくつかの光線を作成します

    • 移動方向に 1 つ
    • いくつかの角度で左に曲がっています (5 度のステップで問題ありません)。
    • 右に曲がった人はほとんどいなかった
  2. 光線の長さを評価する

    • ワームからボーダーに当たるまで
    • または別のウォーム パス曲線
  3. max ルールを使用して見出しを変更する

この古い AI はナビゲーションのみを維持していますが、さらに実装したいと考えています (これはまだ行われていません)。

  1. 地図を正方形に分割

    • 各セクションには、すでに満たされたスペースの平均密度があります
    • 可能であれば、AI は塗りつぶしの少ない領域を選択します
  2. 戦略を追加する

    • ナビゲート(すでに完了)
    • 逃げる(近すぎて後ろにいる場合は、近くのプレイヤーから離れます)
    • 攻撃(比較的平行なコース上で近すぎて前にいる場合)
  3. ラスターからベクターへの変換である可能性があります

    • 光線追跡とコリジョン検出を高速化する必要があります
    • しかし、長さが成長すると遅くなる可能性があります...試して確認する必要があります
    • フィールドアルゴリズムの可能な使用
于 2013-11-04T20:38:03.810 に答える