2017-03-25 1 views
-6

Java Breakout 게임에 대한 자습서의 코드가 있습니다. 코드의 일부는 Brickmap입니다. 문제는이 코드의 논리를 이해하지 못하고 코드를 복사하지 않는다는 것입니다.Java가이 코드의 논리를 이해하지 못합니다.

저는 변수 맵을 배열로 생성한다는 것을 알고 있습니다. 그 후이 배열에 두 개의 변수 "row"와 "col"을 넣습니다. 문제는 "map.lenght"를 이해하지 못한다는 것입니다.

import java.awt.*; 

public class BrickMap { 
    int map[][]; 
    int brickHeight; 
    int brickWigth; 


public BrickMap(int row, int col){ 
    map= new int [row][col]; 
    for(int i = 0; i < map.length; i++){ 
     for(int j = 0; j < map[0].length; j++){ 
      map[i][j] = 1; 
     } 
    } 

    brickWigth = 640/col; 
    brickHeight = 170/row; 

} 

public void draw(Graphics2D g){ 
    for(int i = 0; i < map.length; i++){ 
     for(int j = 0; j < map[0].length; j++) { 

      if(map[i][j] > 0){ 
       g.setColor(Color.ORANGE); 
       g.fillRect(j *brickWigth + 80, i *brickHeight + 50 , brickWigth, brickHeight); 

       g.setStroke(new BasicStroke(4)); 
       g.setColor(Color.darkGray); 
       g.drawRect(j *brickWigth + 80, i *brickHeight + 50 , brickWigth, brickHeight); 

      } 
     } 
    } 


} 

public void setBrickValue(int value, int row, int col){ 
    map[row][col] = value; 



} 






} 
+0

'map [0] .length'는 배열의 첫 번째 줄 또는 행의 길이를 의미합니다. 귀하의 라인이 2 차원 배열에서 다른 길이가 될 수 있기 때문에. –

답변

2

map은 2 차원 어레이입니다. map.lengthrow에 의해 정의 된 첫 번째 차원의 길이를 지정합니다. map[0].length은 차례로 두 번째 차원의 첫 번째 배열 길이를 지정합니다.

+0

많은 도움을주었습니다. – cLipL

+0

'map [i] [j] = 1;'의 의미는 무엇입니까? – cLipL

+0

'map'은 배열의 배열이므로,'i'와'j'에 의해 지정된 (내부) 배열 위치에 값을 할당합니다. 'i'는 외부 배열 인덱스를 정의하고'j'는 내부 배열 인덱스를 정의합니다. – ldz

1

map.length은 배열의 요소 수를 반환합니다.

map[0].length은 맵 배열 내의 첫 번째 배열 (2 차원)의 요소 수를 반환합니다.

관련 문제