U E D R , A S I H C RSS

Java Study2002/영동-2주차

  • 벽에 부딪히면 통과하여 반대쪽으로 나오는 것이 아니라 그냥 그자리에 있는 걸로 해놨습니다.
  • 상욱이의 지적에 따라 하나의 클래스에서 모든 걸 처리하지 않고 클래스를 여러개로 분리했습니다.
Class main--메인함수 클래스
~cpp 
import java.util.*; 
public class main{ 
	public static void main(String[] args) 
    { 
    	//Board aboard=new Board(); 
        Bug bug1=new Bug();
        System.out.println("RandomWalk"); 
        //aboard.board[0][0]++; 
                   
        bug1.move();           
	}
} 
Class Bug--이동하는 벌레
~cpp 
import java.util.*; 
public class Bug{
	public int x=0; 
    public int y=0;
    public int way;  
    public int count=0; 
	public void move() 
    { 
    	Board aboard=new Board();
    	aboard.board[0][0]++;
    	while(count<24) 
        { 
        	Random rand=new Random(); 
            way=rand.nextInt()%8;              
            
            if(way==0)//북 
            { 
            	if(x>0) 
                { 
                	x=x-1; 
                } 
            } 
            else if(way==1)//북동 
            { 
            	if(x>0 && y<4) 
                { 
                	x=x-1; 
                    y=y+1; 
                } 
            } 
            else if(way==2)//동 
            { 
            	if(y<4) 
                { 
                	y=y+1; 
                } 
            } 
            else if(way==3)//남동 
            { 
            	if(y<4 && x<4) 
                { 
                	x=x+1; 
                    y=y+1; 
                } 
            } 
            else if(way==4)//남 
            { 
            	if(x<4) 
                { 
                	x=x+1; 
                } 
            } 
            else if(way==5)//남서 
            { 
            	if(y>0 && x<4) 
                { 
                	x=x+1; 
                    y=y-1; 
                } 
            } 
            else if(way==6)//서 
            { 
            	if(y>0) 
                { 
                	y=y-1; 
                } 
            } 
            else if(way==7)//북서 
            { 
            	if(y>0 && x>0) 
                { 
                	x=x-1; 
                    y=y-1; 
                } 
            }
            if(aboard.board[x][y]==0) 
            { 
            	count++; 
            } 
            aboard.board[x][y]++; 
            aboard.exhibit(); 
            System.out.print("\n"); 
        } 
	} 
}
Class Board--벌레의 발자국이 남는 판. 발자국을 통해 바퀴벌레의 이동 상황을 보고한다.
~cpp 
import java.util.*; 
public class Board{
    public int board[][]={ 
                {0,0,0,0,0}, 
                {0,0,0,0,0}, 
                {0,0,0,0,0}, 
                {0,0,0,0,0}, 
                {0,0,0,0,0} 
    };                    
    public void exhibit(){ 
    	for(int i=0;i<5;i++) 
        { 
        	for(int j=0;j<5;j++){ 
            	System.out.print(board[i][j]); 
                System.out.print("\t"); 
            } 
            System.out.print("\n"); 
		} 
	} 
}

작성자: Yggdrasil

  • 영동아 while 문안에 중복이 넘 심하다. 조금만 고민해보면 중복 왕창 줄일 수 있을꺼야...^^ --재동

    --->확실히 빨리 배열로 테이블(?) 만들어 놓는 걸 해봐야겠습니다. --영동
  • 데블스 캠프할때 저런거 해결하는 팁 나왔었던 거 같은데. LookUpTable이라고.. -- 인수

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:30
Processing time 0.0157 sec