IT/프로젝트

[테트리스1] 개요, 설계, 화면구성

안녕하세요. 컴퓨터 못하는 컴퓨터공학생입니다.

델파이를 사용하여 테트리스 게임을 만들어보려 합니다.

 

첫 번째로 화면 구성 및 설계를 하려 합니다.

아래 플로우차트와 같이 테트리스의 전체적인 흐름이 흘러갑니다.

미리 설계를 해놓고 코드를 짜게되면 수월하게 코드를 짤 수 있습니다.




두 번째로 화면을 구성해보려 합니다

아래 그림과 같이 게임 진행화면, 다음블럭표시 화면, 점수 표시화면으로 크게 3가지로 나누려 합니다.



세 번째로 테트리스 진행 화면에서 배경을 그려보려 합니다

배경의 크기는 벽을 포함해서 가로 12, 세로 22인 직사각형으로 합니다

그리고 벽의 색은 하늘색으로 설정합니다




이 벽돌을 board라는 3차원 배열로 선언하겠습니다.


1
board : array[0..110..210..1of integer;      // 0..2 0은 색 index, 1은 쌓여있는지 여부
cs


여기서 0..11은 총 12길이의 가로길이,

0..21은 총 22길이의 세로길이,

0..1은 첫 번째 [0]은 색깔 index, [1]은 블록 쌓여있는지 아닌지 여부를 나타냅니다.



board 3차원 배열을 다음과 같이 초기화 합니다

끝 벽쪽은 2라는 임의값을 넣고 나머지는 0이라는 임의의 값을 넣습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
begin
  // 벽부분 board배열에 2넣기.
  for i := 0 to 11 do
  begin
    for j := 0 to 21 do            
    begin
      if (j = 0) or (j = 21) or (i = 0) or (i = 11then
        board[i][j][1] := 2
      else
      begin
        board[i][j][0] := 0;
        board[i][j][1] := 0;
      end;
    end;
  end;
end;
cs



그리고 canvas를 이용하여 네모를 그립니다



1
2
3
4
5
6
7
8
9
10
11
12
13
14
  for i := 0 to 11 do
  begin         
    for j := 0 to 21 do
    begin
      if board[i][j][1= 2 then
        BackColor := $E7D2A5 // 하늘색(BGR)
      else
        BackColor := clSilver; // 회색
      MCanvas.brush.Color :=  BackColor;
      MCanvas.Pen.Style := psClear;
      MCanvas.Rectangle(i * cBrickSize, j * cBrickSize,
                      (i+1* cBrickSize, (j+1* cBrickSize);
    end;
  end;
cs



여기서 cBrickSize15입니다. 한변이 15인 정사각형을 그립니다.

왼쪽 위부터 오른쪽으로 가면서 정사각형을 그리고 다음줄로 내려와 다시 왼쪽부터 차례대로 정사각형을 그립니다.

다 그리면 다음 그림과 같이 테트리스 배경이 완성됩니다.





오늘은 여기까지 하겠습니다.

다음엔 블럭을 그리고 내려오는 기능에 대해 구현해보도록 하겠습니다.


감사합니다.





,

최근 댓글

최근 트랙백

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

링크

카운터

Today :
Yesterday :
Total :