演进式设计——扫地机器人

一,需求

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值