在二维数组中放置一个单词

时间:2011-12-17 16:31:48

标签: java arrays algorithm

有没有办法在特定位置的二维数组中放置一个单词?例如,我想给这个词,选择垂直或水平和位置((3,3)或(3,4)或(5,6)等),这个词将放在那个位置。这是我的数组的代码......

char [][] Board = new char [16][16];


    for (int i = 1; i<Board.length; i++) {
        if (i != 1) {
            System.out.println("\t");
            System.out.print(i-1);
        }

        for (int j = 1; j <Board.length; j++) {
            if ((j == 8 && i == 8) ||(j ==9 && i == 9) ||(j == 10 && i == 10) ||(j == 2        && i == 2) )
            {
                Board[i][j] = '*';
                System.out.print(Board[i][j]);
            }
            else {
                if (i == 1) {
                    System.out.print("\t");
                    System.out.print(j-1);
                }
                else {
                   Board[i][j] = '_';
                    System.out.print("\t");
                    System.out.print(""+Board[i][j]);
}

}

(*表示单词不能放在那里)

1 个答案:

答案 0 :(得分:1)

  

有没有办法在一个特定位置的二维数组中放置一个单词?

是的,你可以实现这一点。伪代码是这样的:

public void placeWordHorizontally(char[][] board, String word, int x, int y) {
    for (int i = 0; i < word.length(); i++) {
        if (y + i >= board[x].length) {
             // fail ... edge of board
        } else if (board[x][y + i]) == '*') {
             // fail ... blocked.
        } else {
             board[x][y + i] = word.charAt(i);
        }
    }
}

并执行垂直案例,将i等等添加到x位置。

我不会向您提供确切的代码,因为如果您自己填写详细信息,您将了解更多信息。