如何在构造函数中创建可修改为设置数量的数组



我已经在一款井字游戏上工作了很长一段时间,我已经运行得很好了,但是我想把它带到下一个层次,那就是我想让它成为一个可修改的板,根据用户输入设置的大小。

下面是我现在的一小段代码:

            import java.util.*;
            public class board {
//************** INSTANCE VARIABLES ****************
private String[][] space = new String[3][3];
private String player1 = "";
private String player2 = "";
private int turnNum = 0;
private int playerCount = 0;
private boolean newGame = true;
private Scanner input = new Scanner(System.in);
//************** CONSTRUCTOR ****************
/**
 * Constructs a board with 9 spaces all set to the default value of space
 */
public board(){
    for (int i = 0; i<=2; i++){
        for (int j = 0; j<=2; j++){
            this.setSpace(i, j, " ");
        }
    }
}

board的构造函数是我想要修改的,我试图让它在构造函数

的参数中创建一个board到一个set变量

谢谢!

注:我被告知它与链表有关,但我不知道如何使用和实现它们:/

不要在声明中定义字符串2D数组'space'的大小。从用户处获取大小后再分配大小

可以在构造函数中调用createBoard函数。让我们试试。

private String[][] space;
private String player1 = "";
private String player2 = "";
private int turnNum = 0;
private int playerCount = 0;
private boolean newGame = true;
private Scanner input = new Scanner(System.in);  
public void createBoard(){
    //get board width
    System.out.print("Enter board width:");
    int width = input.nextInt();
    //get board height 
    System.out.print("Enter board height:");
    int height = input.nextInt();
    //allocate space
    space = new String[height][width];
    board(width, height);
}
public void board(int width, int height){
    for (int i = 0; i< height; i++){
        for (int j = 0; j< width; j++){
            this.setSpace(i, j, " ");
        }
    }
}

你可以这样做:

public board(int width, int height){
    for (int i = 0; i<=width; i++){
        for (int j = 0; j<=height; j++){
            this.setSpace(i, j, " ");
        }
    }
}

但是一定要设置一些默认值。

您已声明

private String[][] space = new String[3][3];

你将不得不替换[3][3],因为在编译时你不知道你想要的大小是多少。你可以使用数据结构代替二维数组。

您可以选择多种方法来执行此操作。一种方法是有一个字符串的ArrayList(你必须导入这个包),并使用ArrayList api来动态地添加一定大小的字符串。例如,你将一个长度为"length"的字符串添加n次,其中n是"width"。如果你喜欢,你也可以有一个空格链表。

希望这对你有帮助!

相关内容

  • 没有找到相关文章

最新更新