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);
}
}
}
}