0120_noip_抓牛

北 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;
}

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值