单词搜索项目
alphabet-soup-lambert的Python项目详细描述
字母汤
You have been contracted from a newspaper tasked with the job of providing an answer key to their word search for the Sunday print. The newspaper's word search is a traditional game consisting of a grid of characters in which a selection of words have been hidden. You are provided with the list of words that have been hidden and must find the words within the grid of characters.
要求
加载一个字符网格,其中嵌入了乱序单词和要查找的单词的单词列表。以下内容 适用条件:
- 在字符网格中,单词可以是垂直的、水平的或对角的。在
- 在字符网格中,单词可能向前或向后出现。在
- 当隐藏在字符网格中时,包含空格的单词将不包含空格。在
执行
在解决这个问题时,我首先列出了我需要的东西——一种读取和存储单词和网格的方法 给定的文件。我还需要编写能够在网格中搜索以及传递 检索到周围的位置。我决定最好使用字典,这样当打印输出到 控制台,一个for循环就可以通过它。我还创建了一个列表来存储单词,并创建了一个2D列表来存储 网格。在
Analyze是读取和解析文件的位置。Word_find是用于创建词典和 调用每个搜索函数。当运行搜索时,我想为每个搜索创建一个单独的函数 使代码更干净、更易于测试。垂直和水平是最直接的两个 函数-基于行和列。对角线搜索主要是使用打印语句进行尝试和错误查看 正在访问网格的哪些部分。在列表中使用join似乎是搜索单词最简单的方法。这个 每个对角方法中元组的位置列表使得根据位置跟踪元素的位置变得更容易 它们位于当前字符串中。在
在测试时,我将analyze创建为一个单独的函数,这样就可以在不请求 输入文件。我做了一些研究,并试图让它与一个模拟输入文件一起工作。我就是这样 我要继续工作,这样我就可以学了。作为解决方法,我创建了一个analyze can的输出文本文件 写入以在运行测试时与应答文件进行比较。测试的每个方向都有一个测试 在网格中前进和后退的单词。还有一个测试,它可以让单词在各个方向 确保所有功能协同工作。在
样本数据
以下是作为示例输入和输出数据集之一。在
输入
10x10
H A S S T A S T U I
S E Y B S P L E A T
B K R N A E J A U E
I V G D F K T S B N
G O O D E Y I S K L
W N O E L D N I I T
M M S L T R K X Q L
Q U E E N J W K S A
S A D T I V I T C A
P I R X T O V I P Q
TINT
HERDED
GOOD
LIST
LEAP
SPA
QUEEN
TEAS
GOOSE
KNIT
SEEK
TEAS
输出
^{pr2}$- 项目
标签: