Pyramid

0

java

목록 보기
5/11
post-thumbnail

import acm.graphics.;
import acm.program.
;

public class Pyramid extends GraphicsProgram {

/* Width of each brick in pixels /
private static final int BRICK_WIDTH = 30;

/* Width of each brick in pixels /
private static final int BRICK_HEIGHT = 12;

/* Number of bricks in the base of the pyramid /
private static final int BRICKS_IN_BASE = 17;

public void run() {
    makePyramid();
}

private void makePyramid()
{
	
	// 1층의 시작을 0이라고 하고 BRICKS_IN_BASE-1 까지 층을 만든다.
	
    for( int row = 0; row < BRICKS_IN_BASE; row++ )
    {
        int bricksInRow = BRICKS_IN_BASE - row;

        for( int brickNum = 0; brickNum < bricksInRow; brickNum++ )
        {
        	// 1. getWidth()/2에서 중앙이 시작하기 때문에 이를 통해 시작하는 점을 찾는다.
        	 		// 중앙에서 1층의 너비만큼의 반을 빼서 시작하는 점을 찾는다.
        	// 2. 각 줄에 벽돌의 폭 * 벽돌의 갯수 만큼을 더해준다.
        	
            int x = ( getWidth()/2 ) - (BRICK_WIDTH * bricksInRow) / 2 + brickNum * BRICK_WIDTH;            
            int y = getHeight() - BRICK_HEIGHT * (row+1); // y의 위치를 저장한다.
            
            GRect brick = new GRect( x , y , BRICK_WIDTH , BRICK_HEIGHT ); // 벽돌을 그린다.
            add(brick);
        }
    }
}

}

profile
초보 데이터분석가의 기록 공간입니다 😁

0개의 댓글