테트리스 ver 0.3 의 요구사항은 다음과 같습니다.


-> 블럭 타입 추가 및 색상 추가 (랜덤)

-> 속도 레벨 및 UI 변경


먼저, 프로젝트 설계에 앞서, 위의 요구사항들을 해결하기 위한 방안을 생각해 보겠습니다.


[요구사항 1. 블럭 타입 추가 및 색상 추가 (랜덤)]



사실 ver 0.1 에서 원래 테트리스의 총 블럭 타입 7 개 중에, 한 블럭 타입을 누락시켰었습니다. 위의 그림을 보면 4 번 블럭이 빠졌었는데, 이번 버전에는 빠진 4 번 블럭을 추가하였습니다.


그리고, 이전 버전까지는, 블럭들에 색상이 없이 모두 같은 흰색으로 표현되었었는데, 이번 버전부터는 각 블럭당 자신만의 색삭을 가질 수 있도록 변경하였습니다.



기존 Block 구조체에 색상을 저장할 수 있는 변수를 추가하고 (int 형 변수 color) 이 변수를 통해서 현재 블럭의 색상을 관리하도록 하였습니다.


위의 표는 프로그램 내에서 정의된 색상을 나타내는 상수와 그 실제 정수값입니다. (열거형 상수라서) 0 부터 15 까지의 값을 가지고 색상을 표현할 수 있고, 이 색상 중에서, 랜덤하게 한 색상을 추출하여 새로 생성되는 블럭에 그 추출된 색상을 설정하는 방식으로 진행됩니다. 그리고 실제 테트리스 판과 블럭들을 출력할 때에, 현재 움직이는 블럭의 색상을 확인하여 (color 변수를 통해서) 콘솔 커서의 색상을 바꿔서 출력합니다.


[요구사항 2. 속도 레벨 및 UI 변경]


이 요구사항은, 알고리즘이 변경되거나 특정 기법이 추가된 것이 아니므로, 따로 해결 방법을 자세히 다루지는 않겠습니다.

by kkikkodev 2015. 8. 20. 00:18