POJ1132

一 思路分析:

本题属于简单的模拟题型。需要自己抽象出模拟路线:

本题需要抽象出以下模型:

向右动:(x,y)->(x+1,y): s[x][y-1]=1;x++;

向上动:(x,y)->(x,y+1): s[x][y]=1;y++;

向下动:(x,y)->(x,y-1):s[x-1][y-1]=1;y--;

向左动:(x,y)->(x-1,y): s[x-1][y]=1;x--;

且本题要注意限制条件:1.order[i]=='E'&&y!=0 2.order[i]=='N'&&x!=32 

                              3.order[i]=='W'&&y!=32  4.order[i]=='S'&&x!=0

2.输出格式切记要注意:最后要多加一个cout<<endl;

二 源码展示:

 

75#include<iostream>
76#include<string>
77using namespace std;
78int s[32][32];
79int main()
80{
81    int T,cass=1;
82    cin>>T;
83    //数组清零
84    while(T--)
85    {
86        string order;
87        int x,y;int q;
88        for(int k=0;k<32;k++)
89        for(int j=0;j<32;j++)
90        s[k][j]=0;
91        cin>>x>>y;
92         cin>>order;
93         for(int i=0;order[i]!='.';i++)
94         {
95             if(order[i]=='E'&&y!=0)//向右
96             {
97                s[x][y-1]=1;x++;
98             }
99             else if(order[i]=='N'&&x!=32)//向上
100             {
101               s[x][y]=1;y++;
102             }
103             else if(order[i]=='W'&&y!=32)//向左
104             {
105                 s[x-1][y]=1;x--;
106             }
107             else if(order[i]=='S'&&x!=0)//向下
108             {
109                 s[x-1][y-1]=1;y--;
110             }
111         }
112         cout<<"Bitmap #"<<cass<<endl;cass++;
113         for(int k=31;k>=0;k--)
114         {
115         for( q=0;q<32;q++)
116         {
117            if(s[q][k]) cout<<'X';
118            else  cout<<'.';
119         }
120         cout<<endl;
121         }
122     cout<<endl;
123    }
124    return  0;
125}

 

 

 

posted @ 2014-07-21 21:18  future_hero  阅读(182)  评论(0编辑  收藏  举报