Transcript NetJanggi

GG조
장재동 김영상 박세준
Outline
Program Name
Network Janggi Game
Program Goal
콘솔환경에서 장기 게임을 구현하여
네트워크 상으로 상대방과 대전하는 프로그램
Network Janggi Game
GG조
장재동 김영상 박세준
팀 명 및 구성원
팀명
GG (Good Game)
팀원
조장 : 장재동(32031522)
조원 : 김영상(32071409)
박세준(32071429)
Network Janggi Game
GG조
장재동 김영상 박세준
Index
1. 프로젝트 목적
2. 팀원소개 및 임무분담
3. 주요 기능
4. 수행방법 및 과정
5. 회의록 및 프로그램 소스
Network Janggi Game
GG조
장재동 김영상 박세준
1. 프로젝트 목적
1)
“네트워크 장기” 게임을 플레이 하여 두뇌계발과 스트레스해소 및
유저간의 친목도모.
2) 본 게임의 개발을 통해 C언어 프로그래밍에 대한 자신감을 얻는다.
3) 자료구조, 알고리즘, 네트워크 등의 지식을 미리 경험하여 전공과목에
대한 관심과 흥미 를 갖는다.
Network Janggi Game
GG조
장재동 김영상 박세준
1. 프로젝트 목적
게임 진행 순서
1.
2.
3.
4.
5.
서버측 먼저 실행 후 클라이언트에서 IP주소 입력하여 접속
한/초 결정(선수결정), 제한시간, 초읽기
게임 시작후 제한시간 가동
제한시간 모두 사용 후 초읽기 가동
장군이 잡혔을경우, 초읽기가 모두 사용되거나 기권, 무승부 요청
승인시 경기 종료
Network Janggi Game
GG조
장재동 김영상 박세준
Index
1. 프로젝트 목적
2. 팀원소개 및 임무분담
3. 주요 기능
4. 수행방법 및 과정
5. 회의록 및 프로그램 소스
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
Project Manager – 장재동(4학년)
담당 임무
1.
2.
3.
팀원들에게 프로젝트에 필요한 기술 교육 및 임무지시
장기프로그램 설계 및 네트워크 설계
전체 코드에 대한 책임 및 프로젝트 통합
팀원 – 김영상(2학년)
장기 알고리즘 분석
- 장기말 이동
- 이동제한
- 먹기
팀원 – 박세준(2학년)
장기 인터페이스 설계
- 효과적인 화면구성
- 게임 인터페이스 제안
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
Project Manager – 장재동(4학년)
교육 내용
1.
구조체와 포인터 사용법
- 구조체와 함수포인터를 사용하여
객체지형 패러다임을 적용하여 설계
2.
Stack과 Queue의 이해
- 이전 기물의 움직임 저장등을 위해
3.
Thread의 이해
- Timer 작동과 Socket Programing에 사용
4.
간단한 Socket Programing
- 패킷을 설계하여 상대방과 통신
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
Project Manager – 장재동(4학년)
장기 프로그램 구조
장기말 구조체 `
장기판에 기물 할당
기물이름 설정
소속 설정
움직임 정의 함수 지정
상대방 기물에 먹혔을시 행동 지정
장기판 배열 `
객체지향 패러다임 적용
모든 기물은 “PIECE”로 정의되면 각각 이름과 소속, 자신이 움직일 수 있는 영역이 정의된
함수를 갖고 BOARD[x][y]->XXXXX; 의 형태로 제어된다.
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
Project Manager – 장재동(4학년)
네트워크
1.
2.
3.
두 컴퓨터 사이에 별도의 서버는 존재하지 않고 어느 쪽도 서버 혹은 클라이언트가
될 수 있으며 상대방의 IP주소를 입력하여 클라이언트가 서버로 접속한다.
두 컴퓨터 사이에 데이터 전송에 필요한 패킷을 설계한다.
대략적인 패킷 설계는 다음 페이지 참조
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
Project Manager – 장재동(4학년)
네트워크 패킷
헤더
데이터
무르기 요청/승낙
무르기 요청에 대한 상대방의 승낙
무승부 요청/승낙
무승부 요청에 대한 상대방의 승낙
기권
기권 메시지를 보내면 상대방이 승리로 표시
채팅 메시지
게임중 채팅창을 선택해 상대방에서 메시지를 보냄
기물 이동
자신의 기물이 이동한 위치를 알려줌
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
김영상(2학년) - 장기 알고리즘 담당
1. 기물이동
-각 기물의 행마법을 연구하여 이동할 수 있는위치 판단
ex) 장 ,사
차
포
마
상
졸
– 앞, 뒤, 대각선 이동 가능하며 궁을 벗어 날 수 없음
- X성분 혹은 Y성분으로만 이동 가능
- 기본적으로 차와 같으며 임의의 기물을 하나 넘어야 이동가능
- (X±2,Y±1) (X±1,Y±2) 의 형태로 이동 가능
- (X±3,Y±1) 의 형태나 (X±1,Y±3) 의 형태로 이동가능
- 앞이나 옆으로 한 칸씩만 이동 가능하며 뒤로 이동 불가
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
김영상(2학년) - 장기 알고리즘 담당
2. 이동제한
1) 각 기물에 맞지 않는 행마법으로 이동시
2) 이동하려는 최종위치에 자기편 기물이 존재시
3) 이동경로에 임의의 기물이 있을시
ex)
차
포
마
상
-
최초위치 (X 혹은 Y성분) 과 최종위치 사이에 다른 기물 존재시
포와 포끼리는 넘을 수 없음
(X±2,Y±1) 로 이동시 (X±1) 위치가 이동경로
(X±3,Y±1) 로 이동시 (X±1), (X±2)가 이동경로
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
김영상(2학년) - 장기 알고리즘 담당
3. 먹기
- 최종위치에 상대방의 기물이 존재할 경우
4. 죽음
- 상대방의 기물에 먹혔을 경우.
5. 장군
- 기물이 이동하기 전이나 이동 후에 매 턴마다 장군 여부 조사
case) 1) 자신의 기물 이동시 상대의 임의의 기물에 자신의 장이 공격받는
경우 -> 이동불가
2) 자신의 기물 이동시 자신의 임의의 기물에 상대방의 장이 공격받는
경우 -> 장군 이벤트 화면 출력
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
박세준(2학년) - 화면 디자인 및 인터페이스
1. 화면 디자인
아이디 및 먹은 기물 표시`
제한시간`
장기판 `
채팅 메시지 출력
채팅 메시지 작성
기능`
Network Janggi Game
GG조
장재동 김영상 박세준
팀원소개 및 역할분담
박세준(2학년) - 화면 디자인 및 인터페이스
2. 인터페이스
1.
2.
3.
4.
기본적으로 상,하,좌,우 키로 이동
기능들에 대한 단축키 지정
장기판, 채팅창, 기능들로의 이동시 TAB키 사용
BOARD 배열과 콘솔 화면과의 인덱스 변환 함수 사용
typedef struct {
int x,y;
} point;
EX) point BoardToArray(point);
point ArrayToBoard(point);
Network Janggi Game
GG조
장재동 김영상 박세준
Index
1. 프로젝트 목적
2. 팀원소개 및 임무분담
3. 주요 기능
4. 수행방법 및 과정
5. 회의록 및 프로그램 소스
Network Janggi Game
GG조
장재동 김영상 박세준
주요 기능
Function Outline
기권
상대방에게 기권 패킷 전송한다. 자신은 패배처리 되면 상대방의 승리.
무승부
승부가 나지 않을 것 같은 경우 상대에게 무승부 패킷을 전송한다.
상대방이 이를 수락하면 게임이 무승부로 처리 된다.
무르기
실수로 잘못 두었을 경우나 더 좋은 다른 수가 있는 경우 상대방에게
무르기 요쳥을 한다. 상대방 승낙시에 한 턴 뒤로 물림.
실시간채팅
제한시간
게임 중 언제든지 상대방에게 하고 싶은 말을 전달한다.
단, 시간은 계속 흐르고 있음에 주의.
최초 정해놓은 자신의 제한시간 모두 사용시 초읽기 모드로 들어가며
초읽기 횟수 초과시 자동으로 패배 처리 된다.
Network Janggi Game
GG조
장재동 김영상 박세준
Index
1. 프로젝트 목적
2. 팀원소개 및 임무분담
3. 주요 기능
4. 수행방법 및 과정
5. 회의록 및 프로그램 소스
Network Janggi Game
GG조
장재동 김영상 박세준
수행방법 및 과정
개발 환경
Windows XP
사용 툴
Microsoft Visual Studio 6.0
Network Janggi Game
GG조
장재동 김영상 박세준
수행방법 및 과정
반복개발 모델 적용
Learning
Design
Coding
Debugging & Beta Test
개발 도중 미흡한 점이나 잘못된 점이 발견되면 언제든지
상위 단계로 올라가 수정한다.
Network Janggi Game
GG조
장재동 김영상 박세준
수행방법 및 과정
개발 스케쥴
Learning
개발에 필요한 지식 습득
2008. 3. 28 ~ 4. 03 (1주차)
구조체와 함수 포인터 사용법 교육
Stack 과 Queue 교육
2008. 4. 04 ~ 4. 10 (2주차)
Thread 에 대한 이해와 사용법 교육
Socket Programing 교육
Network Janggi Game
GG조
장재동 김영상 박세준
수행방법 및 과정
개발 스케쥴
Design
프로젝트 설계
2008. 4. 11 ~ 4. 18 (3주차)
장기 프로그램 구조 설계
네트워크 설계
2008. 4. 19 ~ 4. 25 (4주차)
중간고사
Network Janggi Game
GG조
장재동 김영상 박세준
수행방법 및 과정
개발 스케쥴
프로젝트 구현 단계
Coding
2008. 4. 26 ~ 5. 01 (5주차)
2008. 5. 02 ~ 5. 08 (6주차)
인터페이스 구현
1.
2.
3.
기물의 배치 , 창 사이의 이동, QuestionBox 구현
각 대상에 선택되었을때 그래픽 구현
내부 알고리즘이 빠진 상태에서 외형 구현 완료
내부 알고리즘 구현시작
1.
2.
각 기물 행마법에 따른 이동 기능 구현
위 1번에 따른 이동 제한기능 구현
Network Janggi Game
GG조
장재동 김영상 박세준
수행방법 및 과정
개발 스케쥴
프로젝트 구현 단계
Coding
2008. 5. 09 ~ 5. 15 (7주차)
내부 알고리즘 구현 (계속)
3.
4.
기물 먹기, 죽음 기능 구현
장군이벤트 발생 알고리즘 및 그래픽 구현
내부 알고리즘 구현 (계속)
2008. 5. 16 ~ 5. 22 (8주차)
5.
6.
무르기, 기권, 무승부 구현
시간 제한 기능 구현
Network Janggi Game
GG조
장재동 김영상 박세준
수행방법 및 과정
개발 스케쥴
프로젝트 구현 단계
Coding
네트워크 구현
2008. 5. 16 ~ 5. 22 (9주차)
1.
2.
2008. 5. 23 ~ 5. 29 (10주차)
접속 설정
패킷 Send 및 Receive 기능 구현
네트워크 구현 (계속)
1.
실시간 채팅 기능 구현
Network Janggi Game
GG조
장재동 김영상 박세준
수행방법 및 과정
개발 스케쥴
프로젝트 통합 및 테스트 단계
Debugging & Beta Test
2008. 5. 30 ~ 6. 05 (11주차)
프로젝트 통합
1.
2.
프로젝트 통합 및 테스트
주변에 배포하여 테스트 실시
완료 및 발표
Network Janggi Game
GG조
장재동 김영상 박세준
데모
데모 시연
Network Janggi Game
GG조
장재동 김영상 박세준
Index
1. 프로젝트 목적
2. 팀원소개 및 임무분담
3. 주요 기능
4. 수행방법 및 과정
5. 회의록 및 프로그램 소스
Network Janggi Game