疯狂ios讲义之实现游戏逻辑(3)
13.6.9两个转折点的连接 两个转折点的连接是最复杂的一种连接情况,因为两个转折点又可分为如下几种情况。 p1、p2位于同一行,但不能直接相连,就必须有两个转折点,分向上与向下两种连接情况。 p1、p2位于同一列,但不能直接相连,也必须有两个转折点,分向左与向右两种连接情况。 p2在p1的右下角,有6种转折情况。 p2在p1的右上角,同样有6种转折情况。 提示: 对于p2位于p1的左上角、左下角的情况,同样只要把p1、p2的位置互换即可。 对于上面4种情况,同样需要分别进行处理。 1.同一行不能直接相连 p1、p2位于同一行,但它们不能直接相连,因此必须有两个转折点,图13.13显示了这种相连的示意图。 从图13.13可以看到,当p1与p2位于同一行但不能直接相连时,这两个点既可在上面相连,也可在下面相连,这两种情况都代表它们可以相连。我们先把这两种情况都加入结果中,最后计算最近的距离。 实现时可以先构建一个NSDictionary,NSDictionary的key为第一个转折点,NSDictionary的value为第二个转折点(每种连接情况最多只有两个连接点),如NSDictio...

