AOJ 1210 Die Game

問題

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1210。 top、north、westはそれぞれ1,2,3とする さいころを指示通りに転がした時、topに来る面は何か?

解法

シュミレーション問題です。

コード

int n, top, west, north;
string op;

int main(){
  while(scanf("%d", &n) && n){
    int tmp;
    top = 1;
    north = 2;
    west = 3;
    rep(i, n){
      cin >> op;
      switch(op[0]){
      case 'n':
    tmp = 7 - north;
    north = top;
    top = tmp;
    break;
      case 's':
    tmp = 7 - top;
    top = north;
    north = tmp;
    break;
      case 'e':
    tmp = 7 - top;
    top = west;
    west = tmp;
    break;
      case 'w':
    tmp = 7 - west;
    west = top;
    top = tmp;
    break;
      }
    }
    printf("%d\n", top);
  }
  return 0;
}