No older revisions available
No older revisions available
~cpp
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
const int max=5;
int matrix[max][max];
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
matrix[i][j]=0;
}
srand(time(0)); // 바퀴벌레 랜덤 놓기
int x = rand() % 5;
int y = rand() % 5;
int p, q;
matrix[x][y]=1;
int count=0, number=0;//엔딩수, 이동수 지정
while(count<24)
{
int moving = rand() % 8;
if (moving==0) //북
p=0,q=-1;
else if(moving == 1) //북동
p=1,q=-1;
else if(moving == 2)//동
p=1,q=0;
else if(moving == 3) //남동
p=1,q=1;
else if(moving == 4) //남
p=0,q=-1;
else if(moving == 5) //남서
p=-1,q=1;
else if(moving == 6) //서
p=-1,q=0;
else if(moving == 7) //북서
p=-1,q=-1;
x = x + p;
y = y + q;
if((x<=4 && x>=0) && (y<=4 && y>=0)) // 틀 안쪽인지를 검사
{
if(matrix[x][y]==0) //자리 확인
{
matrix[x][y]=matrix[x][y]+1;
count++;
number++;
}
else
{
matrix[x][y]=matrix[x][y]+1;
number++;
}
}
else // 틀 밖일때 바퀴 되 돌리기
{
x=x-p;
y=y-q;
}
};
for(int ga=0;ga<5;ga++)
{
for(int se=0;se<5;se++)
cout << matrix[ga][se] << "\t";
cout<<endl;
}
cout<<endl;
cout << "바퀴벌레의 이동횟수는 " << number << "입니다." << endl;
return 0;
}