Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中创建任意大小的Tic-Tac趾板?_Java_Tic Tac Toe - Fatal编程技术网

如何在Java中创建任意大小的Tic-Tac趾板?

如何在Java中创建任意大小的Tic-Tac趾板?,java,tic-tac-toe,Java,Tic Tac Toe,对于我的任务,我必须创建一个Tic-Tac-Toe游戏,其中棋盘大小不同。。。我知道如何创建一个3X3的板,但我不知道从哪里开始。我的指导老师希望我们在课堂上使用 public TicTacToe(int edgesize) { } 所以,当我创建我的任意大小的板时,我应该从这个开始吗 public TicTacToe(int edgesize){ int [][] board = new int[edgesize] [edgesize] } 如果你这样做 public TicTacTo

对于我的任务,我必须创建一个Tic-Tac-Toe游戏,其中棋盘大小不同。。。我知道如何创建一个3X3的板,但我不知道从哪里开始。我的指导老师希望我们在课堂上使用

public TicTacToe(int edgesize) {
}
所以,当我创建我的任意大小的板时,我应该从这个开始吗

public TicTacToe(int edgesize){
  int [][] board = new int[edgesize] [edgesize]
}
如果你这样做

public TicTacToe(int edgesize){
   int [][] board = new int[edgesize] [edgesize]
}
board
变量将是构造函数本身的局部变量。这意味着它在构造函数之外不可用

board
设置为实例级变量,并使用构造函数为其实例化数组,以便
TicTacToe
类中的所有实例方法都可以使用它:

public class TicTacToe {
    private int[][] board;

    public TicTacTo(int size) {
        this.board = new int[size][size];
        //initialize the board
    }

    //write methods to do stuffs with the board

您的board声明应该在构造函数之外,也就是说,它应该是一个实例变量,它应该是类的属性,这样您就可以使用getter/setter轻松地访问/操作它。您当前将其声明为局部变量,这是一种错误的方法

public class TicTacToe
{
   int[][] board;

   public TicTacToe(int edgesize)
   {
     this.board = new int[edgesize][edgesize];
   }

   //Getter and setter for your "board".

   public int[][] getBoard()
   { return board; }
   public void setBoard(int[][] board)
   { this.board = board; }

   //Some other methods for iterating your "board" maybe, etc.
}

int[]board=newint[edgesize][edgesize]
您能编写一个标准的3x3 board类吗?有时,从特定的案例开始,然后返回并概括它是有帮助的。阅读变量范围和类成员。在您有要求之前,我不会添加setBoard()方法。此外,即使您可以从board.length获得它,我也会将edgesize存储在一个实例变量中。因为您稍后将需要它来执行循环、检查赢家等操作。@user949300您肯定是对的,我只是试图向OP展示全局范围在这种情况下的重要性。我不会称它为全局变量。@BheshGurung它是一个全局变量,但我想您的意思是“实例变量”更好。谢谢,请看我的编辑。