方向数组
我理解的方向数组,与坐标有关系,直接看个图*:例如*
你可以这样定义:
模板如下:
int map[4][2]={{-1,0},{1,0},{0,1},{0,-1}}//左 右 上 下
fx=x;fy=y;//x y表当前坐标
for(int i=0;i<4;i++){
fx=x+map[i][0];
fy=y+map[i][1];//四个方向遍历
......
}
/*其实 map[4][2]可以拆分为:
map[0][0]=-1;
map[0][1]=0;
map[1][0]=1;
map[1][1]=0;
map[2][0]=0;
map[2][1]=1;
map[3][0]=0;
map[3][1]=-1;
这样就比较容易理解了~*/
也可以定义八个方向的:
模板如下:
int spx[] = {0,1,0,-1,1,1,-1,-1};
int spy[] = {1,0,-1,0,-1,1,1,-1};
for(int i = 0;i <8 ;++i){//左上左下右上右下还包括相邻的
int nx = x+ spx[i];
int ny = y +spy[i];
......
}
或者
int xy[8][2]={{0,1},{0,-1},{1,0},{-1,0},{1,-1},{1,1},{-1,-1},{-1,1}};
for(int i=0;i<8;i++){
int nx=x+xy[i][0];
int ny=y+xy[i][1];
.....
}