2011-12-01 5 views
0

배열 게임을하고 있는데 아래의 보드 클래스는 배열을 페인트하고 11,11에서 5 명의 사냥꾼을 생성합니다. 내 'route1'메서드는 사냥꾼을 이동할 때마다 주위를 움직여야합니다. 플레이어는 움직이지만, 사냥꾼 x와 hunter.y는 각 페인트를 마친 후 11에 머물러 있습니다. 어떻게 해결합니까?배열의 NPC 움직임

public class Board { 

    public String emptyfield = "-"; 
    public String [][]a2 = new String[12][12]; 
public Hunter hunters[] = new Hunter[5]; 

public void paint(){ 

    int numHunters =5 ; 
    for (int i =0; i < numHunters; i ++){ 
     hunters[i] = new Hunter(11,11,"H"); 
    } 
Player player = new Player(); 
     for (int r = 0 ; r < a2.length; r++){ 
      for (int c= 0; c <a2[r].length; c++){ 
       a2 [r][c] = emptyfield; 
       a2[Player.x][Player.y] = Player.name; 
       for (int i = 0; i < numHunters; i++){ 
        Hunter h = hunters[i]; 
        a2[h.x][h.y]=h.name; 

       } 
       System.out.print(" "+a2[r][c]); 
      } 
      System.out.println(""); 
     } 
     System.out.println("  Strength: "+Player.hp);System.out.println("  Score "+Player.score); 

    } 

public void route1(){ 
    Board board = new Board(); 
    Hunter Hunter = new Hunter(11,11,"H"); 
    Scanner in = new Scanner(System.in); 
    Random number = new Random(2); 
    int random = number.nextInt(2); 
    if(random ==1) 
     Hunter.x = Hunter.x -1; 
    else 
     Hunter.y = Hunter.y -1; 
    } 

답변

0

정확하게 읽으면 페인트를 할 때마다 11,11 위치에있는 모든 사냥꾼을 다시 만듭니 다.

public void paint(){ 

    int numHunters =5 ; 
    for (int i =0; i < numHunters; i ++) 
    { 
     hunters[i] = new Hunter(11,11,"H"); 
    } 

이 코드는 코드에서 나중에 변경 사항을 삭제마다 페인트라고 사냥꾼의 배열을 대체하고있다. 새로운 헌터 (11,11, "H")를 한 번만 움직이는 곳으로 이동해야합니다.