所以我得到了这样的问题:我想从一个黑点移动到另一个像这样:如何使某物在矩阵中以特定顺序移动?
,但每当我试图做到这一点,它的动作是这样的:
您只能在一个方向移动:北,南,东,西一次。 我试图做这样的事情:
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