http://acm.hdu.edu.cn/showproblem.php?pid=1033
题意有点难懂,按要求走,每次走10单位,A表示顺时针转90度,V表示逆时针
每次输出当前的坐标
四个方向依次记为 0、1、2、3
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char str[220];
int pre,i;
int x,Y;
while(gets(str)&&str[0]!='\0')
{
printf("300 420 moveto\n310 420 lineto\n");
x=310; Y=420;
pre=0;
for(i=0;str[i];i++)
{
int k;
int l;
if(str[i]=='V')
{
l=0;
if(pre==0)
{
Y+=10;
pre=1;
}
else if(pre==1)
{
x-=10;
pre=2;
}
else if(pre==2)
{
Y-=10;
pre=3;
}
else if(pre==3)
{
x+=10;
pre=0;
}
}
else if(str[i]=='A')
{
l=1;
if(pre==0)
{
Y-=10;
pre=3;
}
else if(pre==1)
{
x+=10;
pre=0;
}
else if(pre==2)
{
Y+=10;
pre=1;
}
else if(pre==3)
{
x-=10;
pre=2;
}
}
printf("%d %d lineto\n",x,Y);
}
printf("stroke\nshowpage\n");
memset(str,0,sizeof(str));
}
return 0;
}