close
解題方法
將骰子剖面,再用相對位置來看就比較好處理。向北轉和向南轉請看示意圖,向東轉和向西轉只要將中間四個數字往右或往左移動1格就可以了。
C++
#include <iostream> #include <string> using namespace std; int main() { int n; string act; while(cin>>n&&n!=0)//輸入動作次數 { int p[3][4]={0},t; p[1][0]=1;//設定好初始值 p[1][1]=4; p[1][2]=6; p[1][3]=3; p[0][0]=2; p[2][0]=5; while(n--) { cin>>act; if(act=="north")//向北轉 { t=p[0][0]; p[0][0]=p[1][0]; p[1][0]=p[2][0]; p[2][0]=p[1][2]; p[1][2]=t; } else if(act=="east")//東 { t=p[1][0]; p[1][0]=p[1][3]; p[1][3]=p[1][2]; p[1][2]=p[1][1]; p[1][1]=t; } else if(act=="south")//南 { t=p[2][0]; p[2][0]=p[1][0]; p[1][0]=p[0][0]; p[0][0]=p[1][2]; p[1][2]=t; } else if(act=="west")//西 { t=p[1][0]; p[1][0]=p[1][1]; p[1][1]=p[1][2]; p[1][2]=p[1][3]; p[1][3]=t; } } cout<<p[1][0]<<endl; } return 0; }
文章標籤
全站熱搜