2013-12-16 3 views
0

Да, это очень много дубликатов из моих предыдущих сообщений, но в то время как ответы были полезны, и хотя я рассмотрел другие вопросы, заданные здесь относительно этого конкретного проект, я вполне уверен, как бы это сделать. Я не намеренно упрям, но, поскольку я много времени размышлял о том, как реализовать свой конкретный алгоритм, мне трудно отказаться от своих идей, чтобы решить эту проблему другими способами, предложенными здесь. Просто ищите советы о том, как его реализовать, потому что я не отличный программист и не могу представить, как структурировать различные операторы 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> 

Проверьте это письмо в каждом из этих мест в сетке равно слово (индекс), который в настоящее время должен быть вторым письмом.

Если это так перемещается в этом направлении и сравнивает каждую букву с длиной слова, каждый раз увеличивая индекс слова.

Если персонаж не соответствует, попробуйте другие указания.

Если письмо отсутствует, попробуйте следующее вхождение первого слова в сетку.


Я провел часы и часы, пытаясь получить это прямо сейчас с немного удачи, и я не очень хорошо думать, как структурировать поток управления. Есть предположения?

ответ

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 

В коде есть некоторые ошибки, цифры не соответствуют направлению компаса. Обновленные строки помечены знаком %

+0

О, да, конечно. Приветствия. Просто быстро написал это без проверки. Будет ли коммутатор включен в цикл for? Я не уверен. – user3058703

Смежные вопросы