TetrisForDesktop.zip


이번 시간에는, JAVA 를 가지고 구현한 테트리스에 대해서 설명드리겠습니다. 일단, 실행 파일 (jar 파일) 은 본 게시물의 우측 상단에 압축하여 1 개의 jar 파일 (실행파일) 과 res 폴더로 첨부해드렸습니다. 압축을 풀면 res 폴더안에 테트리스의 배경음악 파일이 담겨져 있습니다. 실행하고자 하신다면, 먼저 본인의 PC 에 JAVA 를 설치하셔야 합니다. JAVA 를 설치하셨다면, jar 파일을 더블 클릭하여 실행하시면 됩니다.


최종 결과물 모습을 동영상으로 확인해 보겠습니다.


[실행 결과]


간단한 테트리스의 모습입니다. 색상 변경이나 추가 기능 없이, 상, 하, 좌, 우, 스페이스 바 사용자 키 입력 처리만을 하는 테트리스의 모습입니다.


[키 조작법]

 키

설명

 ↑

블럭을 90 도 회전하기 

 →

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

 ←

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

 ↓

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

 Space Bar

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


랜덤하게 생성되는 블럭을 키보드 키를 이용하여 조작하고, 아래로 떨어뜨려 한 라인을 지우면서 진행하는 게임입니다. 먼저, 사용자로부터 원하는 시작 속도 레벨을 입력받고, 그 속도 레벨에 따라서 게임이 진행됩니다. 게임 진행시에는, 좌측에는 테트리스 판의 모습이, 우측에는 현재 속도 레벨과 지운 줄 수, 다음 블럭이 표시됩니다.


다음으로, 프로그램 개요에 대해서 알아보겠습니다.


[프로젝트 개요]

프로젝트명

TetrisForDesktop


요구사항

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

한 줄 삭제 기능

다음 블럭 출력 기능

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


기간

2015-07-19 ~ 2015-07-23 (5 일)


운영체제

Windows 7


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

JAVA + SWING


설계

StarUML 2.1.2


IDE

Eclipse for Java Developers (Luna) + WindowsBuilder Plugin


소스 코드 버전 관리

Git (GitHub)


(Source Code Repository 참고)


프로젝트명은, PC 프로그램이기 때문에, TetrisForDesktop 이라고 명명했습니다.


이번 버전의 요구사항은 다음과 같습니다.


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

-> 한 줄 삭제 기능

-> 다음 블럭 출력 기능

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


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


Windows 환경에서 개발을 진행하였고, 프로젝트 설계는 StarUML 을 활용하였습니다.


JAVA 언어를 사용하여 로직을 구현하였고, GUI 는 SWING 컴포넌트들을 이용하였습니다.


IDE 는 Eclipse 를 사용하였고, GUI 는 손쉽게 작성하기 위해서 WindowsBuilder Plugin 을 설치하여 진행하였습니다.


버전관리는 GitHub 에 작업하고 있습니다.


기존에 C 언어로 작업한 테트리스 프로젝트가 있는데, 이번 JAVA 테트리스는 새로 코드를 짜지 않고, C 언어의 ver 0.1 소스코드를 그대로 JAVA 로 포팅하는 작업의 형태로 진행할 예정입니다. C 언어의 코드를 최대한 객체지향적으로 구현했다는 것을 증명하기 위함이기도 하고, 코드를 재사용하는 것이 생산성 향상에 도움이 된다는 것을 보여주기 위함입니다.

by kkikkodev 2015. 7. 24. 00:02