• shouye@j909.vip
  • 深圳市龙华区龙华街道三联社区三联创业路19号弓村新城商业中心(汇海广场)C座20层01-03号
  • 17937667601

新闻中心

游戏规则研习:首尾相接棋盘的最短路线(案例07)

2026-10-23

地图左右边和上下边分别相连时,跨边界可能比穿过整个画面更短。应当分别比较每个方向直接移动与绕过边界的距离,再组合结果。

下面给出一组可以从头复算的练习数据。先按约定记录每一步,再比较最后的核对条件;遇到差异时,不急着修改答案,而是先找出从哪一步开始不同。本例描述的是明确限定的游戏规则模型,不代替某款作品自己的说明。

约定与输入

本例只能横竖移动,跨边界花费一步,没有障碍或单向门。宽和高分别决定自己的回绕周期,不能把两条轴都除以同一个尺寸。

每轴取直接差值与尺寸减差值中的较小者,两轴相加。相同坐标的这一轴距离为零。

宽13高10,坐标各从0开始,起点[12, 3] 目标[(11, 8), (0, 7), (7, 4), (10, 4), (3, 6), (8, 3), (12, 6), (12, 0), (8, 9)]

逐步观察

到(11,8):横向比较1与12取1,纵向比较5与5取5,合计6步。

到(0,7):横向比较12与1取1,纵向比较4与6取4,合计5步。

到(7,4):横向比较5与8取5,纵向比较1与9取1,合计6步。

到(10,4):横向比较2与11取2,纵向比较1与9取1,合计3步。

到(3,6):横向比较9与4取4,纵向比较3与7取3,合计7步。

到(8,3):横向比较4与9取4,纵向比较0与10取0,合计4步。

到(12,6):横向比较0与13取0,纵向比较3与7取3,合计3步。

到(12,0):横向比较0与13取0,纵向比较3与7取3,合计3步。

到(8,9):横向比较4与9取4,纵向比较6与4取4,合计8步。

最少总步数为[6, 5, 6, 3, 7, 4, 3, 3, 8]。

复核办法

将棋盘每一格作为节点,把越界邻居绕回另一边,用逐层搜索得到最少步数。若算出的路线比不回绕的直线路线还长,就要检查是否错误地强迫两个方向都绕边。

当尺寸为偶数而两点相隔半个周期时,两种方向可能同样短,距离仍只有一个数,路线却不一定唯一。不要把路线不唯一误认为最短距离算错。

把边界、顺序与适用范围写进记录,比只记一个最后数字更有用。可以另外构造刚好在边界、完全没有变化和多个条件同时成立的情况,查看规则是否仍自洽;若要改变设定,保留原案例作为对照,再重新计算受影响的部分。