Presentation is loading. Please wait.

Presentation is loading. Please wait.

[Term Project] 오목의 바둑돌을 두는 알고리즘을 개발하시오. [ 오목 프로그램 ] Algorithms and Practice 1.

Similar presentations


Presentation on theme: "[Term Project] 오목의 바둑돌을 두는 알고리즘을 개발하시오. [ 오목 프로그램 ] Algorithms and Practice 1."— Presentation transcript:

1 [Term Project] 오목의 바둑돌을 두는 알고리즘을 개발하시오. [ 오목 프로그램 ] Algorithms and Practice 1

2 [Term Project] 오목 프로그램 구조 미리 만들어서 제공되는 오목 플랫폼 클래스 소스  OmokTester.java: main 함수가 존재하는 Class  OmokBoard.java: 그래픽 관련 처리 Class  Player.java: OmokPlayer 를 위한 Abstract Class currentPosition – 최근 자신이 둔 바둑돌의 위치가 저장됨 2 차원 배열인 map – 현재 오목판의 정보가 담겨 있음 크기 : 19 X 19 ( 인덱스 – 0~18 X 0~18) map[i][j] 에서 i 는 행, j 는 열을 의미 ex) i=6, j=9 이면 7 행의 10 열의 위치 값의 의미 - 0: 빈 공간, 1: Player1 의 검정돌, 2: Player2 의 빨간돌  OmokPlayer100.java, OmokPlayer101.java Player.java 를 상속한 샘플 오목 플레이어 코드 Algorithms and Practice 2

3 [Term Project] 오목 프로그램 구조 학생들이 작성해야 할 클래스 소스 : OmokPlayer**.java  OmokPlayer**.java 에서 ** 은 각 조 숫자 1 조 : OmokPlayer01.java 2 조 : OmokPlayer02.java … 10 조 : OmokPlayer10.java …  오목의 인공지능이 들어갈 Class 로 Player Class 를 상속받아 작성  Point nextPosition() 함수를 작성 이차원 배열로 구성된 현재 바둑판 정보인 int[][] map 을 분석 바둑돌을 어디에 두어야 할지를 결정 일종의 Greedy Algorithm 을 적용할 수 있음 즉, 현재 주어진 map 정보에서 내가 이길 수 있는 가장 최적의 다음 돌 위치를 계산해 내는 알고리즘 Algorithms and Practice 3

4 [Term Project] 규칙 1. 검정색 돌이 먼저 돌을 놓음 2. 5 개의 돌이 일렬로 먼저 놓아지면 승으로 간주 3. nextLocation() 이 반환하면 되지 않는 위치  이미 돌이 놓여진 위치  쌍삼이 되는 위치  배열이 벗어나는 위치 (0~18 X 0~18 외부 ) 4. 위의 경우에 해당하는 위치가 반환될 시 패로 간주 5. nextLocation() 호출 이후 x 초안에 돌의 위치를 반환하지 못할 시에는 상대방으로 Turn 이 넘어감. 6. 작성한 알고리즘이 에러 (Exception) 를 발생시킬 경우, 패로 간주 7. 바둑판에 모든 돌이 놓여지면 무승부 Algorithms and Practice 4

5 [Term Project] 평가방법 각 조가 작성한 OmokPlayer 간의 리그전으로 전체 오목경기를 조교가 수행한다.  임의의 한 조가 다른 모든 조들과 선후공의 순서를 바꿔가며 2 번의 경기를 수행하게 되면 리그가 종료된다.  리그의 횟수는 추후 정함.  승, 패, 무를 각 조별로 합산하여 전체 조별 순위를 정한다.  6 월 13 일 ( 수 ) 에 경기 결과를 공지하고 Term Project 발표회를 시행한다. 1~4 등을 한 조에 대한 추가적인 평가 가장 높은 Term_Project 점수 부여 수업시간에 전략에 대해 상세히 발표 이날 수업시간에 재경기를 하여 순위를 최종적으로 재조정한다. Algorithms and Practice 5

6 [Term Project] Tip 친구들이 작성한 OmokPlayer 를 미리 받아서 스스로 경기를 수행해보면 자신이 만든 알고리즘의 수준을 체크해볼 수 있을 것임. Report 요구사항 오목 알고리즘에 대한 전략, 절차, 방법을 구체적으로 제시할 것  Greedy Method 를 활용했다면 어떠한 규칙으로 자신의 돌 위치를 계산해 내었는지를 명확하게 제시할 것 프로그램 코드를 정확하게 Report 에 제시할 것  주석을 충분하게 넣을 것 자신이 취득한 기술적 사항을 생각한 바 그대로 적을 것 질문은 Q&A 게시판에 올릴 것 Algorithms and Practice 6

7 [Term Project] 제출형태 보고서 파일 (HWP 또는 MS-Word) 과 프로그램을 게시판에 업로드  서론, 본론, 결론의 구조를 가진 보고서 표지 ( 설계교과목이라는 문구 추가 ) 서론 : Term Project 의 내용 및 목적 본론 : 각각의 문제를 코딩한 이후 앞에 있는 요구사항에 따라 작성 결론 : 숙제를 한 이후의 느낀점, 하고싶은 말, 또는 불평 ~~ 파일명 : 알고리즘 -TermProject-2012-01.zip  보고서와 OmokPlayer**.java 를 하나의 zip 파일에 묶어서 만듦  맨 마지막 숫자 01 은 조 번호를 나타냄 게시판의 게시물 제목 : 알고리즘 -TermProject-2011-01  맨 마지막 숫자 01 은 조 번호를 나타냄 제출기한 2012 년 6 월 9 일 ( 토요일 ) 23:59:59 7 Algorithms and Practice

8 Term Project 조 구성표 Algorithms and Practice 8 학번성명 Term Project 조 2008160001 강돈우 1 2008135029 김재홍 1 2008135070 여명 1 2010136146 황지형 1 2008160098 원성현 2 2009135066 신수진 2 2009135078 유지선 2 2009160093 양지영 2 2008160157 정용빈 3 2008135092 이한동 3 2010136129 최선숙 3 2009160102 오혜진 3 2008160123 이석주 4 2007135067 신상용 4 2007135099 임경수 4 2008135004 고경석 4 2008135121 최현일 5 2007160165 최장규 5 2008160139 이현탁 5 2008135110 천준혁 5 2007135117 정찬희 6 2010136124 조준성 6 2006160064 박종혁 6 2008135084 이승철 7 2008135065 심기성 7 2008135031 김종민 7 2007160173 한태원 8 2007135098 이효석 8 2008135052 박윤조 8 2008135063 송용권 9 2008160124 이승욱 9 2007135111 정무여 9 2008135101 정성혁 10 2008160021 김동훈 10 2005135113 전형천 10 2008135067 심한상 11 2009160096 오민지 11 2006135109 임희현 11


Download ppt "[Term Project] 오목의 바둑돌을 두는 알고리즘을 개발하시오. [ 오목 프로그램 ] Algorithms and Practice 1."

Similar presentations


Ads by Google