2维array(组数)的问题

Beetle_miao 2010-04-14 05:45:04
想做一个tic tac toe(三子棋)的模拟软件
需要一个3X3的棋盘,这个我需要用2维array模拟,一开始整个棋盘都用空白填充,然后让计算机往里面填x或者o,我想问一下怎样用if使得计算机往里面填的时候可以识别到若这个地方已经被填过(o或者x),会重新随机寻找下一个地方直到空白为止?
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hardycheng 2010-04-14
  • 打赏
  • 举报
回复

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
}
}
}

yshen_dublin 2010-04-14
  • 打赏
  • 举报
回复
Sorry,没注意是Java社区的,Java里面没有#define关键字
mengpeiliang说的对,在Java里面用public static final int TYPE_NULL = 0 来定义常量就可以了。

我不明白你为什么要用if来实现呢?就是一个数组遍历的过程,值非TYPE_NULL的数组元素都可以放棋子阿。
YuSuiYing_2010 2010-04-14
  • 打赏
  • 举报
回复
嗯……刚开始学习,貌似有点难啊~
小孟阿良 2010-04-14
  • 打赏
  • 举报
回复
把数组类型定义为 int,用public static final int TYPE_NULL = 0 来定义常量。其实就是定义一个常量,
不定义常量也行,在注释上说明一下就行了。例如:
int[][] array = new int[3][3]; //0 代表什么都没放 ,1代表放的是x,2代表放的是o
Beetle_miao 2010-04-14
  • 打赏
  • 举报
回复
啊。。刚开始学java,貌似书上后边的索引都没有define,楼上的高手没有办法用if做出来吗?
yshen_dublin 2010-04-14
  • 打赏
  • 举报
回复
比如你可以定义3个常量来代表每个棋盘格子的状态
#define TYPE_NULL 0
#define TYPE_O 1
#define TYPE_X 2
比如array[0][0] = TYPE_O; //第一个单元格填放了"O"
然后你写个函数每次来遍历一遍2维数组寻找值为TYPE_NULL的就可以了。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧