BLOKUS Champions League (v0.2) - 1 -

Similar documents
Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

chap 5: Trees

설계란 무엇인가?

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

머 리 말 우리 나라에서 한때 가장 인기가 있었던 직업은 은행원이었다 년대만 하더라도 대학 졸업을 앞둔 학생들은 공사 公 社 와 더불어 은행 을 가장 안정적인 직장으로 선망했다 그러나 세월은 흘러 구조조정이 상시화된 지금 은행원 은 더이상 안정도 순위의 직업이 아니다

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2


Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

C 언어 프로그래밊 과제 풀이

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

중간고사

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

PowerPoint Presentation

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

Microsoft PowerPoint - chap06-1Array.ppt

슬라이드 1

Microsoft PowerPoint - Java7.pptx

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - ch07 - 포인터 pm0415

OCW_C언어 기초

금오공대 컴퓨터공학전공 강의자료

설계란 무엇인가?

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint 웹 연동 기술.pptx

슬라이드 1

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

실험 5

OCW_C언어 기초

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

JAVA PROGRAMMING 실습 02. 표준 입출력

컴파일러

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

adfasdfasfdasfasfadf

Chap 6: Graphs

API 매뉴얼

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx

API 매뉴얼

2_안드로이드UI

Microsoft PowerPoint PythonGUI-sprite

Microsoft PowerPoint - chap11-포인터의활용.pptx

Lab 3. 실습문제 (Single linked list)_해답.hwp

C 프로그램의 기본

Chapter 4. LISTS

Microsoft PowerPoint - 6-PythonGUI-sprite

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

제 53 회서울특별시과학전람회 예선대회작품설명서 본선대회작품설명서 쓰나미의피해를최소화시키는건물과 건물배치에대한탐구 출품번호 S-504 출품분야학생부출품부문지구과학 학교명학년 ( 직위 ) 성명

PowerPoint 프레젠테이션

PowerPoint Template

Microsoft PowerPoint - ch02-1.ppt

문서 템플릿

문제지 제시문 2 보이지 않는 영역에 대한 정보를 얻기 위하여 관측된 다른 정보를 분석하여 역으로 미 관측 영역 에 대한 정보를 얻을 수 있다. 가령 주어진 영역에 장애물이 있는 경우 한 끝 점에서 출발하여 다른 끝 점에 도달하는 최단 경로의 개수를 분석하여 장애물의

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft Word - OOPT stage 2040 ver2.docx

7. 다음그림과같이한변의길이 가 4 6 인마름모의넓이를구 하여라. 10. 다음그림과같이모선의길이가 6 cm 인원뿔의밑면의 둘레의길이가 6π cm 일때, 원뿔의높이와부피를구한 것은? 1 6 cm, 6 π cm 6 cm, 6π cm 8. 다음과같이한변의길이가 8 인정육 면

03_queue

제4장 기본 의미구조 (Basic Semantics)

11장 포인터

Microsoft PowerPoint - chap06-4 [호환 모드]

Microsoft Word - LKP-RTD 사용자 설명서

쉽게 풀어쓴 C 프로그래밍

UI TASK & KEY EVENT

Microsoft Word - 04_EXCEPTION.doc

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Contents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

제 2 교시 2019 학년도 3 월고 1 전국연합학력평가문제지수학영역 1 5 지선다형 1. 의값은? [2점] 일차방정식 의해는? [2 점 ] 두수, 의최대공약수는? [2 점 ] 일차함수 의그래프에서

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

KNK_C_05_Pointers_Arrays_structures_summary_v02

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍


윤성우의 열혈 TCP/IP 소켓 프로그래밍

Slide 1

PowerPoint 프레젠테이션

PowerPoint Presentation

Chap 6: Graphs

윈도우즈프로그래밍(1)

제8장 자바 GUI 프로그래밍 II

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

10 장세균전프로그래밍 10.1 게임룰 (1) 사람과컴퓨터가싸우는 2인용보드게임이다. (2) 사람이먼저움직이고, 컴퓨터가움직인다. (3) 세균을가로및세로방향으로 2칸까지빈칸으로이동시킬수있다. (4) 1칸을이동할경우에는복제가된다. (5) 이동한후주변세균은내편으로바뀐다.

좀비프로세스 2

Ver. 4.0 OOPT Stage 1000 <Plan and Elaboration> Version 4.0 Project Team T7 Team Date Team Information 오세욱 임현유

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

UI TASK & KEY EVENT

Microsoft Word doc

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수

실험 5

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

Transcription:

BLOKUS Champins League (v0.2) - 1 -

1. Intrductin 블로커스 (BLOKUS) 는두명혹은그이상이동시에즐길수있는동명의보드게 임을의미한다. 게임의목표는간단하다. 일단, 각플레이어는동일한개수로이루어진블록들을받게된다. ( 각플레이어가가진블록의종류는모든플레이어가동일하다.) 플레이어는자신의차례에판위에블록을놓게되며, 블록을놓은뒤다음플레이어에게차례를넘긴다. 게임은더이상놓을블록이없거나더이상판위에놓을장소가없을때끝나게되며, 더많은칸을차지한플레이어가승리하게된다. 블록은놓을수있다는전제하에어떤변형도가능하다. 예를들어돌리거나 (rtate), 뒤집거나 (flip) 할수있다. 물론블록을잘라내는행위는허용되지않는다. 본프로젝트에서각팀이구현해야하는것은바로어느위치에블록을놓을지결정하는알고리즘을작성하는것이다. 기본적인 API 및규칙은아래에제공될것이다. - 2 -

2. 규칙 A. 판의규칙 10 x 10의칸으로이루어진가상의판을가정한다. 판은 2차원배열로제공되며, 배열의각위치에따른판의지점은다음과같다. (0,0) (0,1) (0,2) (0.3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9) (1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9) (2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9) (3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9) (4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9) (5,0) (5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9) (6,0) (6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9) (7,0) (7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9) (8,0) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9) (9,0) (9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9) place_t() 함수를통해서블록을놓을때는아래에기술될블록의시작지점과 블록의종류를인자로넘겨주면된다. B. 블록의종류 블록의종류는다음과같다. 1) SQUARE 4 개의칸으로이루어진정사각형모양의블록이다. 이형태의블록은총 2 개 제공된다. 시작지점은왼쪽아래 ( 로표시되어있는부분 ) 의블록이다. 예를 - 3 -

들어시작지점이 (2,0) 지점에있다면전체블록이차지하는좌표는 (2,0) (1,0) (2,1) (1,1) 이된다. 2) HANDGUN 4개의칸으로이루어진권총모양의블록이다. 이형태의블록은총 1개제공된다. 기본적으로 3x2 혹은 2x3의공간을차지하는블록으로가정한다. 시작지점은 3x2 혹은 2x3 블록의왼쪽아래지점이다. 3) SHOTGUN 6 개의칸으로이루어진샷건모양의블록이다. 이형태의블록은총 1 개제 공된다. 전체블록이차지하는공간은 4x2 혹은 2x4 의공간이다. 시작지점은 4x2 혹은 2x4 블록의왼쪽아래지점이다. 4) WORM 5 개의칸으로이루어진지렁이모양의블록이다. 이형태의블록은총 2 개 제공된다. 전체블록이차지하는공간은 5x1 혹은 1x5 의공간이다. 시작지점 은가장왼쪽혹은가장아래쪽이다. 5) CROWBAR - 4 -

6 개의칸으로이루어진쇠지렛대모양의블록이다. 이모양의블록은총 1 개 제공되며, 5x2 혹은 2x5 의공간을차지한다. 시작지점은왼쪽아래지점이다. 6) CHAIR 3 개의칸으로이루어진앉은뱅이의자모양의블록이다. 이모양의블록은 총 1 개제공되며, 2x2 의공간을차지한다. 시작지점은왼쪽아래지점이다. 7) CROSS 4 개의칸으로이루어진십자모양의블록이다. 이모양의블록은총 1 개제 공되며, 3x3 의공간을차지한다. 시작지점은왼쪽아래지점이다. 8) BOOMERANG 5 개의칸으로이루어진부메랑모양의블록이다. 이모양의블록은총 1 개 제공되며, 3x3 의공간을차지한다. 시작지점은왼쪽아래지점이다. 9) STICK - 5 -

3 개의칸으로이루어진막대기모양의블록이다. 이모양의블록은총 1 개 제공되며, 3x1 혹은 1x3 의공간을차지한다. 시작지점은왼쪽지점혹은가장 아래지점이다. 10) DOT 1개의칸으로이루어진블록이다. 이모양의블록은총 1개제공되며, 1x1의공간을차지한다. C. 게임의규칙 각플레이어는 5초내에모든작업을끝내야한다. 시간을측정하여 5초이상걸릴경우, 실격패로한다. 모든경우에타플레이어의블록을침범할경우, 실격패로처리한다. 매차례종료후, 판을검사하여이를적발한다. 블록이판의경계를벗어나도실격패로처리한다. 게임은양쪽플레이어모두가더이상놓을블록이없을때종료된다. 종료된시점에서각플레이어가차지한말판의칸수를세어더많은칸을차지한플레이어가승리하게된다. 가능한모든플레이어의조합에대해서 3회씩게임을진행한다. 그리고가장승률이높은플레이어부터차례대로순위를매긴다. 같은색의블록은반드시꼭짓점으로이어져야한다. 다음그림을보라. 표 20 올바른경우 - 6 -

위그림은같은색의블록이꼭짓점으로잇닿아있으므로규칙에어긋나지않 는다. 표 21 잘못된경우 위그림은서로같은색의블록이모서리로연결되어있으므로, 규칙에어긋난 다. 표 22 올바른경우 위그림은서로다른색을지닌네블록이규칙을준수한형태로놓여있는것을나타내고있다. 각플레이어는이를반드시준수하여블록을놓아야하며, 만약닿을수있는꼭짓점이없을경우더이상둘수있는공간이없는것으로간주한다. 만약규칙에어긋난형태로블록을놓을경우실격패로판정된다. D. 프로그램의규칙 place_t() 함수를사용할경우, 다른블록을침범했을때에러코드 (OVERLAP) 를리턴한다. place_t 가리턴하는에러코드는다음과같다. - 7 -

Errr cde Value Descriptin NOERROR 0 Nrmal exit OVERLAP 1 Vilate the enemy's blck OUT_OF_STAGE 2 Is ut f stage Table 1 Errr cde 각팀은블록을놓을자리를결정하는함수를작성한다. 함수는정해진값을 리턴해야하며, 리턴코드는다음과같다. Return cde Value Descriptin PLAYING 0 Player in nrmal state OUT_OF_SPACE 1 N ne can be placed int the stage OUT_OF_BLOCK 2 All blcks are placed Table 2 Return cde - 8 -

3. API A. place_t() Functin Descriptin place_t starting pint, blck errr cde 입력으로블록이시작해야할위치와블록을받는다. 해당위치에놓을수있으면, 위치시킨후 NOERROR 코드를리턴하고, 놓을수없다면그에해당하는 errr cde를리턴한다. B. rtate() Functin Descriptin rtate blck, rtate degree 해당사항없음블록을회전시킨다. 입력으로블록과회전시킬정도를입력받는다. 정도는미리정의된값인 SINGLE, DOUBLE, TRIPLE을통해서입력가능하며, SINGLE의경우 90도, DOUBLE일경우 180도, TRIPLE일경우 270도를회전하게된다. 주의해야할것은 2x4 블록의경우 90도회전시켰을때 4x2 블록이된다는것이다. C. flip() 블록을뒤집는다. 입력으로블록과동작지정번호를입력받으며, 1일경우좌우로, 2일경우상하로뒤집게된다. Functin flip blck, flip directive 해당사항없음블록을뒤집는다. HORIZONTAL 지시자를넘겨주었을 Descriptin 경우좌우로, VERTICAL 지시자를넘겨주었을경우상하로뒤집는다. - 9 -

D. get_blcks() Functin get_blcks team clr blck set Descriptin 블록을가져온다. E. get_stage() Functin Descriptin get_stage 해당사항없음 stage 게임이진행되고있는판을가져온다. 플레이어는자신의차례에서이함수를통해게임판을가져올수있다. F. print_blcks() Functin Descriptin print_blcks blck set 해당사항없음현재남아있는블록들과상태를출력한다. 프로젝트수행중에만쓸수있는상태확인용함수이며, 제출시에는이를삭제해야한다. G. print_blck() Functin Descriptin print_blck blck 해당사항없음현재블록의상태를출력한다. 프로젝트수행중에만쓸수있는상태확인용함수이며, 제출시에는이를삭제해야한다. - 10 -

4. Revisin histry 연번 작성자 내용 날짜 1 김성훈 초안작성 2013.05.26 2 김성훈 세부규칙추가 2013.05.29-11 -