是的,这是我以前几篇文章的重复,但是虽然回复很有用,虽然我已经看过这里有关这个特定项目的其他问题,但我完全按照自己的方式设置我该怎么做我并不刻意固执,但由于花了很多时间考虑如何实现我的特定算法,我发现很难放弃我的想法以此处提出的其他方式解决问题。只是寻找有关如何实现它的建议,因为我不是一个优秀的程序员,并且无法思考如何在我的代码中构造各种if和for语句。
所以这里。给定一个20x20的字母网格和一个给定的单词,我想在其中找到这个单词。可以存在于任何方向。
我有一个最初为1的索引。
对于我想要在网格中找到的单词,找到第一个字母的行和列位置,即单词(索引)。
增加索引。
在几个案例之间切换,在每个相邻的广场上找到第一个字母的每个位置的字母。决定这样做就好像像指南针一样绕过去。
switch directions
case 'N'
f_row = +1;
f_col = 0;
case 'NE'
f_row = -1;
f_col = +1;
case 'E'
f_row = 0;
f_col = +1;
case 'SE'
f_row = +1;
f_col = +1;
case 'S'
f_row = +1;
f_col = 0;
case 'SW'
f_row = +1;
f_col = -1;
case 'W'
f_row = 0;
f_col = -1;
case 'NW'
f_row = -1;
f_col = -1;
end
</blink>
检查网格中每个位置的这个字母是否等于word(index),现在应该是第二个字母。
如果是这样再次朝那个方向移动并比较每个字母的长度,每次增加单词索引。
如果角色不匹配,请尝试其他方向。
如果字母不存在,请尝试在网格中出现第一个单词。
我花了好几个小时试图在没有运气的情况下做到这一点,并且我不太擅长思考如何构建控制流程。有什么想法吗?
答案 0 :(得分:0)
switch directions
case 'N'
f_row = +1;
f_col = 0;
case 'NE'
f_row = +1; %
f_col = +1;
case 'E'
f_row = 0;
f_col = +1;
case 'SE'
f_row = -1; %
f_col = +1;
case 'S'
f_row = +1;
f_col = 0;
case 'SW'
f_row = -1; %
f_col = -1;
case 'W'
f_row = 0;
f_col = -1;
case 'NW'
f_row = +1; %
f_col = -1;
end
您的代码中存在一些错误,数字与指南针方向不符。更新的行标有%