Есть двумерный массив чаров. Мне надо найти в этом массиве определенные получившиеся "слова" в процессе. С условием, что слова могут идти только в некоторых направлениях: слева направо, сверху вниз, по диагонали вниз направо и по диагонали вверх направо. В другие стороны получившиеся слова не надо учитывать. С каждым добавлением символа в массив, мне надо узнать, получилось ли слово? Если да, то в определенной последовательности записать координаты ячеек в массив
Как реализовать данный алгоритм? Если что я это делаю для своей игры (а то будут говорить еще что для школы задачки не решаем)
У меня есть одна идея, но боюсь есть лучше, да и реализация в коде не ясна, поэтому и пишу сюда. При добавлении символа, мы знаем координату добавления. Поэтому мы можем пройтись по 4-м осям и все их "просканировать" на образования слов
Ну вот вам псевдокод, описывающий алгоритм:
for (int row = 0; row < rows; row++)
{
for (int column = 0; column < columns; column++)
{
// Идем вправо
строка = поле[row, column];
int d = 1;
while (column + d < columns)
{
строка = строка + поле[row, column + d];
ПоискСтрокиВСловаре(строка);
d++;
}
// Идем вниз
// Аналогичный код, граничное условие (row + d < rows)
// Идем по диагонали вниз
// Аналогичный код, граничное условие (column + d < columns && row + d < rows)
// Идем по диагонали вверх
// Аналогичный код, граничное условие (column + d < columns && row - d >= 0)
}
}
Дальнейшие оптимизации:
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу использовать RNGCryptoServiceProvider Class для генерации случайной соли, но дело в томчто мне нужны не только числа, но и символы
Допустим, у нас есть строка в UTF-8Она должна занимать в памяти ровно 38 байт
Есть список объектов со следующей структурой(что-то вроде оповещений):