從
戰棋的尋徑,
同色相連,到
擴散,
跳棋。看似表現不同,但背後都是使用相同的尋徑plugin。
尋徑一般認知下,最有名的就是
A*演算法了,Dijkstra演算法算是A*的特定參數下的表現。更進一步,在尋徑演算法添加移動cost上限 -- 移動過程不能消耗超過這個上限。並取出所有closed node做為結果。就成了"取出可移動範圍了",可應用在戰棋上。
再進一步改良,客製化尋徑演算法的cost函數。例如
同色相連,
擴散即是設定某些格子的cost是0,某些格子是"無法通行"(wall)。到了
跳棋,判斷條件增加了移動到該點所需的cost。
所以使用尋徑plugin的核心,在於cost函數的設計。這樣的前提是要將cost函數導出尋徑函數外的程式包裝,以及導出一些設計時所需讀取的資訊。反過來說,如果只單純將尋徑演算法放上去,就沒有後續cost函數的變化了。這樣它的價值就會少很多。
-- 怎麼設計工具才能更容易被使用,應用範圍更廣。