📄 zigzag.cpp
字号:
#include "stdafx.h"
#include "zigzag.h"
coordinate zigzagPos[63];
//zigzagPos[0]=(1,0) [0~62]
unsigned short int zigzag(int &x, int &y, int &d, int N){
//Move cursor to the next point of zigzag on N*N map, and return 1 when current cursor is the last one
//d stands for direction: always x+direction, y-direction, left-down for -1
if ((x==(N-1))&&(y==(N-1)))
{
x=1; y=0;
return 1;
}
else
{
if (((x+=d)<0)|( (y-=d)<0)|| x==N || y==N)
{
d=-d;
if (y==N) {
y--;
x+=2;
}
else
if (x==N) {
x--;
y+=2;
}
else {
if (y<0) y=0;
if (x<0) x=0;
}
}
return 0;
}
}
void initZigZag(int N){
int x=1, y=0, d=-1;
zigzagPos[0].x=x;
zigzagPos[0].y=y;
for (int i=1;i<N*N-1;i++){
zigzag(x,y,d,N);
zigzagPos[i].x=x;
zigzagPos[i].y=y;
}
}
void fastZigZag(int i, int &x, int &y){
x=zigzagPos[i].x;
y=zigzagPos[i].y;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -