数组概念:存储相同类型值的序列
格式: 1.数据类型[] 数组名 = new 数据类型[长度];
创建了一个数组,数组中的数据都是默认值
//数字类型默认为0 布尔类型默认为false 字符串类型默认为null
2.数据类型[] 数组名 = {1,2,3}
//创建了一个数组且初始化了数组中的所有数据
二维数组:矩阵
格式: 数据类型[][] 数组名 = new 数据类型[数组中存储的一维数组个数][每个一维数组存储 的元素个数];
数据类型 [] 数组名 = new 数据类型[长度];
数组所需要存储的数据类型 []
数据类型 [] [] 这个数组存储的数据类型 是 一维数组
//即将两个中括号分开理解
另外将数据存入数组后还可以将其取出,例如
package zxc0711;
public class Test {
int[] t = new int[3];
public void cun(){
t[1] = 2;
int n=t[1];//n=2
}
}
二维数组与此类似
public class Test {
int[][] t = new int[3][2];
public void cun(){
t[1][1] = 2;
int n=t[1][1];//n=2
}
}
数组可应用与五子棋游戏开发中棋子重绘中,思路如下 :
行列值当作下标
棋盘上只有三种状态 没有棋子 黑棋 白棋 //分别令其值为0,1,2
步骤1: 在监听器的方法外创建一个二维数组
int[][] chessArr = new int[16][16];
在每次验证完成之后 根据行列值 将1/2 存入 数组中
在存储之前 先看看数组中这个位置上是否下过棋
if(chessArr[row][col]!=0){return;}
步骤2: 重绘棋子
放在鼠标进入窗体中的方法中 就把所有的棋子绘制一遍
// 绘制棋子
for(int i = 0; i < chessArr.length; i++){
for(int j = 0; j < chessArr[i].length; j++){
int n = chessArr[i][j];
// 先判断是不是0 0代表没有棋子
if(n!=0){
if(n==1){
g.setColor (Color.BLACK);
}else if(n==2){
g.setColor (Color.WHITE);
}
// 还原成标准坐标
int chessX = j*SIZE+X-SIZE/2;
int chessY = i*SIZE+Y-SIZE/2;
g.fillOval(chessX, chessY, SIZE, SIZE);