Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## Re:三方向定位:头 脸 及 左脸 任意一个转向可以用3个方向中的一个或其相反表示 相反为(n+3)%6

Posted by aducode at 2009-08-10 00:32:48 on Problem 1835
In Reply To:三方向定位:头 脸 及 左脸 任意一个转向可以用3个方向中的一个或其相反表示 相反为(n+3)%6 Posted by:wsy217 at 2009-04-25 20:00:32
```> #include<stdio.h>
> int x,y,z;
> int dir,hdir,lfdir;
> void go(int a,int b)
> {
> 	switch(a)
> 	{
> 		case 0:
> 			x+=b;
> 			break;
> 		case 1:
> 			y+=b;
> 			break;
> 		case 2:
> 			z+=b;
> 			break;
> 		case 3:
> 			x-=b;
> 			break;
> 		case 4:
> 			y-=b;
> 			break;
> 		case 5:
> 			z-=b;
> 			break;
> 	}
> }
>
> int main()
> {
> 	char inp[10];
> 	int dis,num,total,n;
> 	scanf("%d",&total);
> 	while(total--)
> 	{
> 		dir=0;
> 		hdir=2;
> 		lfdir=4;
> 		x=0;
> 		y=0;
> 		z=0;
> 		int tem;
> 		scanf("%d",&num);
> 		while(num--)
> 		{
> 			scanf("%s%d",inp,&dis);
> 			switch(inp[0])
> 			{
> 				case 'f':
> 					break;
> 				case 'b':
> 					dir=(dir+3)%6;
> 					lfdir=(lfdir+3)%6;
> 					break;
> 				case 'l':
> 					tem=dir;
> 					dir=lfdir;
> 					lfdir=(tem+3)%6;
> 					break;
> 				case 'r':
> 					tem=dir;
> 					dir=(lfdir+3)%6;
> 					lfdir=tem;
> 					break;
> 				case 'u':
> 					tem=dir;
> 					dir=hdir;
> 					hdir=(tem+3)%6;
> 					break;
> 				case 'd':
> 					tem=dir;
> 					dir=(hdir+3)%6;
> 					hdir=tem;
> 					break;
> 			}
> 			go(dir,dis);
> 		}
> 		printf("%d %d %d %d\n",x,y,z,dir);
> 	}
> 	return 0;
> }
>
>
>
>
```

Followed by: