TetrisForDesktop.zip

이번 시간에는, C 언어를 가지고 구현한 테트리스에 대해서 자세히 설명드리겠습니다. 일단, 실행 파일은 본 게시물의 우측 상단에 압축하여 첨부해드렸습니다. 직접 실행해 보고 싶으신 분들은 다운 받아서 압축 푸시고 실행해 보시면 될 것 같습니다.


최종 결과물은 어떤 모습인지 먼저, C 언어 테트리스의 실행 결과를 동영상으로 확인해보겠습니다.


[실행 결과]


오락실에서 볼 수 있는 아주 간단한 모습의 테트리스 입니다. 색상 변경이나 추가 기능은 전혀 없이, 본연의 상, 하, 좌, 우 키보드와 스페이스 바 키보드만을 이용해서 조작하는 게임입니다. 


[키 조작법]

 키

설명

 ↑

블럭을 90 도 회전하기 

 →

블럭을 오른쪽으로 한 칸 이동시키기 

 ←

블럭을 왼쪽으로 한 칸 이동시키기 

 ↓

블럭을 아래쪽으로 한 칸 내리기 

 Space Bar

블럭을 가장 밑 바닥으로 내리기 


블럭이 랜덤하게 생성되면, 키보드 키를 이용하여 블럭을 조작하고, 밑으로 떨어뜨려서 한 라인을 채우면 그 라인을 지워서 계속 살아남는 형태의 게임입니다. 왼쪽 화면에는 실제 테트리스 판과 이동하는 블럭, 그리고 쌓여진 블럭들이 보이고, 오른쪽 화면에는 지운 라인 개수와 속도 레벨, 다음 생성될 블럭의 모양이 보여집니다.


프로그램의 실행 화면과 조작법을 확인하였으니, 프로그램 제작에 관련된 설계 / 개발환경 및 사용된 Tool 을 정리해 보겠습니다.


[프로젝트 개요]

프로젝트명

TetrisForDesktop


요구사항

상, 하, 좌, 우, 스페이스바 키 입력 처리

한 줄 삭제 기능

다음 블럭 출력 기능

스피드 레벨 및 삭제 줄 수 출력 기능


기간

2015-04-04 ~ 2015-04-04 (1 일)


운영체제

Windows 7


언어 (+ 라이브러리, 프레임워크)

C 언어 + Win32Api


설계

StarUML 2.1.2


IDE

Visual Studio 2013 (Community)


소스 코드 버전 관리

Git (GitHub)


(Source Code Repository 참고)


프로젝트명은 TetrisForDesktop 입니다. PC 프로그램을 개발하기 때문에 naming 을 이와 같이 지었습니다.


이번 버전의 요구사항은 기본적인 테트리스 게임의 개발에 대한 내용입니다. 구체적인 요구사항은 다음과 같습니다.


-> 상, 하, 좌, 우, 스페이스바 키 입력 처리

-> 한 줄 삭제 기능

-> 다음 블럭 출력 기능

-> 스피드 레벨 및 삭제 줄 수 출력 기능


프로젝트 기간은 1 일 정도 걸렸습니다.


운영체제는 역시나, 제 PC 기본 환경이 Windows 라 선택하게 되었고, 설계 도구는 Use Case, Class, Sequence Diagram 들을 그리기 위해 익숙한 StarUML 을 사용하게 되었습니다. 


언어는, 프로젝트 카테고리가 C 언어이기 때문에, C 언어를 사용하였고, Windows 개발 환경하에서 개발했기 때문에, 종종 Win32Api 도 사용하였습니다.


IDE 는 Code Blocks 와 Visual Studio 2013 중에 어느 것으로 개발할지 고민하다가, 역시 손에 익은 Visual Studio 2013 Community 를 사용하게 되었습니다.


버전 관리는 GitHub 를 이용하고 있습니다. 아직 Git 이 익숙해지지 않아서, 많이 고생하고는 있지만, 그래도 대세이기 때문에 참고 계속해서 사용해보려고 노력중입니다.

by kkikkodev 2015. 4. 28. 14:27