произвольно размещать строки из списка в 2D массив символ за символом - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь случайным образом поместить каждое из слов из списка 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;
                }
...