我正在尝试制作一个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();
}
}
}
答案 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.