글
[Constant.h 파일에 포함되어 있는 enumerations 의 Class diagram]
테트리스 전반적으로 사용되는 상수들을 묶어놓은 Constant.h 파일을 분석해 보겠습니다. (GameStatus 는 Constant.h 에 없고, TetrisManager.h 에 존재하므로 추후 설명할 예정입니다.)
[Constant.h]
#ifndef _CONSTANT_H #define _CONSTANT_H enum Boolean{ False, True }; enum Direction{ UP, RIGHT, DOWN, LEFT }; enum ProcessType{ DIRECTION, DIRECT_DOWN, AUTO }; enum KeyCode{ UP_KEY_CODE = 72, LEFT_KEY_CODE = 75, RIGHT_KEY_CODE = 77, DOWN_KEY_CODE = 80, SPACE_BAR_KEY_CODE = 32 }; enum BoardType{ EMPTY, MOVING_BLOCK, FIXED_BLOCK, LEFT_WALL, RIGHT_WALL, BOTTOM_WALL, TOP_WALL, LEFT_TOP_EDGE, RIGHT_TOP_EDGE, LEFT_BOTTOM_EDGE, RIGHT_BOTTOM_EDGE }; #define MAX_SPEED_LEVEL 10 #define MIN_SPEED_LEVEL 1 #endif
1 ~ 2, 32 라인
헤더 파일을 중복 포함되지 않게 하기 위한 guard 입니다.
4 ~ 6 라인
Boolean 이라는 열거형 상수를 정의합니다. False 는 0, True 는 1 로 지정합니다.
8 ~ 10 라인
Direction 이라는 열거형 상수를 정의합니다. 이는, 방향을 의미합니다. UP 은 0, RIGHT 는 1, DOWN 은 2, LEFT 는 3 으로 정의됩니다.
12 ~ 14 라인
ProcessType 이라는 열거형 상수를 지정합니다. 이는, 게임 진행 종류를 뜻하는데, DIRECTION (= 0) 은 사용자가 방향키를 눌렀을 경우를 뜻하고, DIRECT_DOWN (= 1) 은 사용자가 스페이스바를 눌러서 블럭을 바로 밑으로 내려야 하는 경우를 뜻하고, AUTO (= 2) 는 지정해 놓은 속도에 따라 블럭이 자동으로 밑으로 한칸 내려오는 경우를 뜻합니다.
16 ~ 20 라인
KeyCode 라는 열거형 상수를 지정합니다. 이것은 사용자로부터 입력받은 키보드 값들을 정수값으로 표현합니다. UP_KEY_CODE 는 화살표 위 방향키, LEFT_KEY_CODE 는 화살표 왼쪽 방향키, RIGHT_KEY_CODE 는 화살표 오른쪽 방향키, DOWN_KEY_CODE 는 화살표 아래쪽 방향키, SPACE_BAR_KEY_CODE 는 스페이스바 키 값을 나타냅니다.
22 ~ 27 라인
BoardType 이라는 열거형 상수를 지정합니다. 이는, 테트리스 판의 각 위치에 대한 종류를 뜻합니다. EMPTY 는 아무것도 없는 비어있는 상태, MOVING_BLOCK 은 움직이는 현재 블럭, FIXED_BLOCK 은 더 이상 움직이지 못하여 굳어진 블럭, LEFT_WALL, RIGHT_WALL, BOTTOM_WALL, TOP_WALL 은 각각, 왼쪽 벽, 오른쪽 벽, 아래쪽 벽, 위쪽 벽을 뜻합니다. LEFT_TOP_EDGE, RIGHT_TOP_EDGE, LEFT_BOTTOM_EDGE, RIGHT_BOTTOM_EDGE 는 각각 왼쪽 위 모서리, 오른쪽 위 모서리, 왼쪽 아래 모서리, 오른쪽 아래 모서리를 뜻합니다.
29 ~ 30 라인
테트리스에서 사용되는 속도 레벨의 최대 레벨과 최소 레벨을 매크로 상수로 지정합니다. (1 ~ 10)
'1.2) 프로젝트 > 테트리스' 카테고리의 다른 글
테트리스 ver 0.2 (1) - 실행 결과 & 프로젝트 개요 (0) | 2015.06.12 |
---|---|
테트리스 ver 0.1 (10) - 개발 완료 / 후기 (0) | 2015.06.12 |
테트리스 ver 0.1 (9) - 소스코드 구현 (Main) (0) | 2015.06.12 |
테트리스 ver 0.1 (8) - 소스코드 구현 (TetrisView) (0) | 2015.06.12 |
테트리스 ver 0.1 (7) - 소스코드 구현 (TetrisManager) (0) | 2015.06.12 |
테트리스 ver 0.1 (6) - 소스코드 구현 (Block) (0) | 2015.06.12 |
테트리스 ver 0.1 (5) - 소스코드 구현 (Util) (0) | 2015.06.12 |
테트리스 ver 0.1 (3) - 프로그램 설계 (Use Case, Class, Sequence) (0) | 2015.06.12 |
테트리스 ver 0.1 (2) - 요구사항 분석 (0) | 2015.06.12 |
테트리스 ver 0.1 (1) - 실행 결과 & 프로젝트 개요 (0) | 2015.04.28 |
RECENT COMMENT