AT212 P-CASカードと高橋君 题解

Doveqise

2019-03-07 16:43:11

Solution

这个题是一个小模拟,按题意写即可 小小的判断一下边界 下见代码 (跟刘汝佳学的dx dy数组骚操作233 不用各种switch) ```cpp #include<bits/stdc++.h> using namespace std; int main() { int x,y;scanf("%d%d",&x,&y); x--;y--; string w;cin>>w;//操作 char m[9][9];//密码表 for(int i=0;i<9;i++){ scanf("\n");//scanf要读空行QAQ for(int j=0;j<9;j++) scanf("%c",&m[i][j]);//读入密码表 } int dx[8]={1,-1,1,0,0,-1,-1,1};//挪动x int dy[8]={0,0,-1,-1,1,1,-1,1};//挪动y string s[8]={"R","L","RU","U","D","LD","LU","RD"};//判断指令 printf("%c",m[y][x]);//第一下不用移动 int ddx,ddy;//移动 for(int i=0;i<8;i++) if(w==s[i])ddy=dy[i],ddx=dx[i];//判断移动 for(int i=0;i<3;i++){ if(x+ddx<0||x+ddx>=9)ddx=-ddx;//x越界 if(y+ddy<0||y+ddy>=9)ddy=-ddy;//y越界 x+=ddx;y+=ddy;//移动 printf("%c",m[y][x]);//输出密码 } puts("");//万恶的换行 return 0; } ```