+ All Categories
Home > Documents > Java Project 결과 보고서 - lunastar.tistory.com · 6. 유저는 1~5번 과정을...

Java Project 결과 보고서 - lunastar.tistory.com · 6. 유저는 1~5번 과정을...

Date post: 01-Sep-2019
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
29
Java Project 결과 보고서 Java Project 결과 보고서 - 모노폴리 게임 제작- 주간 08/ 06/ 11 20021155 장희균 20061046 이유리 금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 1
Transcript

Java Project 결과 보고서

Java Project

결과 보고서

- 모노폴리 게임 제작-

주간 08/ 06/ 11

20021155 장희균

20061046 이유리

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 1

Java Project 결과 보고서

목차

1. 과제 개요

2. 요구사항

2.1 기능 요구 사항

2.2 비기능 요구 사항

3. Use Case

3.1 Use Case Diagram

3.2 Use Case 명세서

3.3 기능 요구 사항과 유스케이스 연관

4. Class Diagram & System Sequence Diagram

4.1 Class Diagram & Class 상세 설명

4.2 System Sequence Diagram

5. 구현 특이 사항

6. 과제 수행 일지

7. 용어 정리

8. 팀원 역할 분담 내역 및 기여도

9. Discussion

10. 개정 이력

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 2

Java Project 결과 보고서

1. 과제 개요

자바 프로그래밍 수업 시간에 들은 내용을 이용하여 자바로 간단한 프로그램을 제작한다.

과제 주제는 멀티 플레이가 가능한 모노폴리 게임을 제작한다.

모노폴리 게임 소개

모노폴리 게임은 전 세계적으로 널리 알려진 보드 게임으로 우리에게는 부르마블로 알려져 있다.

주사위를 던져서 보드 내 해당 지역으로 이동하고 빈 지역인 경우 땅을 매입, 건물 건설등을 통

해 게임 상의 돈을 다른 유저들 보다 많이 획득하는 것이 목표인 게임이다.

비교적 간단한 룰을 가지고 있는 모노폴리 게임 제작을 자바로 해 보면서 수업 시간에

배운 내용을 다시 한 번 학습하고 유스케이스 및 UML 등을 사용하여 소프트웨어 공학

론에 입각하여 프로그램을 설계하는 능력을 배양한다.

서비스 개요

네트워크를 통해 연결된 컴퓨터를 이용하여 최대 4명의 유저들이 모노폴리 게임

을 진행한다.

게임 중 유저들 간 서로 대화 및 메시지를 전달 할 수 있다.

모노폴리 게임 내 진행 중 부가적인 이벤트를 추가 한다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 3

Java Project 결과 보고서

2. 요구사항

모노폴리 네트워크 게임 진행에 있어서 관련된 기능 및 비기능 요구 사항

2.1 기능 요구 사항

기능 요구 사항

서버 접속 유저는 네트워크를 통해 모노폴리 게임 서버에 접속 할 수 있다.

로그인 유저는 개인 대화명으로 모노폴리 게임 서버 입장 할 수 있다.

대화명이 없는 경우 유저는 모노폴리 게임 서버에 입장 할 수 없

다.

메시지 송수신

유저는 대화창을 통해 같은 게임방에 있는 다른 유저와 메시지를

서로 전달 할 수 있다.

게임 진행 같은 게임방에 2명 이상 유저가 있으면 모노폴리 게임을 진행 할

수 있다.

게임 퇴장 유저는 게임이 끝이 나면 게임에서 퇴장 할 수 있다.

유저는 게임에서 파산하는 경우 게임 종료 시 까지 대기 한다.

관리 각 유저는 자신의 클라이언트를 종료 할 수 있다.

기타 프로그램 경고 메시지는 각 유저에게 전달된다.

2.2 비기능 요구 사항

비기능 요구 사항

게임 인원 제한 한 게임 최대 인원은 4명이다.

게임방 개설 제한 개설 할 수 있는 게임 방은 최대 8개이다.

메시지 표현 제한 메시지는 발생 후 최대 1초 이내에 다른 대화자들이 볼 수 있어야

한다.

유저명 규칙 유저명은 3글자 이상 10글자 이하의 연속적인 영문자, 한글, 숫자

들의 열로 구성되어 있어야 한다.

게임 진행 규칙 모노폴리 게임의 기본 규칙을 준수한다.

게임 유저는 자신의 턴에서 주사위를 던져 말을 이동한다.

말이 이동한 지역이 소유자가 없는 경우 그 곳을 매입 할 수 있

다.

말이 이동한 지역이 소유자가 있는 경우 해당 지역에 따른 통과료

를 소유자에게 지불해야 한다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 4

Java Project 결과 보고서

통과료 지불 규칙: 땅값의 50% * 땅의 레벨 값

말이 이동한 지역이 자신의 소유 지역인 경우 그 곳에 건물을 건

설 할 수 있다. (레벨 업 시스템)

말이 이동한 지역이 특별 지역인 경우 해당 지역에 따른 이벤트를

진행해야 한다.

유저의 돈이 마이너스 또는 0원이 되었을 경우 파산으로 판단하여

더 이상 게임에 참가하지 못한다.

게임 돈으로 10억을 가장 먼저 달성한 유저가 최종 승자가 된다.

다른 유저가 모두 파산한 경우 최종 승자가 된다.

3. Use Case

3.1 Use Case Diagram

유저

모노폴리 게임 접속

모노폴리 게임 진행

이벤트 처리

메시지 매니저

시스템

*

*

*

*

*

*

*

* **

*

*

*

*

*

*

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 5

Java Project 결과 보고서

3.2 Use Case 명세서

각 유스케이스 명세서는 완전 명세 형식으로 작성 되었음을 알린다.

유스케이스 UC1: 모노폴리 게임 접속

범위: 모노폴리 게임 애플리케이션

수준: 사용자 목적

주요 액터: 유저

관련자 및 관심사항

- 유저: 모노폴리 게임 서버에 접속하기를 원한다.

- 시스템: 시스템은 유저가 정상적으로 게임에 접속하기를 원한다.

사전조건:

유저는 각각 식별이 되고 인증이 된다.

시스템은 아무 문제 없이 작동 중이어야 한다.

성공보증 (사후조건):

시스템은 서버에 접속한 유저의 기록을 서버 상태 창을 통해서 보여준다.

유저는 모노폴리 게임 서버에 접속한다.

주요 성공 시나리오 (기본 흐름):

1. 유저는 사용자 이름을 입력한다. (사용자 이름은 3~10자까지 가능하다.)

2. 유저는 접속할 게임방 번호를 입력한다. (게임방 번호는 1~8번까지 가능하다.)

3. 유저는 모노폴리 게임 서버 접속을 요청한다.

4. 유저는 게임 시작 전 게임방에 입장하여 방에 있는 다른 유저들과 메시지를 교환 할 수 있다.

다른 유저 역시 1~4단계를 반복하여 수행한다.

확장 (대안 흐름)

A. 유저가 사용자 이름을 입력하지 않은 경우

A.1. 시스템은 유저에게 사용자 이름 입력을 다시 요구한다.

A.2. 유저가 사용자 이름을 올바르지 않은 형식으로 입력하는 경우

A.2.1. 시스템은 유저에게 사용자 이름이 올바르지 않은 형식이라고 알려주고 재 입력을 요구

한다.

B. 유저가 접속할 게임방 번호를 입력하지 않은 경우

B.1. 시스템은 유저에게 게임방 번호 입력을 다시 요구한다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 6

Java Project 결과 보고서

B.2. 유저가 사용자 이름을 올바르지 않은 형식으로 입력하는 경우

B.2.1 시스템은 유저에게 게임방 번호가 올바르지 않다고 알려주고 재 입력을 요구한다.

C. 유저의 서버 접속 요청이 수락되지 않은 경우

C.1. 유저는 다시 서버에 접속을 요청한다.

C.2. 시스템은 재접속 요청 후 접속이 실패한 경우 실패 상황을 유저에게 통지한다.

D. 유저와 서버가 서로 연결이 끊어진 경우

D.1. 시스템은 유저에게 서버와 연결이 끊어진 사실을 알려준다.

특수 요구사항: 없음

유스케이스 UC2: 모노폴리 게임 진행

범위: 모노폴리 게임 애플리케이션

수준: 사용자 목적

주요 액터: 유저

관련자 및 관심사항

- 유저: 게임에 접속하여 다른 유저와 모노폴리 게임을 진행하기를 원한다.

- 모노폴리 게임의 결과를 알고 싶어 한다.

- 시스템: 유저가 정상적으로 게임을 진행하기를 원한다.

- 유저에게 모노폴리 게임의 결과를 알려주기를 원한다.

사전조건:

유저는 정상적으로 게임방에 접속할 수 있다.

시스템은 정상적으로 작동 중이다.

한 게임에 접속한 유저가 최소 2명 이상 있다.

게임이 이미 시작된 경우 해당 게임방에는 접속 할 수 없다.

성공보증 (사후조건):

모노폴리 게임을 정상적으로 진행한다.

게임의 결과를 유저에게 알려준다. (승리, 패배)

주요 성공 시나리오 (기본 흐름)

1. 유저는 게임방에 접속 한다.

2. 유저는 게임방 내 유저가 2명 이상인 경우 모노폴리 게임을 시작할 수 있다.

3. 유저는 모노폴리 게임을 진행 한다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 7

Java Project 결과 보고서

3.1. 유저는 주사위를 던진다.

3.2. 유저는 주사위의 수만큼 보드에서 이동을 한다.

3.2.1. 유저는 이동한 지역이 소유주가 없는 경우면 그 곳을 구입 할 수 있다.

3.2.2. 유저는 이동한 지역이 소유주가 있는 경우면 일정 통행료를 지불해야 한다.

3.2.3. 유저는 이동한 지역이 자신의 소유 지역인 경우 그 곳을 레벨업 할 수 있다.

3.2.4. 유저는 이동한 지역이 특별 지역인 경우 지역에 따른 이벤트를 수행 해야 한다.

4. 유저의 자산이 0 또는 마이너스가 되는 경우 더 이상 게임에 참여 할 수 없고, 게임이 끝나기

전까지 대기 한다.

5. 유저는 게임의 최종 결과를 통보 받는다.

6. 유저는 1~5번 과정을 반복하면서 진행 할 수 있다.

확장 (대안 흐름)

A. 유저가 게임방 접속에 실패 한 경우

A.1. 시스템은 게임방의 사람이 가득 찼는지 확인한다. (최대 4명)

A.1.1. 시스템은 게임방에 사람이 4명이상 있는 경우 입장이 불가능 하다는 것을 유저에게 알

린다.

A.2. 시스템은 게임방에 사람이 없는 경우 게임방 접속을 다시 시도한다.

A.2.1. 시스템은 다시 시도 후 접속에 실패 한 경우 이 사실을 유저에게 알린다.

A.3. 시스템은 이미 게임이 시작된 경우 게임이 시작 되어서 게임방에 접속 할 수 없다는 사실

을 유저에게 알린다.

B. 유저가 주사위를 던지지 않는 경우

B.1. 시스템은 일정시간 동안 유저가 주사위를 던지지 않는 경우 자동적으로 주사위 던지기를

실행한다.

C. 유저가 일정시간 동안 게임을 수행 하지 않는 경우

C.1. 시스템은 일정시간 대기 후 자동으로 명령을 실행한다.

특수 요구사항: 없음

유스케이스 UC3: 이벤트 처리

범위: 모노폴리 게임 애플리케이션

수준: 사용자 목적

주요 액터: 시스템

관련자 및 관심사항

- 유저: 시스템에게 이벤트 상황을 부여 받기를 원한다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 8

Java Project 결과 보고서

- 시스템: 유저에게 이벤트 상황을 알리고 수행한다.

사전조건:

유저는 정상적으로 게임을 진행 중이다.

시스템은 정상적으로 작동 중이다.

이벤트는 정상적으로 발생한다.

성공보증 (사후조건):

유저에게 발생한 이벤트를 통보한다.

유저는 해당 이벤트를 수행하고 시스템은 이벤트 결과를 유저에게 알려준다.

주요 성공 시나리오 (기본 흐름)

1. 유저가 보드 위 특정 이벤트 발생 위치로 이동한다.

2. 해당 보드에 있는 특정 이벤트가 발생한다.

3. 시스템은 유저에게 특정 이벤트가 발생 하였음을 알려준다.

4. 유저는 이벤트를 수행한다.

5. 시스템은 유저에게 이벤트 수행에 대한 결과를 알려준다.

확장 (대안 흐름)

A. 유저가 이벤트 발생 후 수행 여부를 결정 하지 않는 경우

A.1. 시스템은 일정 시간 대기 후 유저가 결정 하지 않으면 강제적으로 이벤트를 실행한다.

특수 요구사항: 없음

유스케이스 UC4: 메시지 매니저

범위: 모노폴리 게임 애플리케이션

수준: 사용자 목적

주요 액터: 시스템

관련자 및 관심사항

- 시스템: 유저에게 메시지를 전달하기를 원한다.

- 시스템 내부에 메시지를 전달하기를 원한다.

- 유저: 다른 유저에게 메시지를 전달하기를 원한다.

- 다른 유저에게 메시지를 전달 받기를 원한다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 9

Java Project 결과 보고서

사전조건:

유저는 정상적으로 서버에 접속해 있다.

시스템은 정상적으로 작동 중이다.

메시지는 오류 없이 정상적이다.

성공보증 (사후조건):

유저는 다른 유저의 메시지를 전달 받는다.

유저는 다른 유저에게 메시지를 전달 한다.

시스템은 내부 정의 메시지를 정상적으로 전달 하고 전달 받는다.

주요 성공 시나리오 (기본 흐름)

1. 시스템은 유저가 대화창에 입력한 메시지를 다른 유저에게 전달한다.

2. 시스템은 시스템 내부 정의 메시지를 서버로 전달한다.

3. 시스템은 시스템 내부 정의 메시지를 클라이언트로 전달한다.

4. 유저는 대화창을 통해서 원하는 메시지를 전달 또는 전달 받는다.

확장 (대안 흐름)

A. 시스템은 정의된 메시지가 아닌 경우 이를 무시한다.

B. 비정상적인 경우가 발생할 때 오류 메시지를 출력한다.

특수 요구사항: 없음

3.3 기능 요구 사항과 유스 케이스 연관

기능요구 모노폴리 게임 접속 모노폴리 게임 진행 이벤트 처리 메시지 매니저

서버 접속 서버 접속

로그인 로그인

메시지 송수신 메시지 송수신

게임 진행 게임 진행 게임 진행

게임 퇴장 게임 퇴장 게임 퇴장

관리 관리

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 10

Java Project 결과 보고서

4. Class Diagram & System Sequence Diagram

4.1 Class Diagram & 클래스 상세 설명

Sever 부분

Monopoly_server

개요

모노폴리 게임 서버를 실행하는 클래스로 서버에 관련된 설정 및 서버를 시작하는 클래스이다.

그리고 각 클라이언트에게 연결 되는 Thread를 생성한다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 11

Java Project 결과 보고서

역할

모노폴리 게임 서버를 설정한다.

모노폴리 게임 서버를 시작한다.

클라이언트를 위한 Client_Thread를 생성한다.

주요 메소드

SetUser(int roomn): 새로운 유저 로그인시 동일 게임방에 유저 추가

run(): 서버를 실행하는 method. 클라이언트를 위한 thread생성

Bmanger

개요

유저간 시스템 내의 약속된 메시지를 전달해 주는 클래스이다.

역할

유저간의 메시지를 전달한다.

시스템 내 정의된 메시지를 전달한다.

주요 메소드

sendTo(int i, String msg): 지정된 클라이언트(특정 유저)에게 메시지를 전달

sendToRoom(int roomNum, String msg): 지정된 게임방에 메시지를 전달

sendToOthers(Monopoly_server.Client_Thread mt, String msg): 같은 방에 있는 다른 사용자에

게 메시지를 전달

Client_Thread

개요

개별 클라이언트와 통신을 하는 Thread 클래스이다. 개별 접속하는 유저마다 하나의 Thread 클래

스가 생성 된다.

역할

서버와 클라이언트와 통신 역할을 담당한다.

주요 메소드

getSocket(): 연결된 클라이언트 소켓을 반환

getRoomNumber(): 클라이언트와 연결된 게임 방 번호 반환

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 12

Java Project 결과 보고서

run(): Thread 실행

Send(String msg): 클라이언트에게 메시지를 전송 함

ServerView

개요

서버소켓 생성 및 클라이언트의 연결상태와 접속자 수를 보여주는 클래스

역할

클라이언트의 접속 상태를 보여준다.

주요 메소드

AddMsg(String msg): 전달받은 메시지를 TextField에 보여준다.

Client 부분

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 13

Java Project 결과 보고서

MonoPoly_Client

개요

유저의 입력을 서버에 전달하고 서버로부터 온 메시지를 사용자에게 출력하고, 클라이언트 프로

그램 제어에 관련된 기능을 제공하는 클래스이다.

역할

서버로부터 전달되는 메시지를 사용자에게 출력한다.

사용자의 입력을 서버에 전달한다.

클라이언트 어플리케이션을 제어한다.

주요 메소드

InitGameBoard(): 모노폴리 게임보드 준비 단계, 이미지 불러오기

Send(String msg): 서버에게 메시지 전달

Run(): thread 실행

getUserName(int num): 유저의 이름 반환

Gameview

개요

모노폴리 게임을 진행하는 클래스로 진행 중인 게임 정보 및 각 필드에 대한 정보를 가지고 있다.

역할

모노폴리 게임을 진행한다.

게임 진행상황을 유저에게 보여준다.

주요 메소드

actionPerformed(ActionEvent e): 게임 진행을 위한 Action 이벤트 처리

Checkchance(): 유저가 특정 보드 위에서 발생하는 이벤트에 해당하는 경우 이벤트 진행

checkGround(): 보드의 유저가 현재 위치한 땅 용도 확인 후 이벤트를 수행

checkOver(): 유저의 게임 생존 여부를 확인

NewStart(): 새로운 게임 시작 시 모든 변수 및 타이머들 초기화

supportMoney(): 유저가 보유한 땅값의 10%만큼 유저에게 지원금을 지급

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 14

Java Project 결과 보고서

CImgText

개요

이미지위에 글자 스트링 및 숫자를 보여주기 위해 사용되는 클래스이다.

역할

이미지 위에 글자 쓰기를 담당한다.

주요 메소드

DrawString(Frame f, Graphics g, String str,int x,int y): 숫자, 지원금표시, 유저이름 등 변경된

String을 이미지 위에 그려줌

MenuView

개요

게임 진행상에 전달 되는 정보 및 유저의 메시지를 보여주는 클래스

역할

게임 진행 정보를 보여준다.

동일 게임방의 같은 유저가 전달한 메시지를 보여준다.

주요 메소드

AddMsg(String msg): 전달받은 메시지를 TextField에 보여준다.

SunAudioClip

개요

오디오를 재생하는 클래스이다.

역할

오디오(음악)를 재생한다.

주요 메소드

play(): 음악 사운드를 재생한다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 15

Java Project 결과 보고서

4.2 System Sequence Diagram (SSD)

유스케이스 UC1: 모노폴리 게임 접속 System Sequence Diagram

loop

User System

inputUserName()

checkUserName

inputRoomNumber()

checkRoomNumber

connectServer()

replySystem

enterRoom()

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 16

Java Project 결과 보고서

유스케이스 UC2: 모노폴리 게임 진행

loop

User System

initBoard()

isPlay()

ansPlay

clickDice()

diceValue

moveUser()

checkGround()

checkOver()

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 17

Java Project 결과 보고서

유스케이스 UC3: 이벤트 처리

SystemUser

checkGround()

noticeEvent

checkChance()

eventResult

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 18

Java Project 결과 보고서

유스케이스 UC4: 메시지 매니저

loop

User System

sendTo()

sendToOthers()

sendToRoom()

isCount()

Count

sendMessage

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 19

Java Project 결과 보고서

5. 구현 특이 사항 최대 4명이서 함께 모노폴리 게임을 진행

최대 8개 게임방을 개설하여 게임을 진행

(전체 32명의 유저가 서버에 접속)

각 클라이언트 프로그램에서는 게임 중 게임 진행 정보 및 유저 간 메시지를 독

립적인 창에서 확인 가능

서버 프로그램에서 접속한 클라이언트 정보 및 인원 수 정보를 화면을 통해 확

인 가능

다양한 이미지를 사용한 비주얼 적인 User Interface

Animation을 사용하여 게임성을 향상

효과음 사용을 통해 게임성 향상

기존 모노폴리에서 새로운 이벤트를 추가하여 게임성을 향상

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 20

Java Project 결과 보고서

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 21

Java Project 결과 보고서

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 22

Java Project 결과 보고서

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 23

Java Project 결과 보고서

6. 과제 수행 일지

과제 수행 일지

제목 모노폴리 서버 제작 작성일자 2008. 5.23

작성자 장희균, 이유리

과제 수행 내용 모노폴리 서버 프로그램 클래스 설계

클래스 메소드 설계

서버 프로그램 UI 디자인 설계

참고 모노폴리 프로그램 서버 분석 및 참고 오목 프로그램 서버

분석 비교

추후 진행 사항 서버 프로그램 클래스 설계 완료

필요 메소드 부분 설계 완료

서버 프로그램 UI 설계 완료

과제 수행 일지

제목 모노폴리 서버 제작 작성일자 2008. 5.24

작성자 장희균, 이유리

과제 수행 내용 서버 프로그램 클래스 설계 완료

클래스 메소드 제작

서버 스윙 UI 제작 완료

추후 진행 사항 서버 프로그램 클래스 메소드 제작

모노폴리 클라이언트 클래스 설계

기존 모노폴리 클라이언트 부분 분석

서버, 클라이언트 메시지 프로토콜 정의

메소드 단위 테스트 진행

과제 수행 일지

제목 모노폴리 서버 제작 작성일자 2008. 5.30

작성자 장희균, 이유리

과제 수행 내용 서버 프로그램 제작 완료

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 24

Java Project 결과 보고서

서버, 클라이언트 메시지 프로토콜 정의

모노폴리 클라이언트 클래스 설계

메소드 단위 테스트 진행

추후 진행 사항 기존 모노폴리 클라이언트 부분 분석

클라이언트 필요 메소드 정의

메소드 단위 테스트 진행

서버, 클라이언트 메시지 프로토콜 정의

과제 수행 일지

제목 모노폴리 클라이언트

제작

작성일자 2008. 5.31

작성자 장희균, 이유리

과제 수행 내용 모노폴리 클라이언트 클래스 제작

모노폴리 클라이언트 클래스 메소드 제작

모노폴리 클라이언트 뷰 UI 제작

기존 모노폴리 클라이언트 분석

서버, 클라이언트 메시지 프로토콜 정의 완료

메소드 단위 테스트 진행

추후 진행 사항 모노폴리 클라이언트 클래스 제작

모노폴리 클라이언트 클래스 메소드 제작

모노폴리 클라이언트 뷰 UI 제작

기존 모노폴리 클라이언트 분석

메소드 단위 테스트 진행

과제 수행 일지

제목 모노폴리 클라이언트

제작

작성일자 2008. 6.5

작성자 장희균, 이유리

과제 수행 내용 모노폴리 클라이언트 클래스 제작

모노폴리 클라이언트 클래스 메소드 제작

모노폴리 클라이언트 뷰 UI 제작

메소드 단위 테스트 진행

기존 모노폴리 클라이언트 분석

새로운 이벤트 추가 기획

서버, 클라이언트 통신 상의 문제점 발견

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 25

Java Project 결과 보고서

추후 진행 사항 서버 부분 재 설계

서버, 클라이언트 메시지 프로토콜 재정의

메소드 단위 테스트 진행

과제 수행 일지

제목 모노폴리 서버 수정,

클라이언트 제작

작성일자 2008. 6.6

작성자 장희균, 이유리

과제 수행 내용 기존 방식의 문제점 발견

모노폴리 서버 클래스 및 설계 수정

서버, 클라이언트 메시지 프로토콜 재정의

메소드 단위 테스트 진행

추후 진행 사항 전반적인 프로그램 설계 부분 재 검토

필요 부분 재 수정 및 재 설계

메소드 단위 테스트 진행

과제 수행 일지

제목 모노폴리 클라이언트

제작

작성일자 2008. 6.9

작성자 장희균, 이유리

과제 수행 내용 서버 프로그램 제작

클라이언트 프로그램 함수 부분 제작

클라이언트 프로그램을 위한 새로운 이미지 파일 및 에니메이션

파일 제작

메소드 단위 테스트 진행

추후 진행 사항 클라이언트 프로그램 제작 및 테스트

과제 수행 일지

제목 모노폴리 클라이언트

제작

작성일자 2008. 6.10

작성자 장희균, 이유리

과제 수행 내용 최종 프로그램 테스트 및 이미지 파일 제작

추후 진행 사항 프로그램 테스트

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 26

Java Project 결과 보고서

7. 용어 정리

용어 용어 설명

대기실 서버에 접속한 유저가 게임에 들어가기전 대기 하는 공간

대기실에 접속한 유저는 서로 메시지를 전달 할 수 있으며 각 유저는 대화명으

로 구분 된다.

게임방 모노폴리 게임에 참가하는 유저들이 있는 공간으로 한 게임방에는 최대 4명의

인원이 입장 할 수 있다.

게임이 시작된 게임방에는 입장 할 수 없다.

각 유저는 대화명으로 구분 된다.

메시지 대화나 서버에 대한 명령등을 담은 데이터

메시지 매니저는 이러한 메시지를 관리, 전달하는 역할을 담당한다.

정의 되어 있지 않은 메시지는 시스템에서 무시한다.

이벤트 보드 위 특정 필드에 위치 하였을 때 발생하는 이벤트

이벤트는 유저의 선택에 따라 실행 유무를 결정할 수 있다.

소유주 현재 위치 한 필드를 소유하고 있는 유저

통행료 다른 유저의 필드를 통과하는 때 지불하는 비용

8. 팀원 역할 분담 내역 및 기여도

팀원 역할 분담 내역 기여도

장희균 기존 프로그램 분석

모노폴리 서버 클래스 메소드 설계 및 구현

모노폴리 클라이언트 클래스 메소드 설계 밎 구현

결과 보고서 작성 및 수행 일지 작성

55%

이유리 기존 프로그램 분석

모노폴리 서버 클래스 메소드 설계 및 구현

모노폴리 클라이언트 클래스 메소드 설계 및 구현

결과 보고서 작성 및 수행 일지 작성

45%

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 27

Java Project 결과 보고서

9. Discussion

최초 윷놀이에서 모노폴리 게임으로 변경한 다음 여러 곳에서 검색한 결과 상당히 잘 구성된 모

노폴리 게임을 찾을 수 있었습니다.

다양한 에니메이션과 이미지 및 기본적인 사운드 사용을 하고 있어서 선택하기에 부담감도 많았

습니다. 이미 어느정도 구현이 잘 되어 있는 프로그램이였기 때문입니다.

하지만 잘 구성 되어있는 프로그램에서 좀 더 잘 만들어 보자는 생각을 가지고 이번 프로젝트를

구현 하였습니다.

(기존 프로그램 제작자에게 메일 보내어 양해를 구하고 사용해도 좋다는 답변을 받았습니다.)

기존 프로그램에서 아쉬운 점은 서버 부분이였습니다. 일단 클라이언트가 접속하면 유저의 선택

권 없이 무조건 한 게임방에 입장하여 최대 4명이 모노폴리 게임을 진행하는 방법이였습니다.

즉 유저간에 채팅 및 방 정보 등 서버 부분을 가장 큰 개선 사항으로 타겟을 잡고 작업하였습니

다. 그리고 부족한 이미지 효과 및 에니메이션 추가, 끝으로 게임 진행에 있어서 좀 더 다양한 이

벤트를 추가하는 것을 목표로 잡았습니다.

구현상 몇 번 큰 어려움에 직면하였는데 정확한 Thread 사용 및 동기화, 이벤트 처리에 대한 학

습이 부족해서 많은 시간을 소비하게 되었습니다. 또한 프로젝트 설계 부분에 있어서도 미숙한

점이 있어서 처음부터 다시 구상을 하고 진행 하였습니다.

프로젝트 범위 및 난이도를 높은 것을 진행하다 보니 시간이 부족한 점이 있어서 아직 숨겨져 있

는 몇몇 문제점들을 완전히 해결하지 못하고 제출한 점 정말 죄송하게 생각합니다.

하지만 이번 자바 모노폴리 게임제작 프로젝트를 진행하면서 자바 Thread 사용 및 이벤트 처리

그리고 UI 설계, 게임 에니메이션 및 이미지 사용등 많은 부분에 있어서 좋은 점들을 배울 수 있

었습니다.

추가적으로 기회가 된다면 좀 더 발전시켜서 좀 더 안정적인 모노폴리 게임으로 만들고 싶은 생

각 있습니다.

끝으로 지금까지 열정적으로 자바 수업을 해주신 교수님께 감사의 인사를 드립니다.

한 학기동안 정말 수고 하셨습니다.

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 28

Java Project 결과 보고서

금오공과대학교 컴퓨터공학 장희균, 이유리 페이지 29

10. 개정 이력

버전 일자 설명 저자

Inception 초안 2008. 5. 16 최초 버전. 필요에 따라 지속적인 수

정 및 정제 작업 필요

장희균

이유리

Elaboration 2008. 5. 20 기능 및 비기능 요구사항 변경

유스케이스 수정

장희균

이유리

Construction 2008. 5. 23 과제 수행 일지 작성 장희균

이유리

Construction 2008. 5. 24 과제 수행 일지 작성 장희균

이유리

Construction 2008. 5. 30 과제 수행 일지 작성 장희균

이유리

Construction 2008. 5. 31 과제 수행 일지 작성 장희균

이유리

Construction 2008. 6. 5 과제 수행 일지 작성 장희균

이유리

Construction 2008. 6. 6 과제 수행 일지 작성 장희균

이유리

Construction 2008. 6. 9 과제 수행 일지 작성 장희균

이유리

Construction 2008. 6. 10 과제 수행 일지 작성 장희균

이유리


Recommended