글
[Util 클래스의 Class Diagram]
프로그램 전반에서 사용되는 유틸리티 클래스인 Util 클래스에 대해서 살펴보려고 합니다. Util.h 와 Util.c 에서 변경된 내역 위주로 설명드리겠습니다. 먼저, 추가, 삭제, 변경 이력에 대해서 말씀드리겠습니다.
[Util.h 버전 비교]
4 ~ 10 라인 (추가)
13 라인 (추가)
[Util.c 버전 비교]
16 ~ 18 라인 (추가)
이제는, 위에서 언급한 부분들을 분석해 보겠습니다.
[Util.h]
#ifndef _UTIL_H #define _UTIL_H #define FONT_COLOR_SIZE 16 enum FontColor{ BLACK, BLUE, GREEN, JADE, RED, PURPLE, YELLOW, WHITE, GRAY, LIGHT_BLUE, LIGHT_GREEN, LIGHT_JADE, LIGHT_RED, LIGHT_PURPLE, LIGHT_YELLOW, LIGHT_WHITE }; void CursorUtil_GotoXY(int x, int y); void CursorUtil_Hide(); void FontUtil_ChangeFontColor(int color); #endif
4 ~ 10 라인 (추가)
4 라인에서 폰트 색상 개수를 16 으로 상수화합니다. 그리고 6 라인에서는, 열거형 FontColor 를 정의하고, 열거형 값으로, BLACK 부터 LIGHT_WHITE 까지 총 16 개의 정수를 정의합니다. (0 ~ 15) 이 열거형 값들은, 향후, 출력 커서의 폰트 색상을 변경할 때에 사용되는 값들입니다.
13 라인 (추가)
FontUtil_ChangeFontColor 함수의 선언부입니다.
[Util.c]
#include <Windows.h> #include "Util.h" void CursorUtil_GotoXY(int x, int y){ COORD pos = { x, y }; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } void CursorUtil_Hide(){ CONSOLE_CURSOR_INFO cursorInfo; cursorInfo.dwSize = 1; cursorInfo.bVisible = FALSE; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursorInfo); } void FontUtil_ChangeFontColor(int color){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); }
16 ~ 18 라인 (추가)
FontUtil_ChangeFontColor 함수의 정의부입니다. 매개변수로 color 를 받아서 해당 color 로 출력 커서의 색상을 변경하는 역할을 합니다. SetConsoleTextAttribute 함수를 호출하면서 매개변수로 변경할 색상 정수값을 넘겨 출력 커서의 색상을 변경합니다.
(콘솔 글자 색 변경하기 참고)
'1.2) 프로젝트 > 테트리스' 카테고리의 다른 글
테트리스 ver 0.4 (1) - 실행 결과 & 프로젝트 개요 (6) | 2015.08.21 |
---|---|
테트리스 ver 0.3 (9) - 개발 완료 / 후기 (0) | 2015.08.21 |
테트리스 ver 0.3 (8) - 소스코드 구현 (Main) (0) | 2015.08.21 |
테트리스 ver 0.3 (7) - 소스코드 구현 (TetrisManager) (0) | 2015.08.21 |
테트리스 ver 0.3 (6) - 소스코드 구현 (Block) (0) | 2015.08.21 |
테트리스 ver 0.3 (4) - 소스코드 변경 내역 (0) | 2015.08.20 |
테트리스 ver 0.3 (3) - 프로그램 설계 (Use Case, Class, Sequence) (0) | 2015.08.20 |
테트리스 ver 0.3 (2) - 요구사항 분석 (0) | 2015.08.20 |
테트리스 ver 0.3 (1) - 실행 결과 & 프로젝트 개요 (10) | 2015.06.17 |
테트리스 ver 0.2 (8) - 개발 완료 / 후기 (0) | 2015.06.14 |
RECENT COMMENT