0
Я пишу головоломку для поиска слов в C#, и я почти закончен, но не хватает одной вещи. У меня есть матрица char [,], которую я заполняю словами, которые я читаю из txt-файла, и, если нет доступных мест для оставшегося слова, я заполняю оставшиеся пятна случайными буквами. Моя проблема в том, что я не знаю, как делать слова, содержащие несколько букв, пересекающих друг друга. Вот мой код для размещения слова:Генератор поиска слов
private bool PlaceWord(string word, int _row, int _col, int x, int y)
{
if(x > 0)
{
if (_row + word.Length > row)
return false;
}
if(x < 0)
{
if (_row - word.Length < 0)
return false;
}
if(y > 0)
{
if (_col + word.Length > col)
return false;
}
if(y < 0)
{
if (_col - word.Length < 0)
return false;
}
for(int i = 0; i < word.Length; i++)
{
if (matrix[(i * x) + _row, (i * y) + _col] != ' ')
return false;
}
for (int i = 0; i < word.Length; i++)
{
matrix[(i * x) + _row, (i * y) + _col] = word[i];
answers[(i * x) + _row, (i * y) + _col] = word[i];
}
return true;
}
Это не похоже на работу – fviktor99
я только собираюсь на код, который вы представили, что, кажется, return 'false', если слово не подходит в запрошенном месте и направлении. Каким образом это должно работать? – Graham
Я хочу, чтобы он перекрестил слово, когда он пытается поместить новое слово. Например: 'PALE' ' # # # O '' # # V # '' # # E # ' Теперь это работает так: ' PALE' '# # # #' ' LOVE' '# # # #' Он просто помещает новое слово в доступное пустое пространство и заполняет остальные (#) случайными буквами. – fviktor99