我正在分析一个类似拼字游戏的文字游戏,以找出放置在板上的一块字母是否会使无法放置更多字母,即“锁定”游戏。让我尝试通过 2x2 块的示例来解释:
我已经建立了一个有效的 2x2 块列表(大约 5000 个块)。该列表如下所示:
matrix_2x2
AA,AA
AA,AB
AA,AD
AA,AE
etc...
在板上“AA,AE”看起来像这样(真正的板是 15x15):
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][A][A][ ][ ][ ]
[ ][ ][ ][A][E][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
我也有有效单词的完整列表。看起来像这样
dic_word
AA
AAH
AAHED
AAHING
AAHS
AAL
etc...
我在 MySQL 中有两个列表。
我知道我可以在代码中通过迭代矩阵列表中的每个条目并进行 SELECT 查询来做到这一点。每个矩阵行都是这样的:
SELECT COUNT(word) > 0 FROM dic_word d WHERE (INSTR(word, "AA") OR INSTR(word, "AE") OR INSTR(word, "AA") OR INSTR(word, "AE")) AND (word <> "AA" AND word <> "AB" AND word <> "AA" AND word <> "AB")
我只是想知道这是否可以在 MySQL 中完全完成。
更新
上面的 sql 查询确实有效,也不能很好地解释我所追求的。让我试着澄清一下我所追求的:
让我们假设QX
and都是英文的合法词,那么 QX,QX 将是我的矩阵列表中的一个条目QQ
。XX
既然不是QX
任何英文单词QQ
的XX
子串,那么放置在棋盘上的 QX,QX 将“锁定”游戏(即无法放置额外的字母)。
我关注这些锁定矩阵,并从查看所有有效的 2x2 矩阵开始。正如我们所说,我正在构建所有有效 3x3 块的列表 - 到目前为止已发现超过 200.000 个。
作为旁注 - 我真的怀疑存在这样的锁定矩阵,但这就是我正在检查的内容。