构建控制流 - 在网格中搜索单词

时间:2013-12-16 20:35:47

标签: matlab for-loop octave control-flow

是的,这是我以前几篇文章的重复,但是虽然回复很有用,虽然我已经看过这里有关这个特定项目的其他问题,但我完全按照自己的方式设置我该怎么做我并不刻意固执,但由于花了很多时间考虑如何实现我的特定算法,我发现很难放弃我的想法以此处提出的其他方式解决问题。只是寻找有关如何实现它的建议,因为我不是一个优秀的程序员,并且无法思考如何在我的代码中构造各种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),现在应该是第二个字母。

如果是这样再次朝那个方向移动并比较每个字母的长度,每次增加单词索引。

如果角色不匹配,请尝试其他方向。

如果字母不存在,请尝试在网格中出现第一个单词。


我花了好几个小时试图在没有运气的情况下做到这一点,并且我不太擅长思考如何构建控制流程。有什么想法吗?

1 个答案:

答案 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

您的代码中存在一些错误,数字与指南针方向不符。更新的行标有%