#include<cstdio>
#include<cstring>
using namespace std;
int dx[250],dy[250];
char str[250];
int main()
{
while(scanf("%s",str)!=EOF)
{
int x=300,y=420;
int i;
printf("%d %d moveto\n",x,y);
x+=10;
printf("%d %d lineto\n",x,y);
dx[0]=1;
dy[0]=0;
for(i=0;str[i]!='\0';i++)
{
if(str[i]=='V')//逆时针
{
if(dx[i]==-1&&dy[i]==0)//左
{
dx[i+1]=0,dy[i+1]=-1;//下
x=x,y-=10;
printf("%d %d lineto\n",x,y);
}
else if(dx[i]==1&&dy[i+1]==0)//右
{
dx[i+1]=0,dy[i+1]=1;//上
x=x,y+=10;
printf("%d %d lineto\n",x,y);
}
else if(dx[i]==0&&dy[i]==1)//上
{
dx[i+1]=-1,dy[i+1]=0;//左
x-=10,y=y;
printf("%d %d lineto\n",x,y);
}
else if(dx[i]==0&&dy[i]==-1)//下
{
dx[i+1]=1,dy[i+1]=0;
x+=10,y=y;
printf("%d %d lineto\n",x,y);
}
}
else if(str[i]=='A')//顺时针
{
if(dx[i]==1&&dy[i]==0)//右
{
dx[i+1]=0,dy[i+1]=-1;//下
x=x,y-=10;
printf("%d %d lineto\n",x,y);
}
else if(dx[i]==-1&&dy[i+1]==0)//左
{
dx[i+1]=0,dy[i+1]=1;//上
x=x,y+=10;
printf("%d %d lineto\n",x,y);
}
else if(dx[i]==0&&dy[i]==-1)//下
{
dx[i+1]=-1,dy[i+1]=0;//左
x-=10,y=y;
printf("%d %d lineto\n",x,y);
}
else if(dx[i]==0&&dy[i]==1)//上
{
dx[i+1]=1,dy[i+1]=0;
x+=10,y=y;//右
printf("%d %d lineto\n",x,y);
}
}
}
printf("stroke\nshowpage\n");
memset(str,0,sizeof(str));
memset(dx,0,sizeof(dx));
memset(dy,0,sizeof(dy));
}
return 0;
}
hdu 1033 模拟
最新推荐文章于 2018-08-08 15:39:35 发布