Какой самый простой способ сделать эту функцию в C #? - PullRequest
1 голос
/ 26 мая 2010

допустим, у нас есть массив [5,5]

01,02,03,04,05
06,07,08,09,10
11,12,13,14,15
16,17,18,19,20
21,22,23,24,25

пользователь должен отправить 2 значения в функцию (start, searchFOR), например (13,25) функция должна искать это значение следующим образом

07,08,09
12,  ,14
17,18,19

если значение не найдено на этом уровне, оно поднимается на уровень выше

01,02,03,04,05
06,  ,  ,  ,10
11,  ,  ,  ,15
16,  ,  ,  ,20
21,22,23,24,25

если массив больше этого значения и значение не найдено, он перейдет на уровень выше

Спасибо за вашу помощь

<<<< РЕДАКТИРОВАТЬ >>>> ЗА 25

  ,  ,  ,  ,  
  , ,  ,  ,  
  ,  ,  ,  ,  
  ,  ,  ,19,20  
  ,  ,  ,24,  

  ,  ,  ,  ,  
  ,  ,  ,  ,  
  ,  ,13,14,15
  ,  ,18,  ,  
  ,  ,23,  ,  

  ,  ,  ,  ,  
  ,07,08,09,10
  ,12,  ,  ,  
  ,17,  ,  ,  
  ,22,  ,  ,  

01,02,03,04,05
06,  ,  ,  ,  
11,  ,  ,  ,  
16,  ,  ,  ,  
21,  ,  ,  ,  

Ответы [ 2 ]

2 голосов
/ 26 мая 2010

Предполагая, что это домашнее задание ...

Вы заметите, что в массиве 5X5 вы должны добавить / вычесть 5, чтобы двигаться вертикально, и добавить / вычесть 1, чтобы двигаться горизонтально.

Это работает независимо от вашей начальной позиции в массиве.

Теперь вам просто нужно выяснить, как узнать, когда вы находитесь на грани.


Вам понадобится четыре for петли, чтобы обойти каждый квадрат, вложенный во внешнюю петлю. Внешний цикл будет работать каждый из квадратов. Вы должны быть в состоянии использовать число, сгенерированное внешним циклом, чтобы помочь вам с вашими вычислениями во внутренних циклах.

0 голосов
/ 26 мая 2010

В вашем сценарии вы могли бы немного изменить реализацию и начать с чего-то немного другого.

int[] lvl1 = [1, 2, 3, 4, 5, 10, 15, 20, 25, 24, 23, 22, 21, 16, 11, 06]<br/>
int[] lvl2 = [7, 8, 9, 14, 19, 18, 17, 12, 7]<br/>
int[] lvl3 = [13]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...