사실 ì�´ì œ Randomë�„ ì•„ë‹ˆì£ ... Scheduledì—� ê°€ê¹�ê² ì£ .
~cpp
//RandomWalk2
//Random Walk
#include<iostream.h>
int main()
{
//ë³€ìˆ˜ì„ ì–¸====================================
char way[20];//��하는 방향(8방향: 0~7)
int input_y, input_x;//좌표� �개수
int start_y, start_x;//시작ì �ì�˜ 좌표
int journey=0;
int y, x;//좌표� 현재 위치
int i, j;//for문 �리는 � 필요한 변수
int count=0;//� 움�� 수
int first_go=0;
for(i=0;i<20;i++)
way[i]='\0';
//x, y ì´�좌표수를 ìž…ë ¥ë°›ê³ ë°°ì—´ìƒ�성, 초기화===
cout<<"\n x좌표 수를 ìž…ë ¥í•˜ì‹œì˜¤: ";
cin>>input_x;
cout<<"\n y좌표 수를 ìž…ë ¥í•˜ì‹œì˜¤: ";
cin>>input_y;
int **base=new int *[input_y];
for(i=0;i<input_x;i++)
base[i]=new int [input_x];
for(i=0;i<input_y;i++){
for(j=0;j<input_x;j++)
base[i][j]=0;}
//시작ì � ìž…ë ¥, 대입===========================
cout<<"\n 시작ì �ì�˜ x좌표를 ìž…ë ¥í•˜ì‹œì˜¤: ";
cin>>start_x;
cout<<"\n 시작ì �ì�˜ y좌표를 ìž…ë ¥í•˜ì‹œì˜¤: ";
cin>>start_y;
y=start_y;
x=start_x;
base[y][x]=1;//시작ì �ì�€ ì�´ë¯¸ 한 번 왔으므로 1
first_go++;
//ë°©í–¥ ìž…ë ¥===================================
cout<<"ê°ˆ ë°©í–¥ ìž…ë ¥: ";
cin>>way;
do{
//방향 처리===================================
switch(way[journey]){
case '0'://�
if(y==0)
y=input_y-1;
else
y--;
if(base[y][x]==0)
first_go++;
base[y][x]++;
count++;
journey++;
break;
case '1'://��
if(y==0)
y=input_y-1;
else if(x==input_x-1)
x=0;
else if(y==0 && x==input_x-1){
x=0;
y=input_y-1;}
else{
y--;
x++;}
if(base[y][x]==0)
first_go++;
base[y][x]++;
count++;
journey++;
break;
case '2'://�
if(x==input_x-1)
x=0;
else
x++;
if(base[y][x]==0)
first_go++;
base[y][x]++;
count++;
journey++;
break;
case '3'://남�
if(y==input_y-1)
y=0;
else if(x==input_x-1)
x=0;
else if(y==input_y-1 && x==input_x-1){
y=0;
x=0;}
else{
y++;
x++;}
if(base[y][x]==0)
first_go++;
base[y][x]++;
count++;
journey++;
break;
case '4'://남
if(y==input_y-1)
y=0;
else
y++;
if(base[y][x]==0)
first_go++;
base[y][x]++;
count++;
journey++;
break;
case '5'://남서
if(y==input_y-1)
y=0;
else if(x==0)
x=input_x-1;
else if(y==input_y-1 && x==0){
y=0;
x=input_x-1;}
else{
y++;
x--;}
if(base[y][x]==0)
first_go++;
base[y][x]++;
count++;
journey++;
break;
case '6'://서
if(x==0)
x=input_x-1;
else
x--;
if(base[y][x]==0)
first_go++;
base[y][x]++;
count++;
journey++;
break;
case '7'://�서
if(y==0)
y=input_y-1;
else if(x==0)
x=input_x-1;
else if(y==0 && x==0){
y=input_y-1;
x=input_x-1;}
else{
y--;
x--;
}
if(base[y][x]==0)
first_go++;
base[y][x]++;
count++;
journey++;
break;
default:
break;
}
}while(way[journey]!='\0');
cout<<"\n� �� 횟수는 "<<count<<"회\n";
for(i=0;i<input_y;i++){
for(j=0;j<input_x;j++)
cout<<base[i][j]<<" ";
cout<<"\n";}
//ë�™ì �í• ë‹¹í•œ 것 지움
for(i=0;i<input_x;i++)
delete[] base[i];
delete [] base;
return 0;
}
작성�: Yggdrasil










