qt/e 를 이용한 오목게임

20
QT/E 를 를를를 를를를를 QT/Embedded, iPop 을 을을을 을을을을 을을을을 을을을을을을을 을을을을을을을 20020933 을을을

Upload: akira

Post on 28-Jan-2016

311 views

Category:

Documents


0 download

DESCRIPTION

QT/E 를 이용한 오목게임. QT/Embedded, iPop 을 이용한 네트워크 오목게임. 금오공과대학교 소프트웨어공학 20020933 이상제. 목차. 개요 구현기능 시스템 구성도 게임흐름도 게임패킷 오목확인 알고리즘 구현 현황 Q&A. 개요. ◎ 임베디드 키트 (iPop 상에서 Qt/Embedded 를 이용하여 간단한 1:1 네트워크 게임 실행. ◎ 간단한 리눅스용 프로그램을 임베디드 키트상에 올려봄으로써 임베디드 기기와 리눅스에 대한 이해. 구현기능. 게임시작 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: QT/E 를 이용한 오목게임

QT/E 를 이용한 오목게임QT/Embedded, iPop 을

이용한네트워크 오목게임

금오공과대학교 소프트웨어공학20020933 이상제

Page 2: QT/E 를 이용한 오목게임

OBSERVER

목차

• 개요• 구현기능• 시스템 구성도• 게임흐름도• 게임패킷• 오목확인 알고리즘• 구현 현황• Q&A

Observer 최종발표2/20

Page 3: QT/E 를 이용한 오목게임

OBSERVER

개요

Observer 제안서3/20

◎ 임베디드 키트 (iPop 상에서 Qt/Embedded 를 이용하여 간단한 1:1 네트워크 게임 실행

◎ 간단한 리눅스용 프로그램을 임베디드 키트상에 올려봄으로써 임베디드 기기와 리눅스에 대한 이해

Page 4: QT/E 를 이용한 오목게임

OBSERVER

구현기능

• 게임시작– Host PC 가 Server, 임베디드 키트가 Client 역할을

하며 상호 연결이 되면 게임 시작

• 승자 판단– 가로 , 세로 , 대각선의 4 방향을 검사하여 바둑돌이

5 개가 연속되어 있으면 승리로 표시– 바둑돌이 6 개 이상 연결되어 있는 경우는 무효처리

• Turn– 자신의 차례가 아니면 클릭 이벤트를 무시

Observer 최종발표4/20

Page 5: QT/E 를 이용한 오목게임

OBSERVER

구현기능

• 무르기 (Undo)– 무르기 신청을 하면 상대편 프로그램에 무르기를 요청– 요청을 받아들이면 최근 한 수를 무르고 다시 시작

• 기권– 기권을 선언하면 상태편의 승리로 게임이 종료

• 종료– 게임이 끝나면 종료버튼으로 프로그램을 종료시킬 수

있음

Observer 최종발표5/20

Page 6: QT/E 를 이용한 오목게임

OBSERVER

시스템 구성도

Observer 최종발표6/20

네트워크

네트워크Embedded Kit(iPop)

Host PC(Linux)

Page 7: QT/E 를 이용한 오목게임

OBSERVER

게임 흐름도

Observer 최종발표7/20

iPop(Client)

Game 패킷Game 적용

Host PC(Server)

Game 패킷Game 적용

네트워크 연결

턴 방식

네트워크 종료

게임종료

Page 8: QT/E 를 이용한 오목게임

OBSERVER

게임 패킷

Observer 최종발표8/20

• A : 기권 선언

• U : 무르기 요청• N : 무르기 거부• Cxy : 무르기 허락 , x,y 는 허락한 쪽의 최근 바둑돌 좌표• Dxy : 무르기를 허락받은 경우 , x,y 는 요청한 쪽의 최근

바둑돌 좌표

• E : 오목확인 알고리즘에 의해 게임이 종료됨을 알림

• Sxy : 일반적인 바둑돌 놓기 , x,y 는 바둑돌의 좌표

Page 9: QT/E 를 이용한 오목게임

OBSERVER

Observer 최종발표9/20

오목확인 알고리즘

BoundCheck함수

int FiveStones::BoundCheck( int x, int y ){ if(x < 0 || x >= 10) return 0; if(y < 0 || y >= 10) return 0; int ch_imgidx=0; if(isBlack == 0){ch_imgidx = 2;} else{ch_imgidx = 3;} if(btnList[x][y]->getIdx() != ch_imgidx) return 0; return 1;}

◎ BoundCheck 함수를 이용하여 8 방향으로 결과값이 1 인동안 반복적으로 더해감◎ 서로 반대방향의 합이 5 가 되면 승리로 판단

Page 10: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표10/11

초기화면

Page 11: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표11/11

네트워크 연결 성공

Page 12: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표12/11

게임화면

Page 13: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표13/11

무르기 신청

Page 14: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표14/11

무르기 허락

Page 15: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표15/11

무르기 허락 ( 결과 )

Page 16: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표16/11

무르기 거부 ( 결과 )

Page 17: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표17/11

기권선언

Page 18: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표18/11

기권결과

Page 19: QT/E 를 이용한 오목게임

OBSERVER

구현현황

Observer 최종발표19/11

승리종료

Page 20: QT/E 를 이용한 오목게임

OBSERVER

Q&A

Observer 최종발표20/20