Я пытаюсь случайным образом поместить каждое из слов из списка PuzzleWords или userSpecifiedWords в 2D-массив головоломки. Слова могут быть расположены вверх-вниз по вертикали, вниз по вертикали, слева направо по горизонтали и справа налево по горизонтали. По сути дела, поиск слова. Но не могу понять, как разместить следующий символ в правильном положении, чтобы он удовлетворял этим требованиям.
Я попытался сначала сгенерировать случайную позицию в массиве 2d, затем поместить первый символ первого слова в эту позицию, но бороться с размещением следующего символа, а затем перейти к следующему слову.
//Initialising the 2d array and list of words.
public class WordSearchPuzzle {
private char [][] puzzle;
private List<String> puzzleWords;
//What I have so far to take the word out of the array, generate a random pos in 2d array then check if the pos is empty, if empty place the first char of word in that pos else generate new pos.
for (int i = 0; i < puzzleWords.size(); i++) {
for (int r = 0; r < puzzle.length; r++) {
for (int c = 0; c < puzzle[r].length; c++) {
String s = puzzleWords.get(i);
int wordLength = s.length();
char firstChar = s.charAt(0);
while(puzzle[rowGenerate][colGenerate] != ' ') {
puzzle[rowGenerate][colGenerate] = puzzle[(int) Math.random() * gridSize + 1][(int) Math.random() * gridSize + 1];
}
puzzle[rowGenerate][colGenerate] = firstChar;
}