java - 2段代码有什么区别?

标签 java

我正在尝试制作井字游戏,但我不知道如何更改数组

如果我这样做,它不会改变我的数组,但如果我将 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();


        }
    }

    }

最佳答案

您在收到输入后再次调用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();
    }
}

关于java - 2段代码有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33384891/

相关文章:

java - Android:指定圆形显示动画起始位置?

java - 如何使用 JUnit 5 模拟 Spring 依赖关系?

java - 声明为父接口(interface)并初始化为子实例

java - 如何从文件中获取前 4 个整数。

java - 我需要帮助,我的 java 程序在编译时没有返回任何内容

java - 如何在 Parse 中创建新用户而不更改当前用户?

java - Mono.when 在发布者完成之前触发

java - 如何解密 Jenkins 8mha 值

java - 如何从 chrome 驱动程序性能日志计算一个请求的总时间?

java - 是否可以使用 java FileReader 或 java 的替代方案从 pdf 中读取文本?