只是为了好玩,我正在尝试创建一个非Flash版本的http://www.jurjans.lv/stuff/net/FreeNet.htm。这一切都非常简单,但我在精神上坚持如何生成初始网络。
我可以用正方形进行广泛的if / else逻辑检查邻近的方块,但坦率地说它似乎非常费力,我想知道是否有更多更聪明的方法。生成数学图或类似的东西,然后将其转换为网格?
我不是要求别人为我编码 - 只需指出我正确的方向!
完成的电路似乎是生成树。
有一种简单的方法可以通过以下方式生成random minimum spanning trees:
将随机权重从某个分布分配到无向图的边缘,然后构造图的最小生成树。
总结一下:
如果您想要禁止某些形状(例如完全连接的顶点),您可能需要额外的迭代来增加任何非法的图块中使用的边的权重,然后重新生成生成树,直到最终得到合法的图形。