[acm] 118
/*
一直wa
不知道哪裡錯
我用\n來當作判斷輸入結束有錯嗎?
*/
#include<stdio.h>
#include<stdlib.h>
char maze[51][51];
int main(){
int x=0,y=0;
int inix=0,iniy=0;
char dir=0;
char com=0;
int lost=0;
scanf("%d%d",&x,&y);
//確定世界大小
while(scanf("%d %d %c\n",&inix,&iniy,&dir)!=EOF){
lost=0;
while(scanf("%c",&com)!=EOF){
if(com=='\n' || lost)
break;
switch(com){
case 'F':
switch(dir){
case 'N':
if(iniy+1 <=y)
iniy++;
else if(maze[inix][iniy]!='L'){ //iniy+1>y
maze[inix][iniy]='L';
lost=1;
}//end else
break;
case 'S':
if(iniy-1 >=0)
iniy--;
else if(maze[inix][iniy]!='L'){ //iniy+1>y
maze[inix][iniy]='L';
lost=1;
}//end else
break;
case 'E':
if(inix+1 <=x)
inix++;
else if(maze[inix][iniy]!='L'){ //iniy+1>y
maze[inix][iniy]='L';
lost=1;
}//end else
break;
case 'W':
if(inix-1 >=0)
inix--;
else if(maze[inix][iniy]!='L'){ //iniy+1>y
maze[inix][iniy]='L';
lost=1;
}//end else
break;
}//end switch
break;
case 'L':
switch(dir){
case 'N':
dir='W';
break;
case 'S':
dir='E';
break;
case 'E':
dir='N';
break;
case 'W':
dir='S';
break;
}//end switch
break;
case 'R':
switch(dir){
case 'N':
dir='E';
break;
case 'S':
dir='W';
break;
case 'E':
dir='S';
break;
case 'W':
dir='N';
break;
}//end switch
break;
}//end switch
}//end while
printf("%d %d %c",inix,iniy,dir);
if(lost)
printf(" LOST\n");
else
printf("\n");
}//end while
system("pause");
}//end main
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.172.123
推
08/04 00:25, , 1F
08/04 00:25, 1F
推
08/04 08:15, , 2F
08/04 08:15, 2F
→
08/04 08:15, , 3F
08/04 08:15, 3F
→
08/04 08:16, , 4F
08/04 08:16, 4F
→
08/04 08:18, , 5F
08/04 08:18, 5F
→
08/04 08:20, , 6F
08/04 08:20, 6F
→
08/04 08:20, , 7F
08/04 08:20, 7F
推
08/04 08:29, , 8F
08/04 08:29, 8F
→
08/04 10:52, , 9F
08/04 10:52, 9F
→
08/04 11:04, , 10F
08/04 11:04, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章