机器人(坐标轴指定方向移动)

有一份礼物,是一个最新版的机器人。这个机器人有4种指令:
1. forwardx,前进x米。
2. backx,先向后转,然后前进x米。
3. leftx,先向左转,然后前进x米。
4. rightx,先向右转,然后前进x米。
现在把机器人放在坐标轴原点,起始朝向为工轴正方向。经过一系列指令以后,你能告诉机器人的坐标位置吗。坐标轴上一个单位长度表示1米。

输入格式
第一行输入一个整数n(1 S n≤100)表示指令的个数。接下里n行,每行输入形如上面的指令,其中
- 1000<=x<= 1000.
输出格式
输出两个整数a, y表示机器人最后坐标。用空格隔开。

注意:决定机器人最后往哪个方向走,与机器人当前的朝向有关,事先规定好方向基准。

#include <iostream>
#include <algorithm>
using namespace std;
int dx[4]={0,-1,0,1};//规定好方向,比如dx[0],dy[0]合起来表示向上走
int dy[4]={1,0,-1,0};//逆时针方向,上左下右。
char op[15];
int main()
{
int n,d,x,nowx,nowy;
cin>>n;
d=3;//d是方向数组的下标,一开始的是左(x的正半轴),所以是3;
nowx=0;
nowy=0;
for(int i=0;i<n;i++){ //以3为基准,通过d的加减,进行方向的改变,共4个方向(4是一个循环)
    cin>>op>>x;
    if(op[0]=='b'){ //不用对比整个单词,对比每个方向单词的首字母就可以
        d=(d+2)%4;
    }else  if(op[0]=='l'){
        d=(d+1)%4;
    }else  if(op[0]=='r'){
        d=(d+3)%4;
    }
    nowx+=dx[d]*x;
    nowy+=dy[d]*x;
}
cout<<nowx<<" "<<nowy;
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱康代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值