【发布时间】:2020-04-30 23:34:49
【问题描述】:
我一直在研究此代码几个小时,但无法弄清楚这部分。该程序应该是一个井字游戏,我在二维数组中的某个地方出错了,因为我不断收到这个错误。我还可以使用帮助来了解如何让随机生成器找到特定的行和列。
到目前为止,这是我的代码:
import java.util.Scanner;
import java.util.Random;
public class TicTacToe {
public static void main(String[] args) {
Scanner r = new Scanner(System.in);
int rows = 3;
int col = 3;
int[][] grid = new int[rows][col];
fillGrid(grid);
computerTurn(grid);
}//end main
public static void fillGrid(int[][] grids) {
//int [][] grids = new int [3][3];
for (int r = 0; grids.length < 3; r++) {
for (int c = 0; grids[r].length < 3; c++) {
grids[r][c] = 0;
}
}
printGrid(grids);
}
public static void printGrid(int[][] x) {
for (int i = 0; i < x.length; i++) {
for (int y = 0; y < x[0].length; y++) {
System.out.print(x[i][y] + "\t");
}
System.out.println();
}
}
public static void computerTurn(int[][] mygrid) {
Random random = new Random();
int rows = 3;
int col = 3;
//int [][] grid = new int [rows][col];
//mygrid [rows][col] = random.nextInt(4);
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 3; c++) {
//mygrid [rows][col] = random.nextInt(2);
if (mygrid[r][c] == 0) {
//mygrid [r][c] = random.nextInt(3);
mygrid[rows][col] = 1;
}
/*if (mygrid [r][c] != 0) {
//mygrid [rows][col] = random.nextInt(3);
mygrid [r][c] = 1;
}*/
}
}
printGrid(mygrid);
}
}
【问题讨论】:
-
fillGrid()不是必需的 -int表元素默认初始化为0。 -
分解
computerTurn中需要完成的工作。 1. 生成随机行列索引(范围为 [0,2]!) 2. 检查单元格是否为空 3. 重复该过程,直到找到一个空单元格。 -
for (int r = 0; r < grids.length; r++) {和for(int c = 0; c < grids[r].length; c++) {。
标签: java multidimensional-array tic-tac-toe