[Term Project] 오목의 바둑돌을 두는 알고리즘을 개발하시오. [ 오목 프로그램 ] Algorithms and Practice 1
[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
[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
[Term Project] 규칙 1. 검정색 돌이 먼저 돌을 놓음 2. 5 개의 돌이 일렬로 먼저 놓아지면 승으로 간주 3. nextLocation() 이 반환하면 되지 않는 위치 이미 돌이 놓여진 위치 쌍삼이 되는 위치 배열이 벗어나는 위치 (0~18 X 0~18 외부 ) 4. 위의 경우에 해당하는 위치가 반환될 시 패로 간주 5. nextLocation() 호출 이후 x 초안에 돌의 위치를 반환하지 못할 시에는 상대방으로 Turn 이 넘어감. 6. 작성한 알고리즘이 에러 (Exception) 를 발생시킬 경우, 패로 간주 7. 바둑판에 모든 돌이 놓여지면 무승부 Algorithms and Practice 4
[Term Project] 평가방법 각 조가 작성한 OmokPlayer 간의 리그전으로 전체 오목경기를 조교가 수행한다. 임의의 한 조가 다른 모든 조들과 선후공의 순서를 바꿔가며 2 번의 경기를 수행하게 되면 리그가 종료된다. 리그의 횟수는 추후 정함. 승, 패, 무를 각 조별로 합산하여 전체 조별 순위를 정한다. 6 월 13 일 ( 수 ) 에 경기 결과를 공지하고 Term Project 발표회를 시행한다. 1~4 등을 한 조에 대한 추가적인 평가 가장 높은 Term_Project 점수 부여 수업시간에 전략에 대해 상세히 발표 이날 수업시간에 재경기를 하여 순위를 최종적으로 재조정한다. Algorithms and Practice 5
[Term Project] Tip 친구들이 작성한 OmokPlayer 를 미리 받아서 스스로 경기를 수행해보면 자신이 만든 알고리즘의 수준을 체크해볼 수 있을 것임. Report 요구사항 오목 알고리즘에 대한 전략, 절차, 방법을 구체적으로 제시할 것 Greedy Method 를 활용했다면 어떠한 규칙으로 자신의 돌 위치를 계산해 내었는지를 명확하게 제시할 것 프로그램 코드를 정확하게 Report 에 제시할 것 주석을 충분하게 넣을 것 자신이 취득한 기술적 사항을 생각한 바 그대로 적을 것 질문은 Q&A 게시판에 올릴 것 Algorithms and Practice 6
[Term Project] 제출형태 보고서 파일 (HWP 또는 MS-Word) 과 프로그램을 게시판에 업로드 서론, 본론, 결론의 구조를 가진 보고서 표지 ( 설계교과목이라는 문구 추가 ) 서론 : Term Project 의 내용 및 목적 본론 : 각각의 문제를 코딩한 이후 앞에 있는 요구사항에 따라 작성 결론 : 숙제를 한 이후의 느낀점, 하고싶은 말, 또는 불평 ~~ 파일명 : 알고리즘 -TermProject zip 보고서와 OmokPlayer**.java 를 하나의 zip 파일에 묶어서 만듦 맨 마지막 숫자 01 은 조 번호를 나타냄 게시판의 게시물 제목 : 알고리즘 -TermProject 맨 마지막 숫자 01 은 조 번호를 나타냄 제출기한 2012 년 6 월 9 일 ( 토요일 ) 23:59:59 7 Algorithms and Practice
Term Project 조 구성표 Algorithms and Practice 8 학번성명 Term Project 조 강돈우 김재홍 여명 황지형 원성현 신수진 유지선 양지영 정용빈 이한동 최선숙 오혜진 이석주 신상용 임경수 고경석 최현일 최장규 이현탁 천준혁 정찬희 조준성 박종혁 이승철 심기성 김종민 한태원 이효석 박윤조 송용권 이승욱 정무여 정성혁 김동훈 전형천 심한상 오민지 임희현 11