【发布时间】:2021-03-21 08:42:36
【问题描述】:
所以我正在制作一个应该生成随机填字游戏的程序。我有一个方法读取一个包含大约 3000 个单词的列表的 txt 文件,将其存储到数组列表中并返回数组列表。我有一个驱动程序方法,它询问用户他们想要填字游戏的行数和列数,并且应该从那里生成一个随机谜题。我正在使用二维数组来构建整个拼图,但我不知道如何在拼图中添加单词。 到目前为止,这就是我应该填写填字游戏的方法 (randomNumber 方法只是一个返回随机索引的方法,用于从列表中访问一个随机词)
public static void buildCrossword(ArrayList<String> words, int rows, int columns)
{
String[][] board = new String[rows][columns];
//Picks a random number from the arrayList using a random index from the randomNumber method
int randomNumber = randomNumber();
String randomWord = words.get(randomNumber);
//we remove it right after it is selected to ensure that it doesn't get used again in the puzzle
words.remove(randomNumber);
char[] temp = randomWord.toCharArray();
char[][] word = new char[temp.length][temp.length];
word[0] = temp;
System.out.println("*----".repeat(rows) + "*");
for(int i = 0; i < columns; i++)
{
System.out.println("| ".repeat(rows) + "|");
System.out.println(word[0][i]);
System.out.println("*----" .repeat(rows) + "*");
}
}
您知道自己的填字游戏也有未使用的方块,我需要使用“*”来表示未使用的方块。任何帮助都将不胜感激。
【问题讨论】:
标签: java algorithm arraylist multidimensional-array