【发布时间】:2012-11-23 04:12:51
【问题描述】:
我正在分析一个类似拼字游戏的文字游戏,以找出放置在棋盘上的一个字母块是否会导致无法放置更多字母,即“锁定”游戏。让我尝试以 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 和QQ 和XX 都是英文的合法词,那么 QX,QX 将是我矩阵列表中的一个条目。
由于QX 或QQ 或XX 是任何英文单词的子字符串,因此放置在棋盘上的QX、QX 将“锁定”游戏(即无法放置额外的字母)。
我关注这些锁定矩阵,并从查看所有有效的 2x2 矩阵开始。正如我们所说,我正在构建所有有效 3x3 块的列表 - 到目前为止已发现超过 200.000 个。
附带说明 - 我真的怀疑这种锁矩阵是否存在,但这就是我要检查的内容。
【问题讨论】:
-
也许可以在 MySql 中做一些事情,但是鉴于您的示例数据,尚不清楚您所追求的结果...您能提供一些示例吗?
-
@fthiella 请检查我上面的更新,希望它能更好地解释我所追求的
-
哦。在看到您的编辑之前,我发布了我的答案。现在我不确定您是否只是想测试是否可以为给定的“矩阵”找到字符串,或者正在寻找所有(在?)有效的“矩阵”。无论如何,我怀疑我提出的结构可以为有效构建此类矩阵奠定良好的基础。
-
@eggyal 感谢您的努力看起来很有趣 - 请参阅我的“答案”,它应该可以更好地解释问题。
标签: mysql loops select substring