Lobsters | 📄 原文链接 | 2026-10-28 收录

不用栈的洪泛填充:拿 16 种颜色当状态机

来源:t3x.org — 2023-01

📋 概述

Nils M Holm 的小论文给出一个反直觉的洪泛填充实现:如果图像里能空出 16 个颜色值,就不需要任何栈或其他动态数据结构。做法是把 16 种状态编码进这些颜色——每个像素存两个方向,一个是"原点像素"(我是从哪个邻居被尝试填充的),一个是"下一步该试哪个方向",于是回溯路径被写进了图像本身。碰到无路可走的状态就填成最终颜色并沿原点箭头退回,最后从起点一路把无方向的状态刷成填充色。算法复杂度仍是线性的 O(4n),可以推广到六边形网格或体素空间,但那时要 36 个空余颜色。作者说这个变体是为一个只有 7K 程序内存、30 层子程序嵌套的 BASIC 机器上的文字扫雷写的,文末还附了完整的 BASIC 实现。

🔑 核心要点

💡 金句

这个变体是为一个文字版扫雷游戏写的,那台 BASIC 机器只有 7K 字节程序内存和 30 层子程序嵌套。
← 返回 Lobsters 首页