U E D R , A S I H C RSS

Random Walk2/영동

���� �� 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

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:50
Processing time 0.0211 sec