이것은 Dots and Boxes (일명 Pen the Pig)의 언덕 도전 왕입니다. 게임은 간단합니다. 차례에 빈 울타리에 선을 그립니다. 사각형을 완성 할 때마다 점수를 얻습니다. 또한, 우리는 챔피언십 규칙에 따라 플레이하고 있기 때문에 턴에서 하나 이상의 사각형을 완성하면 추가 턴을 얻습니다. 이것은 라운드 로빈 토너먼트로, 각 봇은 9x9 그리드 에서 서로 다른 봇을 12 번 두 번 플레이 합니다. ChainCollector가 치열한 공동 챔피언 Asdf의 고기를 만드는 두 개의 헤비급 타이탄 사이의 일치를 확인하십시오.
규칙
- 이동 당 0.5 초 제한
- 다른 봇을 방해하지 않습니다.
- 임의성을 위해 PigPen.random () 및 PigPen.random (int)을 사용하십시오.
- 파일에 쓰지 않습니다.
- 봇과 모든 지속 데이터는 상대가 변경 될 때마다 (12 라운드마다) 재설정됩니다.
봇
모든 봇은 Player.java를 확장합니다.
package pigpen;
public abstract class Player {
public abstract int[] pick(Board board, int id, int round);
}
Board
게임 보드는 주로 Pen
수업에 대한 액세스를 제공하는 역할을 id
하며 playerID (첫 번째 또는 두 번째 여부를 round
알려줍니다 )이며 같은 상대 (1 또는 2)에 대해 어떤 라운드를하는지 알려줍니다. 반환 값은입니다 int[]
. 여기서 첫 번째 요소는 penID (1- 인덱스)이고 두 번째 요소는 fenceID (0- 인덱스)입니다. Pen.pick(int)
이 반환 값을 생성하는 쉬운 방법을 참조하십시오 . 플레이어 및 JavaDoc의 예 는 Github 페이지를 참조하십시오 . 우리는 정사각형 그리드 만 사용하기 때문에 육각형과 관련된 기능과 필드는 무시하십시오.
실행하는 방법
- Github에서 소스를 다운로드하십시오.
- 컨트롤러 봇을 작성하고 (포함해야 함
package pigpen.players
)src/
폴더에 넣습니다 . - 로 컴파일하십시오
javac -cp src/* -d . src/*.java
. Run withjava pigpen.Tournament 4 9 9 false
(마지막 두 숫자는 그리드 크기를 조정하기 위해 변경 될 수 있습니다. 마지막 변수는true
pp_record 소프트웨어를 사용하려는 경우 에만 설정해야 합니다.)
점수
- 체인 컬렉터 : 72
- Asdf : 57
- 레이지 본 : 51
- 피니셔 : 36
- = 선형 플레이어 : 18
- 뒤로 플레이어 : 18
- 랜덤 플레이어 : 0
참조 :
참고 :이 게임은 경쟁이 치열하며 플레이어가 상자를 완성하기 위해 여분의 회전을 제공하기 때문에 쉽게 해결할 수 없습니다.
이 도전에 대한 상담을 한 Nathan Merrill과 Darrel Hoffman에게 감사합니다!
업데이트 :
moves(int player)
플레이어가 한 모든 움직임의 목록을 얻기 위해 Board 클래스에 메소드를 추가했습니다 .
무기한 바운티 (100 회) :
매 라운드마다 승리하고 전략을 사용하는 솔루션을 게시 한 첫 번째 사람 (상대자가 어떻게 플레이하는지 관찰하여 플레이 조정).