Я создаю игру поиска слов, и я застрял с алгоритмом. Мне нужно найти вхождения в виде таблицы в виде структуры данных. Я решил использовать 2d-массив, для которого я знаю длину и высоту. Моя идея состоит в том, чтобы искать первую букву слова, и если она будет выглядеть во всех возможных направлениях. Я не могу понять, как начать поиск после того, как я нашел первое письмо. Я хочу передать местоположение первой буквы методам, которые будут искать во всех направлениях. Вот то, что я до сих пор:Продолжить повторение двумерного массива из определенного элемента
public void SearchWord(char[,] input, string name)
{
//1. loop through the array and look for the first letter of the string
//2. if found search in all directions "iterative"
//3. if one direction doesn't find it break out of the method and continue to search in other directions
//4. if found mark the positions so you don't find the same word more than once
char firstLetter = name[0];
//go look for it in the 2d array
for (int y = 0; y < 5; y++)
{
for (int x = 0; x < 4; x++)
{
if (results[x, y] == firstLetter)//found the letter
{
Console.WriteLine("Found it " + " " + firstLetter);
Console.WriteLine(x + " " + y);
SearchRightDirection(x, y);
SearchLeftDirection(x, y);
}
}
}
}
Я попытался пропускание местоположения в качестве параметра, как SearchRightDirection (символ [,], Int х, Int у) {} Однако я не могу продолжить с этой точной строкой местоположения и столбец массива.
У вас есть предложения? Также, если структура правильная?
Что структура представляет - своего рода словарь слово? Почему не просто 'HashSet'? –
Это двухмерная сетка, например, N * M. Если я использую HashSet, как бы я пошел искать по диагонали? –
Мой комментарий был на 'Также если структура правильная?'. Но, вероятно, я не понимаю вариант использования - так что это какой-то игровой совет, а не только словарь слов, как в моем первом вопросе? Почему бы вам не удалить это предложение, это вводит в заблуждение. –