2段代码有什么区别?

时间:2015-10-28 07:05:54

标签: java

我正在尝试制作一个tic tac toe游戏,我不知道如何更改数组

如果我这样做它不会改变我的数组但是如果我将i替换为a和j替换为b(在此处为System.out.print(matrice [a] [b] +“|”);它会从X的空白区域,我不知道为什么

package joc;
import java.util.Scanner;
public class jocxo {



    public static char[][] matrice = new char[3][3];
    public static Scanner Int = new Scanner(System.in);
    public static int a;
    public static int b;



    public static void main(String[] args){
        board();
        game();
    }

    public static void board()
    {
        for(int i = 0; i<3; i++){
            System.out.println();
            for(int j=0; j<3; j++){
                matrice[i][j] ='_';
                if ( j==0 )
                    System.out.print("|");


                System.out.print(matrice[i][j] + "|");

            }
        }               
     }
    public static void game(){

        a = Int.nextInt() - 1; 
        b = Int.nextInt() - 1; 
        if (matrice[a][b] == '_') 
        {   
            matrice[a][b] ='X';     
            board();


        }
    }

    }

2 个答案:

答案 0 :(得分:0)

您在输入后再次致电board()。 看看board()正在做什么。

matrice[i][j] = '_';

您将matrice[a][b]设为X。然后使用电路板功能打印电路板。但是,既然您正在使用它来初始化您的电路板,那么您基本上将数组重置为仅包含_

你应该创建一个像initizalize()这样的方法,你的代码可能如下所示。

public static void main(String[] args) {
    initialize();
    board();
    game();
}

public static void board() {
    for (int i = 0; i < 3; i++) {
        System.out.println();
        for (int j = 0; j < 3; j++) {
            if (j == 0)
                System.out.print("|");
            System.out.print(matrice[i][j] + "|");
        }
    }
}

private static void initialize() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            matrice[i][j] = '_';
        }
    }
}

public static void game() {
    a = Int.nextInt() - 1;
    b = Int.nextInt() - 1;
    if (matrice[a][b] == '_') {
        matrice[a][b] = 'X';
        board();
    }
}

答案 1 :(得分:0)

   public static char[][] matrice = new char[3][3];
    public static Scanner Int = new Scanner(System.in);
    public static int a;
    public static int b;



    public static void main(String[] args){
        initBoard();
        game();
        displayBoard();
    }
    public static void initBoard(){
        for(int i = 0; i<3; i++){
            System.out.println();
            for(int j=0; j<3; j++){
                matrice[i][j] ='_';
                if ( j==0 )
                    System.out.print("|");


                System.out.print(matrice[i][j] + "|");

            }
        }


        }// board close
    public static void displayBoard(){
        for(int i = 0; i<3; i++){
            System.out.println();
            for(int j=0; j<3; j++){                 
                if ( j==0 )
                    System.out.print("|");
                System.out.print(matrice[i][j] + "|");

            }
        }


        }// board close
    public static void game(){

        a = Int.nextInt() - 1; 
        b = Int.nextInt() - 1;
        System.out.println(matrice[a][b] == '_');
        if (matrice[a][b] == '_') 
        {   matrice[a][b] ='X';
        }
    }// game close.