Python 生成单词搜索拼图矩阵

Python 生成单词搜索拼图矩阵,python,string,matrix,coordinates,words,Python,String,Matrix,Coordinates,Words,我不确定为单词搜索益智游戏创建矩阵的规则。我能够创建初始值为0的矩阵 我将为一个单词随机选择一个起点(坐标)和一个随机方向(水平、垂直和对角),然后管理它是否与矩阵中的另一个单词重叠,这是正确的吗?如果是,则检查字符是否相同(尽管可能性很小)如果没有,我会把它分配到那里。问题是我减少了单词重叠的机会 我还读到,我需要首先检查具有相同字符的单词。但是如果是这样的话,我将要放在矩阵中的单词似乎总是重叠的。我宁愿查看已经存在的单词,然后从适合它们的单词集中随机选择一个单词。 当然,您可能不会像这样填充

我不确定为单词搜索益智游戏创建矩阵的规则。我能够创建初始值为0的矩阵

我将为一个单词随机选择一个起点(坐标)和一个随机方向(水平、垂直和对角),然后管理它是否与矩阵中的另一个单词重叠,这是正确的吗?如果是,则检查字符是否相同(尽管可能性很小)如果没有,我会把它分配到那里。问题是我减少了单词重叠的机会


我还读到,我需要首先检查具有相同字符的单词。但是如果是这样的话,我将要放在矩阵中的单词似乎总是重叠的。

我宁愿查看已经存在的单词,然后从适合它们的单词集中随机选择一个单词。 当然,您可能不会像这样填充整个矩阵。如果你把一个单词放在某个地方,它会阻塞所有其他单词(没有其他单词适合),你可能不得不回溯,但这会浪费运行时间


如果你真的想填充整个矩阵,我会迭代所有可能的起始位置,看看有多少单词适合那里,然后用最少数量的候选词递归起始位置的可能性。这将使您的程序尽早识别并离开“死胡同”,从而大大缩短运行时间。这是一种来自固定参数算法的强大技术,我喜欢称之为分支向量最小化。

我宁愿查看已经存在的单词,然后从适合它们的单词集中随机选择一个单词。 当然,您可能不会像这样填充整个矩阵。如果你把一个单词放在某个地方,它会阻塞所有其他单词(没有其他单词适合),你可能不得不回溯,但这会浪费运行时间


如果你真的想填充整个矩阵,我会迭代所有可能的起始位置,看看有多少单词适合那里,然后用最少数量的候选词递归起始位置的可能性。这将使您的程序尽早识别并离开“死胡同”,从而大大缩短运行时间。这是一种来自固定参数算法的强大技术,我喜欢称之为分支向量最小化。

从最长的单词开始。 首先,你必须找到所有适合这个词的点和方向。例如,单词“word”可能适合,当在第一个位置有NULL或W时,在第二个位置有NULL或O,在第三个位置有NULL或R,在第四个位置有NULL或D

然后您应该将它分组到没有空值、有一个空值、有两个空值的位置,依此类推

然后从具有最小空值的组中随机选择位置。如果没有可能的位置,跳过这个词


这种尝试将允许您放置更多的单词,并防止出现随机搜索无法找到正确位置的情况(当只有少量单词时)

从最长的单词开始。 首先,你必须找到所有适合这个词的点和方向。例如,单词“word”可能适合,当在第一个位置有NULL或W时,在第二个位置有NULL或O,在第三个位置有NULL或R,在第四个位置有NULL或D

然后您应该将它分组到没有空值、有一个空值、有两个空值的位置,依此类推

然后从具有最小空值的组中随机选择位置。如果没有可能的位置,跳过这个词

这种尝试将允许您放置更多的单词,并防止出现随机搜索无法找到正确位置的情况(当只有少量单词时)