一,需求
1,迭代1
设置指定位置(x, y, heading)
获取当前位置(x, y, heading)
右转90度,位置不变
左转90度,位置不变
2, 迭代2
前进一步,方向不变
后退一步,方向不变
转180度 位置不变
3,迭代3
右转45度,位置不变
左转45度,位置不变
注解:当角度为45 奇数倍时,前进一步需要向x y轴都需要变化
4,迭代4
forward n step 沿当前方向前进n步, 方向不变
backward n setp 沿当前方向后退n步, 方向不变
repet command n time:将指定的动作(左转右转前进后退,一共8个动作)重复执行N次
二,实现
头文件:
enum {
NORTH,
NORTHEAST,
EAST,
EASTSOUTH,
SOUTH,
SOUTHWEST,
WEST,
WESTNORTH
};
typedef struct Position {
int locx, locy;
int direc; // 方向,0,1,2,3对应北东南西
} position;
typedef enum Command{
FORWARD,
BACKWARD,
TURNRIGHT,
TURNLEFT,
TURNROUND,
TURNRIGHT45DEG,
TURNLEFT45DEG,
COMMAND_ONE_BUT,
FORWARDN,
BACKWARDN,
COMMAND_TWO_BUT
}Command;
void Create();
void Init(int x, int y, int heading);
position GetPosition();
void Forward();
void Backward();
void T

最低0.47元/天 解锁文章
1326

被折叠的 条评论
为什么被折叠?



