https://github.com/mxgmn/WaveFunctionCollapse

波函数坍缩算法(Wave Function Collapse Algorithm)是一种基于约束满足问题的算法,用于生成具有一定规则性的图案或图像。它最初是由Maxim Gumin开发的,并受到量子力学中的波函数坍缩概念的启发。

在波函数坍缩算法中,每个像素或元素都有一个“波函数”,代表它可以取的所有可能状态(例如颜色或形状)。算法的目标是通过一系列迭代步骤,逐渐减少每个元素的可能状态,直到最终确定下来。

算法的步骤如下:

  1. 初始化:为每个元素分配一个完整的波函数,包含所有可能的状态。
  2. 观察:选择一个具有最小熵(即最少可能状态)的元素,并从其波函数中随机选择一个状态作为确定状态。
  3. 传播:根据所选元素的确定状态,更新周围元素的波函数,以满足预先定义的规则和约束。
  4. 迭代:重复观察和传播步骤,直到所有元素的状态都被确定下来。

波函数坍缩算法可以用于生成各种类型的图案,如地图、纹理、迷宫等,它的优势在于能够保证生成的图案遵循特定的规则,同时具有一定的随机性和多样性。