BLOG ARTICLE 소스 | 1 ARTICLE FOUND

  1. 2009.11.04 오목 삼국지 소스


간단한 턴기반의 오목 게임입니다.

게임 규칙이나, 그래픽은 단순하지만...
게임 구조나 기능적인 측면에서 완성도를 높이려고 노력했습니다.

턴기반의 게임을 개발할 때는 좋은 참고서가 될 것이라 믿습니다.

게임의 아이디어 및 그래픽을 제공해주시고,
소스 공개에도 흔쾌히 동의해 주신 백정훈(*jbaeg)님께 감사드립니다.


게임의 규칙

2인으로 오목을 두고, 3인으로 칠목을 두는 게임입니다.

오목의 규칙은 잘 아실 것이라 믿고,
칠목의 규칙은 다음과 같습니다.

칠목은 3명의 사람이 자신의 돌을 오목판에 두어,
가로, 세로, 대각선으로 연속 7개를 늘여놓으면 이기는 게임입니다.

단, 자신의 돌 뿐만 아니라 상대방 1명의 돌을 자신의 것으로
간주하고선 7개를 늘여놓을 수 있습니다.

O 모양 돌을 두는 사람은 X 모양 돌을 자신의 돌로 간주할 수 있습니다.
X 모양 돌을 두는 사람은 V 모양 돌을 자신의 돌로 간주할 수 있습니다.
V 모양 돌을 두는 사람은 O 모양 돌을 자신의 돌로 간주할 수 있습니다.


소스의 설명 

여기에 구현된 특징들을 나열하면 다음과 같습니다.

1. 서버에서 게임의 턴과 게임 진행 시간을 관리하고 있고,
2인이 오목을 두고 있는 상황에 입장하더라도 게임 진행 상황을 알 수있도록
하였습니다.

2. 완벽하게 테스트된 상황은 아니지만, 매일 매일 새롭게 초기화 되는 랭킹시스템도
구현되어 있습니다.

3. 아울러, 게임방이 여러개 생성되어서
동시에 랭킹이 갱신되는 경우에 랭킹 데이터가 날라가지 않도록
안전하게 저장되도록 구현되어 있습니다.

4. Clone() 이미지를 Pool 로 관리해서 재활용하도록 하여,
오랫동안 게임을 진행하더라도 성능에 문제가 없도록 처리하고 있습니다.

5. 서버와 클라이언트간의 큰 데이터는 문자열로 처리해서 주고 받도록
최적화되어 있습니다.

6. 게임오븐의 Design 을 사용하지 않고, 순수하게 API 만을 이용해서
게임 화면을 구성하도록 처리하고 있습니다.

7. 음악, 사운드 ON/OFF 설정을 개인 정보에 저장하여, 다른 방에 입장하더라도
게임 설정때문에 번거로운 현상을 없앴습니다.

8. 어뷰징을 방지하기 위해서 점수 계산을 합리화 했습니다.


전체적으로 프로그램 3일 + 그래픽 및 사운드 등의 마무리 작업에 4일정도 걸렸습니다.


저작자 표시
신고

티스토리 툴바