想做一个tic tac toe(三子棋)的模拟软件
需要一个3X3的棋盘,这个我需要用2维array模拟,一开始整个棋盘都用空白填充,然后让计算机往里面填x或者o,我想问一下怎样用if使得计算机往里面填的时候可以识别到若这个地方已经被填过(o或者x),会重新随机寻找下一个地方直到空白为止?
需要一个3X3的棋盘,这个我需要用2维array模拟,一开始整个棋盘都用空白填充,然后让计算机往里面填x或者o,我想问一下怎样用if使得计算机往里面填的时候可以识别到若这个地方已经被填过(o或者x),会重新随机寻找下一个地方直到空白为止?
#define TYPE_NULL 0
#define TYPE_O 1
#define TYPE_X 2
比如array[0][0] = TYPE_O; //第一个单元格填放了"O"
然后你写个函数每次来遍历一遍2维数组寻找值为TYPE_NULL的就可以了。
不定义常量也行,在注释上说明一下就行了。例如:
int[][] array = new int[3][3]; //0 代表什么都没放 ,1代表放的是x,2代表放的是o
mengpeiliang说的对,在Java里面用public static final int TYPE_NULL = 0 来定义常量就可以了。我不明白你为什么要用if来实现呢?就是一个数组遍历的过程,值非TYPE_NULL的数组元素都可以放棋子阿。
for(int i= 0 ; i < 3; i++){ for(int j = 0; j < 3; j ++){
if(!("x".equals(arr[i][j]) || "o".equals(arr[i][j]))){
arr[i][j] = "";//随即分配一个 x 或 o
}
}
}