我为这样的文件制作了一个解析器:
intrepideg
xtdcvmhgze
yrwhoejkpn
minusculet
isnqdhivpi
ntznyafhel
ceamgnqgug
erpoxtavrf
gwaupsgwsd
kyqtendrme
这个想法是从用户那里接收一个字符串,然后在水平、垂直和对角线上搜索它。我在对角线的方式上苦苦挣扎,因为我寻找使迭代次数更少的最佳方式。我应该从双数组的每个角落开始做 4 次通道,找到双数组的中间,然后从开始到开始做 2 次通道吗?什么是最好的算法?
这是我的程序的核心功能:
t_inco search_all(t_inco inco)
{
int i;
int f;
int j;
i = 0;
f = 0;
j = 0;
while (inco.map[i])
{
while(inco.map[i][f])
{
if (inco.map[i][f] == inco.wd[0])
{
if(find_cases_h(inco, i, f))
{
inco = get_cases(inco, i, f, 1);
return(inco);
}
else if(find_cases_v(inco, i, f))
{
inco = get_cases(inco, i, f, 2);
return(inco);
}
else if(find_cases_d(inco, i, f))
{
inco = get_cases(inco, i, f, 3);
return(inco);
}
}
f++;
}
i++;
f = 0;
}
return(inco);
}