No older revisions available
No older revisions available
~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 ;
}