우선, 숙제가 아닙니다;). 나는 단어 검색 게임을 처음부터 만들려고 노력 중이며 장벽에 부딪쳤다. 몇 가지 지침이 필요하다.프로그래밍 방식으로 "비어있는"세트를 찾기 위해 2 차원 어레이를 수직으로 가로 지르는 효과적인 방법은 무엇입니까?
저는 wordsearch의 그리드에 2 차원 문자 배열을 사용하고 있습니다. 나는이 배열에 단어를 가로로 배치하는 것에는 상당히 익숙하지만, 실제로이 작업을 수직으로 수행하는 방법에 대한 아이디어는 정말 고심하고 있습니다.
이
는 지금까지, 당신은 그냥 복사/붙여 넣기하고 같은를 출력import java.util.ArrayList;
import java.util.List;
public class WordGame
{
private static List<String> words = new ArrayList<String>();
private static int longestWordLength = 0;
private static int padSize = 4;
private static char[][] grid = null;
public static void main(String[] args)
{
initialiseWords();
workOutLongestWord();
setupGrid();
printIt();
}
private static void printIt()
{
for (int i = 0; i < grid.length; i++)
{
for (int j = 0; j < grid.length; j++)
{
System.out.print(grid[i][j]);
}
System.out.print("\n");
}
}
private static void setupGrid()
{
grid = new char[longestWordLength + padSize][longestWordLength + padSize];
for (int i = 0; i < grid.length; i++)
{
String w = (i >= words.size()) ? "?" : words.get(i);
for (int j = 0; j < grid.length; j++)
{
grid[i][j] = (j >= w.length()) ? '?' : w.charAt(j);
}
}
}
private static void workOutLongestWord()
{
for (String word : words)
{
if (word.length() > longestWordLength)
{
longestWordLength = word.length();
}
}
}
private static void initialiseWords()
{
words.add("monkey");
words.add("cow");
words.add("elephant");
words.add("kangaroo");
}
}
...
monkey??????
cow?????????
elephant????
kangaroo????
????????????
????????????
????????????
????????????
????????????
????????????
????????????
????????????
내가 필요 실행할 수 있어야 한 것입니다 무작위로 왼손/오른손에 패드를 씌워 라.하지만 나 스스로 할 수있다.
질문 : 위와 같이 2 차원 배열에 단어를 세로로 배치하려는 효과적인 방법은 무엇입니까? 나의 초기 생각은 필요한 단어의 길이를 아래쪽으로 세우고 ?
이외의 것이 발견되면 깨뜨리고 단어를위한 공간을 찾을 때까지이 작업을 계속한다. 그러나 일단 단어 중복을 고려하면 이것은 꽤 좋아지지 않습니다.
모든 포인터?