二维数组的定义:类型 数组名[行号][列号]
数组(一维数组):
存储多个同类型数据
格式1:
数据类型[] 数组名 = new 数据类型[长度];
格式2:
数据类型[] 数组名 = {值1,值2,值3...};
二维数组:多个一维数组组成
第x行第y列
定义格式1:
数据类型[][] 数组名 ;
数组名 = new 数据类型[行][列];
定义格式2:
数据类型[][] 数组名 = new 数据类型[行][列];
定义格式3:
数据类型[][] 数组名 = {
{值1,值2,值3...},
{值1,值2,值3...},
{值1,值2,值3...}
};
二维数组元素:数组名[行][列];
行下标从0开始
列下标从0开始
每行的元素个数:数组名[行].length
二维数组总行数:数组名.length
遍历二维数组:
先找到所有的行
for(int i=0;i<数组名.length;i++){
//找到每一行的所有元素(列)
for(int j=0;j<数组名[i].length;j++){
数组名[i][j];
}
}
推箱子 代码
package LikeJake;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;import javax.swing.ImageIcon;
import javax.swing.JFrame;public class Where extends JFrame {
//创建对象 导入图片
ImageIcon mskr = new ImageIcon("bian.png");
ImageIcon kong = new ImageIcon("kongdi.png");
ImageIcon ren = new ImageIcon("ren.png");
ImageIcon xiang = new ImageIcon("xiang.png");
int[][] map = new int[10][10];//创建二维数组
int rx = 1;
int ry = 2;
int xx = 4;
int xy = 5;
int mx = 8;
int my = 2;public Where() {
map[rx][ry] = 1;
map[xx][xy] = 2;
map[mx][my] = 3;
//窗体
this.setSize(400, 400);
this.setTitle("最帅的吊毛");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setResizable(false);this.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
if (e.getKeyChar()=='D') {
rx++;
if (map[rx][ry]==0) {
map[rx] [ry] = 1;
map[rx-1] [ry] = 0;
}
if (map[rx][ry]==2) {
mx++;
map[rx+1] [ry] = 2;
map[rx] [ry] = 1;
map[rx-1] [ry] = 0;
}
}
if (e.getKeyChar()=='S') {
ry++;
map[rx] [ry] =1;
map[rx] [ry-1] = 0;
}
if (e.getKeyChar()=='W') {
ry--;
map[rx+1] [ry] =0;
map[rx] [ry] = 1;
}
if (e.getKeyChar()=='A') {
rx--;map[rx] [ry] = 1;
map[rx+1] [ry] = 0;
}
Where.this.repaint();
}
public void keyReleased(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
}
});
this.setVisible(true);
}@Override
public void paint(Graphics g) {super.paint(g);
showMap();
}
public void showMap() {
Graphics gs = this.getGraphics();for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (map[i][j] == 0) {
gs.drawImage(kong.getImage(), i * 40, j * 40, 40, 40, null);
}
if (map[i][j] == 1) {
gs.drawImage(ren.getImage(), i * 40, j * 40, 40, 40, null);
}
if (map[i][j] == 2) {
gs.drawImage(xiang.getImage(), i * 40, j * 40, 40, 40, null);
}
if(map[i][j] ==3){
gs.drawImage(mskr.getImage(), i * 40, j * 40, 40, 40, null);
}
}
}
}
}