Daybreakin Things

Posted
Filed under 컴퓨터

시험은 시험이지만, 간만에 공들인 프로그램이 하나 나왔기에 적어둔다. Data Structure에서는 Homework와 Programming Project 두 가지로 과제가 나오는데, Homework는 간단한 문제를 푸는 것이고, Programming Project는 하나의 프로그램을 완성하는 것이다. 당연히 프로젝트가 시간이 오래 걸리고 빡세다.

지금까지 3개의 숙제와 2개의 프로젝트가 나왔는데, 두 번째 프로젝트는 SameGame이라는 간단한 게임을 만드는 것이다. 무작위로 3 종류 정도의 공이 배열되어 있으면, 어느 한 공을 클릭했을 때 그 공들과 이어진 다른 공들을 없애고 점수를 얻는 방식이다. 한 열이 다 없어지만 그 열은 오른쪽 공들이 채우고, 공들은 중력이 있는 것처럼 아래로 떨어진다. (애니메이션이 아니라 중간에 공이 없어지만 거길 메꾼다는 뜻)

같은 공끼리 없어지는 거야 뭐 recursion으로 어렵지 않게 구현했는데, 보너스 점수로 나온 additional features-_-... 원래는 조금만 하려고 했었으나 역시 돌돌돌돌 말리면서 결국...

스크린샷
다운로드 (binary only, .exe로 포팅한 것, JVM 1.5 이상 필요)
소스코드 다운로드 (GNU GPL)

대략 빨강, 파랑, 초록 공이 흰 바탕에 fillOval로 그려져 있던 걸 이 수준으로 만들어버렸던 것이다. 마우스 포인터를 움직임에 따라 같은 종류의 공들이 그룹으로 하이라이트되는 것도 구현했다. -_- (이게 가장 노가다였다) 거기다 텍스트 파일에 저장되는 간단한 랭킹과 게임 옵션창도 구현했으며 모두 Swing을 사용한 GUI다.

오랜만에 공들여서 만들었더니 심심풀이로 아주 제격인 게임이 나왔다. (이러다가 시험 기간에 여기에 말리면 곤란) 어쨌든 Java로 만든 것이니, 나중에 기회가 되면 한 번 애플릿으로 포팅해서 웹에 공개해보도록 하겠다. -_-;;