我正在尝试编写一个程序,该程序将在单词搜索中找到的单词加以大写,但是将我的拼图文件与列表文件进行比较时,我确实非常困难
下面是“ List1.txt”
dog
call
ball
small
fall
paw
saw
draw
log
joy
red
who
ink
led
rim
door
下面是“ Puzzle1.txt”
f v c b s j v m e y
a j a k s d u y t l
l m l d y e o w k i
l p l x r j h k n b
b a l l i a w o i z
s s a w m x w p a w
o m j d r k o l x d
z k a e a h d j o y
w q v l q q e o p g
m d c z l q r h g h
...最后,下面是我到目前为止所拥有的,但是我还是很困惑
在第一个for循环中,第一个用于拼图,我无法让它正确地将列表输入2d数组中,它总是只会用看到的最后一个字符填充数组。
第二,在求解器部分所在的第三组循环中,我对如何正确地在各个方向上比较单词一无所知。我的第一个念头是将List1.txt单词的第一个字符与谜题进行比较,直到找到一个匹配项,然后在每个方向上等价于List1单词的长度,看是否匹配。
在意识到我搞砸了多少不同的事情之后,我决定只使用另一种方法重新启动求解器,这是我尝试在下面开始构建的方法。我试图一次遍历2d数组一个长度,该长度是List1单词的长度,然后查看它是向前还是向后匹配。如果不是这样,我只会翻一排并抓住这3或4个字符,几乎丢掉了第一个字母,然后在我要比较的内容的末尾添加了另一个。
那使我想到了媒介!我记得曾经学习过矢量,并且有点尝试使用它们,但是我再次陷入困境,困惑和不知所措。我在这里找到了几篇文章,对我有一点帮助,但还不够。
在这一点上,我真的不在乎使用什么方法,只要我希望可以学到一些新东西:D希望我提供了足够的信息。
#include<conio.h>
#include<iostream>
#include<istream>
#include<string>
#include<fstream>
using namespace std;
void main() {
ifstream in;
ofstream out;
string throwawaystr="", word[16];
int counter = 0, counter2 = 0, rows = 10, columns = 10, buffer = 0;
char charVar, arr[10][10];
//-//-//-//-( \/PUZZLE\/ )-//-//-//-//
in.open("Puzzle1.txt");
while (!in.eof()) { //input 2d array
in >> charVar;
for (int y = 0; y < columns; y++) {
for (int x = 0; x < rows; x++) {
arr[x][y] = charVar;
}
}
}
in.close();
cout << "Puzzle:" << endl;
for (int y = 0; y < columns; y++) {
for (int x = 0; x < rows; x++) {
cout << arr[x][y];
}
cout << endl;
}
cout << endl;
//-//-//-//-( \/LIST\/ )-//-//-//-//
in.open("List1.txt");
while(!in.eof()){
in >> word[counter2];
counter2++;
}
in.close();
cout << "List:" << endl;
for (int x = 0; x < counter2; x++) {
cout << word[x] << endl;
}
cout << endl;
//-//-//-//-( \/SOLVER\/ )-//-//-//-//
for (int z = 0; z < word[z].length(); z++) {
for (int y = 0; y < columns; y++) {
for (int x = 0; x < rows; x++) {
while (throwawaystr.length() >= word[z].length() && buffer > (columns - word[z].length())) {
throwawaystr += arr[x][(y+buffer+word[z].length())];
}
}
}
}
system("pause");
}