Java 两段代码之间的区别是什么?
我正在尝试做一个井字游戏,但我不知道如何更改数组 如果我这样做,它不会改变我的数组,但是如果我把I替换成a,把j替换成b(在这里是System.out.print(matrice[a][b]+“|”);它会从一个空格变成一个X,我不知道为什么Java 两段代码之间的区别是什么?,java,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 s
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();
}
}
}
package-joc;
导入java.util.Scanner;
公开课{
公共静态字符[][]矩阵=新字符[3][3];
公共静态扫描仪Int=新扫描仪(System.in);
公共静态INTA;
公共静态int b;
公共静态void main(字符串[]args){
董事会();
游戏();
}
公共静态无效委员会()
{
对于(int i=0;i您在获得输入后再次调用board()
。
查看board()
正在做什么
matrice[i][j] = '_';
您正在将matrice[a][b]
设置为X
。之后,您可以使用board功能打印电路板。但由于您也使用它来初始化电路板,因此您基本上是在重置阵列,使其仅包含。
您应该创建一个类似于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();
}
}
publicstaticvoidmain(字符串[]args){
初始化();
董事会();
游戏();
}
公共静态无效委员会(){
对于(int i=0;i<3;i++){
System.out.println();
对于(int j=0;j<3;j++){
如果(j==0)
系统输出打印(“|”);
系统输出打印(矩阵[i][j]+“|”);
}
}
}
私有静态void initialize(){
对于(int i=0;i<3;i++){
对于(int j=0;j<3;j++){
矩阵[i][j]='';
}
}
}
公共静态无效游戏(){
a=Int.nextInt()-1;
b=Int.nextInt()-1;
if(矩阵[a][b]=''.'){
矩阵[a][b]='X';
董事会();
}
}
收到输入后,您再次调用board()
。
查看board()
正在做什么
matrice[i][j] = '_';
您正在将matrice[a][b]
设置为X
。之后,您可以使用board功能打印电路板。但由于您也使用它来初始化电路板,因此您基本上是在重置阵列,使其仅包含。
您应该创建一个类似于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();
}
}
publicstaticvoidmain(字符串[]args){
初始化();
董事会();
游戏();
}
公共静态无效委员会(){
对于(int i=0;i<3;i++){
System.out.println();
对于(int j=0;j<3;j++){
如果(j==0)
系统输出打印(“|”);
系统输出打印(矩阵[i][j]+“|”);
}
}
}
私有静态void initialize(){
对于(int i=0;i<3;i++){
对于(int j=0;j<3;j++){
矩阵[i][j]='';
}
}
}
公共静态无效游戏(){
a=Int.nextInt()-1;
b=Int.nextInt()-1;
if(矩阵[a][b]=''.'){
矩阵[a][b]='X';
董事会();
}
}
公共静态字符[][]矩阵=新字符[3][3];
公共静态扫描仪Int=新扫描仪(System.in);
公共静态INTA;
公共静态int b;
公共静态void main(字符串[]args){
initBoard();
游戏();
显示板();
}
公共静态无效initBoard(){
对于(inti=0;ipublicstaticchar[]matrice=newchar[3][3];
公共静态扫描仪Int=新扫描仪(System.in);
公共静态INTA;
公共静态int b;
公共静态void main(字符串[]args){
initBoard();
游戏();
显示板();
}
公共静态无效initBoard(){
对于(int i=0;i您再次调用初始化数组的板…更改了代码并发布了它您再次调用初始化数组的板…更改了代码并发布了它