~cpp #include <iostream> #include <ctime> using namespace std; const int max = 12; int main() { int board[max][max]={0,}; int x, y, arsize, end=1; int direction; int total=0; cout << "판의 크기를 입력하세요(12이하) : " ; cin >> arsize ; cout << "시작점의 x좌표를 입력하세요 : " ; cin >> x ; cout << "시작점의 y좌표를 입력하세요 : " ; cin >> y ; srand((unsigned)time(NULL)); board[x][y]=1; do { direction=rand()%8; switch(direction) { case 0 : if(x!=0 && y!=0) { x--; y--; } break; case 1 : if(y!=0) { y--; } break; case 2 : if(x!=arsize-1 && y!=0) { x++; y--; } break; case 3 : if(x!=arsize-1) { x++; } break; case 4 : if(x!=arsize-1 && y!=arsize-1) { x++; y++; } break; case 5 : if(y!=arsize-1) { y++; } break; case 6 : if(x!=0 && y!=arsize-1) { x--; y++; } break; case 7 : if(x!=0) { x--; } break; } if(board[x][y]==0) end++; board[x][y]++; total++; }while(end<arsize*arsize); for(int i=0;i<arsize;i++) { for(int j=0;j<arsize;j++) cout << board[j][i] << "\t"; cout << endl; } cout << endl << "총 이동 횟수는 " << total << "입니다." << endl ; return 0 ; }