まずは宿題ではありません;)私は最初から単語検索のゲームを作成しようとしているし、障壁を打つ私はいくつかのガイダンスが必要です。"空"のセットをプログラム的に見つけるために、2次元配列を縦方向に走査する効果的な方法は何ですか?
私は、wordsearchのグリッドにcharの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次元配列に垂直に配置しようとすると効果的な方法は何ですか?私の最初の考えは、必要な単語の長さを下に数えて、?
以外のものが見つかった場合はそれを破り、単語のスペースが見つかるまでこれを続けます。しかし、単語の重複を考慮すると、これはかなり得られません。
任意のポインタ?