示例#1
0
int main(){
  freopen("transform.in", "r", stdin);
  freopen("transform.out", "w", stdout);
  int i, j, flag;

  scanf("%d", &n);

  for(i = 0; i < n; ++i){
    scanf("%s", t1[i]);
  }

  for(i = 0; i < n; ++i){
    scanf("%s", t2[i]);
  }

  if( equal() ){
    printf("6\n");
    return 0;
  }

  for(i = 1; i < 4; ++i){
    right90();
    if( equal() ){
      printf("%d\n", i);
      return 0;
    }
  }

  right90();
  image();

  if( equal() ){
    printf("4\n");
    return 0;
  }

  for(i = 1; i < 4; ++i){
    right90();
    if( equal() ){
      printf("5\n");
      return 0;
    }
  }

  printf("7\n");
  return 0;
}
示例#2
0
void executePath() {
   int i,j;
   double n;

   for (i = 0;moves[i] != INVALID;i++) {
      switch (moves[i]) {
         case FORWARD:
            n = 1;
            if (i > 0 && moves[i - 1] != FORWARD){// coming out of turn
               if (sturning)
                  n += 0.5;
               else
                  n += 1;
            }
            for (j = i + 1;moves[j] == FORWARD;i++,j++,n++);
            if (moves[i + 1] != INVALID && sturning)// approaching turn
               n -= 0.5;
            cellForward(n);
            break;
         case RIGHT:
            if (sturning) {
               sRight();
            }
            else {
               if (moves[i - 1] != FORWARD) {
                  cellForward(1);
               }
               right90();
            }
            break;
         case LEFT:
            if (sturning) {
               sLeft();
            }
            else {
               if (moves[i - 1] != FORWARD) {
                  cellForward(1);
               }
               left90();
            }
            break;
         default:
            break;
      }
   }
   if (sturning && moves[i-1]!=FORWARD)
      cellForward(0.5);
}
示例#3
0
void turnRight(int *dir) {
   virtualRight(dir);
   if (!savingPath)
      right90();
}