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; 
} 


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