如何生成所有 Tetromino 的列表?
或者,更一般地说,如何生成仅限于多个单元格的多联骨牌子集?
有很多方法可以做到这一点。我发现效果很好的一种选择是递归地、更普遍地思考它。尤其:
- 单个矩形是 1-多米诺骨牌。
- 对于任何 n 型骨牌,您可以通过将一个块与 n 型骨牌中的任何块相邻放置一个块来创建 (n+1) 型骨牌。
这为您提供了一种列出所有可能的多米诺骨牌的递归方法。不过,您需要小心,因为这会生成相同 n 多米诺骨牌的多次旋转和平移。您可以通过选择一些参考坐标系然后平移 n-omino 使其始终与该系统的轴齐平来解决此问题。一旦你完成了这项工作,你就可以通过围绕轴旋转生成的 n-omino 来生成所有旋转,然后将其平移回规范位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)