我正在进行一项任务,我应该接受用户输入并从中创建一个单词搜索。到目前为止,我要求用户提供他们想要的行数和列数,然后用随机字符填充该2D数组。下一部分是提示用户将单词添加到wordsearch中。我无法弄清楚我会怎么做。
这是我到目前为止的代码:
public void build()
{
System.out.println("How many rows would you like? >");
int row = input.nextInt();
System.out.println("How many columns would you like? >");
int col = input.nextInt();
char[][] wordsearch = new char[row][col];
int max = 122;
int min = 97;
for(int r = 0; r < row; r++)
{
for (int c = 0; c < col; c++)
{
int random_int = min + (int)(Math.random() * ((max - min) + 1));
assert random_int <= 122;
assert random_int >= 97;
wordsearch[r][c] = (char)random_int;
System.out.print(wordsearch[r][c] + " ");
}
System.out.print("\n");
}
}
编辑:我需要存储这些输入的单词并将它们生成到单词搜索中。
答案 0 :(得分:0)
编码以下或类似的算法:
1。)确定用户输入的单词的长度
2。)从单词长度中,您可以确定表格中的哪些点是单词的可能(有效)起点。
3.)随机确定一个有效的起点。
4.确定单词在网格中继续的方向
5.。)检查已插入单词的冲突(第一个单词可以跳过此步骤。具体检查是否需要更改任何FIXED(见下文)字符
6。)修复属于刚刚插入的单词的插入字符。 (例如,保存第二个网格,只有固定字符,否则为0)
7。)循环并定义退出条件。