北 0
东 1
南 2
西 3
1.
定义全局变量
一个12x12的二维字符数组
char m[12][12] = {};
编写函数将四个边都赋值为*
void initFrame () {
}
2.
定义全局变量
int f[3] = {}; // 人的信息[方向, x, y]
int c[3] = {}; // 牛的信息[方向, x, y]
编写函数载入地图,并初始化人和牛的坐标
void loadMap () {
}
3.
填写该函数,判断下一步是不是要旋转,是的话返回true,否则返回false
x,y表示当前的坐标
mi表示当前的方向
bool isNextRot (int x, int y, int mi) {
}
4.
填写该函数,旋转90度
h: 0人 1牛
mi: 方向
void rot (int h, int mi) {
}
5.
填写该函数,走一步
h: 0人 1牛
mi: 方向
void moveStep (int h, int mi) {
}
// x,y为x,y坐标,mi为方向
// h为类型:农夫为0,奶牛为1
void move(int x,int y,int mi,int h){
if (isNextRot(x, y, mi)) {
rot(h, mi);
} else {
moveStep(h, mi);
}
}
6.
填写该函数,判断是否抓到牛,是的话返回true,否则返回false
bool isCapture () {
}
7.
定义全局变量
int fz = 0; // 人专属值
int nz = 0; // 牛专属值
bool ft[100000] = {}; // 人记录专属值是否出现
bool nt[100000] = {}; // 牛记录专属值是否出现
int reF = 0; // 人走到重复格子的次数
int reN = 0; // 牛走到重复格子的次数
专属值的计算方式
bool isOver () {
fz = f[1] + f[2] * 100 + f[0] * 10000;
nz = c[1] + c[2] * 100 + c[0] * 10000;
if (ft[fz]) {
reF++;
}
if (nt[nz]) {
reN++;
}
ft[fz] = true;
nt[nz] = true;
return reF >= 100 && reN >= 100;
}
8.
定义全局变量 ans 用来记录分钟数
int main () {
// 填写该函数
return 0;
}