2013-04-18 3 views
0

원래 색이 무엇인지에 따라 배열 셀의 색을 검정색 또는 흰색으로 변경하는 코드를 작성하고 있습니다. 셀이 흰색이면 검은 색으로 바뀌며 그 반대의 경우도 마찬가지입니다.부울 배열로 클래스의 새 인스턴스 만들기

public class Grid { 

    boolean[][] grid; 
    private int Height; 
    private int Width; 
    public White; 
    public Black; 


    public Grid(int height, int width) { 

     Height = height; 
     Width = width; 

    } 

    public int getHeight() { 

     return Height; 
    } 

    public int getWidth() { 

     return Width; 
    } 

    public boolean isWhite(int i, int j) { 
     boolean [][] Grid = new boolean [Height][Width]; 
     for (i = 0; i<Height ; i++);{ 
      for (j = 0; j<Width ; j++){ 
       if (Grid[i][j] ?? //iswhite) { 
        ??//setBlack 
       } 
       else (??)//setWhite 

      } 
     } 

    }} 

    protected void setWhite(int i, int j) { 
     ?? 
    } 

    protected void setBlack(int i, int j) { 
     ?? 
    } 
} 

내가 그리드 [I] [J] 부울 값에 그러나 실제로 관계하는 방법을 잘 아니에요 따라 '에 대한 인스턴스를 생성하는데있어 생각 : 나는 아래의 코드로 일하고 있어요 public boolean isWhite '를'setWhite '및'setBlack '으로 설정하십시오. 어떻게해야합니까?

답변

0

boolean grid[][]을 이미 클래스 변수로 정의했습니다. grid = new boolean[height][width]; 줄을 따라 생성자에서 설정해야합니다. 모든 값을 초기화하는 것이 좋을 것입니다. 즉 모두 true 또는 false 또는 미리 정의 된 패턴으로 설정하십시오. 작업을 완료하면 grid[i][j]의 값을 확인할 수 있습니다.이 값은 true 또는 false입니다. (그 중 어느 쪽이 당신이 흑백으로 표현하고 싶습니다.)

예를 들어

, 당신의 isWhite 기능이 (참 가정 흰색 ==) 유사

public boolean isWhite(int i, int j) { 
     return grid[i][j]; 
} 

로 간단 설정 기능은 상대적 또한 최소한의 :

void setWhite(int i, int j) { 
    grid[i][j] = true; 
} 

void setBlack(int i, int j) { 
    grid[i][j] = false; 
} 

추가 : 당신은 아마 isWhite 기능을 내부에 배치하는 것이 아니라 색상을 틀지 때 적절한 일을 몇 가지 코드를 생성 할 것입니다. (색상을 테스트하고 값을 변경하지 않아야합니다.)

void changeColorAtYX(int y, int x){ 
    if(isWhite(y, x)){ 
     setBlack(y, x); 
    } else { 
     setWhite(y,x); 
    } 
} 
+0

참고 : 대부분의 격자/그래프/등. [x] [y] 형식으로 설정됩니다. 나는 당신이 높이/y 높이로 갔다는 것을 알아 차렸다. 그래서 그것을 유지했다. – Maple

+0

나는 실제로 그 일을 돌봐야하는 또 다른 반을 가지고있다. 당신의 도움을 주셔서 감사합니다 – Emfat

0

1) 아마 생성자에서 배열을 초기화해야합니다. 그것은 프리미티브의 배열이기 때문에 모든 위치에서 기본값이 false가됩니다. 이것이 원하는 것이 아니면 필요에 따라 true로 설정하십시오.

2) isWhite는 이름에서 볼 때 주어진 인덱스에서 값을 반환해야합니다.

3) 설정 방법에 대해 false == black으로 가정하면 흰색 또는 검정 중 원하는지 여부에 따라 적절한 위치의 값을 true 또는 false로 설정하면됩니다.

관련 문제