2013-04-29 133 views
3

我有一個可以和AI做一個tron遊戲的分配。我的團隊幾乎成功了,但我們試圖找到一個很好的啓發。我們教約維諾,但它有點慢:Tron的好啓發式

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秒內做出的舉動和此算法不`噸聽起來好得!我不需要代碼......我們只需要一個ideea! 謝謝!

後來編輯:我們應該嘗試德勞內三角?

+0

任何使您能夠查詢快速鄰居的數據結構正在那裏工作。查找KD-Trees /四叉樹。 – 2013-04-29 08:26:59

+0

嗯......謝謝!我會看看它:)。 – Matei 2013-04-29 08:44:31

回答

1

嗯,我正在考慮重新設計我的老Wurmeler遊戲(AI包括),所以我難倒你的問題,同時尋找新的想法所以這裏是我的老AI我的見解

  • Wurmeler類似於TRON但更slover and worms turns smooth
  • 遊戲空間是2D位圖
  • 每個AI都很簡單...笨蛋,...
  • 但導航比我更好
  • ,除非它們被其他玩家關閉
  • 或粉碎成當地最大/最小
  • ,但他們仍然很有趣

OK,現在在每一個決定AI算法移動:

  1. 從蠕蟲創建幾縷

    • 一個在移動方向
    • 幾個轉向左側由一些角度(5度步是罰款)
    • 幾個轉向
  2. 評估射線長度權

    • 從蠕蟲直到它碰到邊界
    • 或另一個蠕蟲路徑曲線
  3. 使用的最大規則改變航向

這老AI只維持導航,但我想要實現更多的(這還沒有完成):

  1. 鴻溝地圖方部分

    • 每個部分將已經填充空間
    • 的平均密度10
    • 所以如果可能的AI會選擇少填充區域
  2. 添加策略

    • 導航(已完成)
    • 逃離(從接近球員,如果太靠近後面走)
    • 攻擊(如果在相對平行路線上並且太靠近並且在前面)
  3. 可能會話從光柵離子到矢量

    • 應加快射線追蹤和colision檢測
    • 但是具有不斷增長的長度可能比較慢...不得不嘗試一下,看看
    • 可能使用領域算法