[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)


by kkikkodev 2015. 6. 12. 11:23