所以我得到了這樣的問題:我想從一個黑點移動到另一個像這樣:如何使某物在矩陣中以特定順序移動?
,但每當我試圖做到這一點,它的動作是這樣的:
您只能在一個方向移動:北,南,東,西一次。 我試圖做這樣的事情:
int distance = game.Distance(myPirate.Loc,loc);
List<Direction> allDirections = new List<Direction>() { Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST, Direction.NOTHING };
Location destination;
foreach (Direction dir in allDirections)
{
destination = game.Destination(myPirate, dir);
int distance2 = game.Distance(destination, loc);
if (distance2 < distance) return dir;
}
return Direction.NOTHING;
但每當我試試這個代碼,我得到這些結果:
誰能幫我弄清楚如何像第一畫面移動和不喜歡第二個?你得到矩陣中2個黑方塊的位置。 如果您還需要更多,請告訴我。
像直線(歐幾里德)距離作爲啓發式函數的A *搜索可能會應用? – 2015-04-03 22:58:31
@ap或者如果您看另一種方式[DDA線條繪圖](http://en.wikipedia.org/wiki/Digital_differential_analyzer_%28graphics_algorithm%29)或其他線條繪製算法。 – 2015-04-03 23:16:17
我不明白如何使用它,線繪圖算法怎麼可以幫助我呢? :( – 2015-04-04 06:11:25