~cpp
// 랜� 워�
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int i,j,num;
cout << "ëžœë�¤ 워í�¬ë¥¼ ì‹¤í–‰í•˜ê² ìŠµë‹ˆë‹¤. 숫ìž�를 ìž…ë ¥í•˜ì„¸ìš” : ";
cin >> num;
int ** data = new int *[num];
for (i=0; i<num; i++)
data[i] = new int [num];
int dir_x[8]={0,1,1,1,0,-1,-1,-1};
int dir_y[8]={-1,-1,0,1,1,1,0,-1};
int line,col,count=0; // count는 � 움�� 횟수
srand(time(0));
line = rand() % num ;
col = rand() % num ;
for (i=0; i<num; i++)
{
for (j=0; j<num; j++)
{
data[i][j] = 0;
}
}
int check=1;
int direction = rand() % 8;
int next_x = col + dir_x[direction];
int next_y = line + dir_y[direction];
while(check>0)
{
direction = rand() % 8; // ëžœë�¤ìœ¼ë¡œ ì �ì�´ 움ì§�ì�´ëŠ” ë°©í–¥
next_x = col + dir_x[direction];
next_y = line + dir_y[direction];
check=0;
//벽� 아�떄
if (next_y >= 0 && next_y < num && next_x >= 0 && next_x < num)
{
line = line + dir_y[direction];
col = col + dir_x[direction];
data[line][col]++;
count++;
}
for (i=0; i<num; i++)
{
for (j=0; j<num; j++)
{
if(data[i][j] == 0)
check++;
}
}
};
for (i=0; i<num; i++)
{
for (j=0; j<num; j++)
{
cout << data[i][j] << "\t" ;
}
cout << endl;
}
cout << "� 움�� 횟수는 " << count << "번 입니다.\n";
for(i=0;i<num;i++)
delete [] data [i];
delete [] data;
return 0;
}