POJ 1835 写的很囧

模拟 完完全全地模拟

很囧地模拟

 

#include <iostream> #include <string> using namespace std; int main() { int tcase; cin>>tcase; string action; int pace; while (tcase--) { int n = 0; int x = 0,y = 0,z = 0; int direc = 0,head_dir = 2; cin>>n; for (int i = 0;i < n;i++) { cin>>action>>pace; if (action=="back") { direc += 3; if(direc>5) direc-=6; } else if(action=="left") { if (direc==0) { if (head_dir==2) direc=4; else if(head_dir==5) direc=1; else if (head_dir==1) direc=2; else direc=5; } else if(direc==1) { if(head_dir==2) direc=0; else if(head_dir==5) direc=3; else if(head_dir==3) direc=2; else direc=5; } else if (direc==2) { if(head_dir==0) direc=1; else if(head_dir==3) direc=4; else if(head_dir==1) direc=3; else direc=0; } else if (direc==3) { if (head_dir==2) direc=1; else if(head_dir==5) direc=4; else if (head_dir==1) direc=5; else direc=2; } else if(direc==4) { if(head_dir==2) direc=3; else if(head_dir==5) direc=0; else if(head_dir==3) direc=5; else direc=2; } else if (direc==5) { if(head_dir==0) direc=4; else if(head_dir==3) direc=1; else if(head_dir==1) direc=0; else direc=3; } } else if(action=="right") { if (direc==3) { if (head_dir==2) direc=4; else if(head_dir==5) direc=1; else if (head_dir==1) direc=2; else direc=5; } else if(direc==4) { if(head_dir==2) direc=0; else if(head_dir==5) direc=3; else if(head_dir==3) direc=2; else direc=5; } else if (direc==5) { if(head_dir==0) direc=1; else if(head_dir==3) direc=4; else if(head_dir==1) direc=3; else direc=0; } else if (direc==0) { if (head_dir==2) direc=1; else if(head_dir==5) direc=4; else if (head_dir==1) direc=5; else direc=2; } else if(direc==1) { if(head_dir==2) direc=3; else if(head_dir==5) direc=0; else if(head_dir==3) direc=5; else direc=2; } else if (direc==2) { if(head_dir==0) direc=4; else if(head_dir==3) direc=1; else if(head_dir==1) direc=0; else direc=3; } } else if (action=="up") { int temp = direc; direc = head_dir; head_dir = temp+3; if(head_dir>5) head_dir-=6; } else if (action=="down") { int temp = head_dir; head_dir = direc; direc = temp+3; if(direc>5) direc-=6; } switch (direc) { case 0: x+=pace; break; case 1: y+=pace; break; case 2: z+=pace; break; case 3: x-=pace; break; case 4: y-=pace; break; case 5: z-=pace; break; default: break; } } cout<<x<<" "<<y<<" "<<z<<" "<<direc<<endl; } }

 

 

你可能感兴趣的:(UP,action)