集团新闻

游戏机制练习簿:渐变地形填充的种子差与邻接差——种子5与容差4的渐变填充(案例23)

2026-10-27

地图填充在纯色区域里较容易理解,但在缓慢变化的色值上,不同容差规则会得到很不一样的范围。每一步都只相差一点,可能一路扩展到与起点相差很大的地方。

以下是一组输入完整的独立案例。先读清规则,再按时间或操作顺序记录中间状态;遇到与预期不同的结果时,检查首次出现差异的位置。案例使用明确限定的教学模型,不假定所有作品都采用相同的处理方式。

规则和原始数据

仅考虑一行整数色值与左右相邻关系。规则甲要求所有加入位置与种子原值之差不超过容差;规则乙允许从已加入位置走到与它原值之差不超过容差的邻格。全程使用未修改的原值。

原色值[22, 23, 24, 26, 26, 26, 28, 28, 31, 31, 31, 34, 33] 种子位置5,原值26,容差4

逐步记录

位置0色值22,与种子色值差4,没有左邻格;种子差规则加入,邻接差规则加入。

位置1色值23,与种子色值差3,与左邻格原值差1;种子差规则加入,邻接差规则加入。

位置2色值24,与种子色值差2,与左邻格原值差1;种子差规则加入,邻接差规则加入。

位置3色值26,与种子色值差0,与左邻格原值差2;种子差规则加入,邻接差规则加入。

位置4色值26,与种子色值差0,与左邻格原值差0;种子差规则加入,邻接差规则加入。

位置5色值26,与种子色值差0,与左邻格原值差0;种子差规则加入,邻接差规则加入。

位置6色值28,与种子色值差2,与左邻格原值差2;种子差规则加入,邻接差规则加入。

位置7色值28,与种子色值差2,与左邻格原值差0;种子差规则加入,邻接差规则加入。

位置8色值31,与种子色值差5,与左邻格原值差3;种子差规则不加入,邻接差规则加入。

位置9色值31,与种子色值差5,与左邻格原值差0;种子差规则不加入,邻接差规则加入。

位置10色值31,与种子色值差5,与左邻格原值差0;种子差规则不加入,邻接差规则加入。

位置11色值34,与种子色值差8,与左邻格原值差3;种子差规则不加入,邻接差规则加入。

位置12色值33,与种子色值差7,与左邻格原值差1;种子差规则不加入,邻接差规则加入。

种子差规则覆盖[0, 1, 2, 3, 4, 5, 6, 7],邻接差规则覆盖[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]。

交叉核对与应用

分别构建两种可通过关系再遍历。对一行地图,还可沿种子左右逐边检查:规则甲一旦遇到不合格点就不能越过,规则乙在某条相邻差超过容差时停止。

遍历时若立刻用填充后的新色值参与后续比较,就会把规则悄悄改掉。本例一直查询原值,输出只是成员名单;实际编辑器应区分作为判断依据的图层与正在写入的结果。

建议保留原始输入、每一步状态和最终输出,再只改变一个条件做对照。重点检查空输入、相等边界、重复请求以及先后顺序;把规则约定、计算过程和显示表现分别核对,比只比较最后一个数字更容易找到原因。