QT/E 를 이용한 오목게임
description
Transcript of QT/E 를 이용한 오목게임
![Page 1: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/1.jpg)
QT/E 를 이용한 오목게임QT/Embedded, iPop 을
이용한네트워크 오목게임
금오공과대학교 소프트웨어공학20020933 이상제
![Page 2: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/2.jpg)
OBSERVER
목차
• 개요• 구현기능• 시스템 구성도• 게임흐름도• 게임패킷• 오목확인 알고리즘• 구현 현황• Q&A
Observer 최종발표2/20
![Page 3: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/3.jpg)
OBSERVER
개요
Observer 제안서3/20
◎ 임베디드 키트 (iPop 상에서 Qt/Embedded 를 이용하여 간단한 1:1 네트워크 게임 실행
◎ 간단한 리눅스용 프로그램을 임베디드 키트상에 올려봄으로써 임베디드 기기와 리눅스에 대한 이해
![Page 4: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/4.jpg)
OBSERVER
구현기능
• 게임시작– Host PC 가 Server, 임베디드 키트가 Client 역할을
하며 상호 연결이 되면 게임 시작
• 승자 판단– 가로 , 세로 , 대각선의 4 방향을 검사하여 바둑돌이
5 개가 연속되어 있으면 승리로 표시– 바둑돌이 6 개 이상 연결되어 있는 경우는 무효처리
• Turn– 자신의 차례가 아니면 클릭 이벤트를 무시
Observer 최종발표4/20
![Page 5: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/5.jpg)
OBSERVER
구현기능
• 무르기 (Undo)– 무르기 신청을 하면 상대편 프로그램에 무르기를 요청– 요청을 받아들이면 최근 한 수를 무르고 다시 시작
• 기권– 기권을 선언하면 상태편의 승리로 게임이 종료
• 종료– 게임이 끝나면 종료버튼으로 프로그램을 종료시킬 수
있음
Observer 최종발표5/20
![Page 6: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/6.jpg)
OBSERVER
시스템 구성도
Observer 최종발표6/20
네트워크
네트워크Embedded Kit(iPop)
Host PC(Linux)
![Page 7: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/7.jpg)
OBSERVER
게임 흐름도
Observer 최종발표7/20
iPop(Client)
Game 패킷Game 적용
Host PC(Server)
Game 패킷Game 적용
네트워크 연결
턴 방식
네트워크 종료
게임종료
![Page 8: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/8.jpg)
OBSERVER
게임 패킷
Observer 최종발표8/20
• A : 기권 선언
• U : 무르기 요청• N : 무르기 거부• Cxy : 무르기 허락 , x,y 는 허락한 쪽의 최근 바둑돌 좌표• Dxy : 무르기를 허락받은 경우 , x,y 는 요청한 쪽의 최근
바둑돌 좌표
• E : 오목확인 알고리즘에 의해 게임이 종료됨을 알림
• Sxy : 일반적인 바둑돌 놓기 , x,y 는 바둑돌의 좌표
![Page 9: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/9.jpg)
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 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/10.jpg)
OBSERVER
구현현황
Observer 최종발표10/11
초기화면
![Page 11: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/11.jpg)
OBSERVER
구현현황
Observer 최종발표11/11
네트워크 연결 성공
![Page 12: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/12.jpg)
OBSERVER
구현현황
Observer 최종발표12/11
게임화면
![Page 13: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/13.jpg)
OBSERVER
구현현황
Observer 최종발표13/11
무르기 신청
![Page 14: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/14.jpg)
OBSERVER
구현현황
Observer 최종발표14/11
무르기 허락
![Page 15: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/15.jpg)
OBSERVER
구현현황
Observer 최종발표15/11
무르기 허락 ( 결과 )
![Page 16: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/16.jpg)
OBSERVER
구현현황
Observer 최종발표16/11
무르기 거부 ( 결과 )
![Page 17: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/17.jpg)
OBSERVER
구현현황
Observer 최종발표17/11
기권선언
![Page 18: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/18.jpg)
OBSERVER
구현현황
Observer 최종발표18/11
기권결과
![Page 19: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/19.jpg)
OBSERVER
구현현황
Observer 최종발표19/11
승리종료
![Page 20: QT/E 를 이용한 오목게임](https://reader033.fdocument.pub/reader033/viewer/2022061319/56815706550346895dc4aa41/html5/thumbnails/20.jpg)
OBSERVER
Q&A
Observer 최종발표20/20