수학자 John Conway가 발명 한 유명한 셀룰러 오토 마톤 인 Conway의 Game of Life를 알고있을 것입니다 . Life 는 함께 2 차원 셀 보드를 시뮬레이션 할 수있는 일련의 규칙입니다. 규칙은 보드의 어떤 셀이 살고 어떤 셀이 죽는 지 결정합니다. 약간의 상상력으로 Life 는 제로 플레이어 게임 이라고 할 수 있습니다. 유명한 글라이더와 같이 재미있는 행동을하는 패턴을 찾는 것을 목표로하는 게임입니다.
제로 플레이어 게임 ... 오늘까지. 당신은 인생의 게임을하고 언덕 스타일의 왕으로 승리하는 프로그램을 작성해야합니다. 상대방 (단수)은 물론 똑같이하려고합니다. 우승자는 모든 라이브 셀을 보유한 마지막 봇이거나 10000 세대 후 가장 많은 라이브 셀을 보유한 플레이어입니다.
게임 규칙
규칙은 일반 (B3 / S23) 수명 과 거의 동일합니다.
- 친근한 이웃이 2 명 미만인 살아있는 세포는 기아로 사망합니다.
- 2 ~ 3 명의 친절한 이웃이있는 살아있는 세포가 살아남습니다.
- 친근한 이웃이 3 명 이상인 살아있는 세포는 인구 과잉으로 사망합니다.
- 같은 플레이어의 이웃이 정확히 3 명인 죽은 세포 는 적의 이웃이 없다면 그 플레이어를 위해 살아남습니다 .
... 그러나 각 세대마다, 당신과 상대방 모두가 개입 할 기회를 얻습니다. 당신을 위해 싸울 수있는 최대 30 개의 세포를 깨울 수 있습니다. (누가 먼저 갈지는 서버에 의해 결정됩니다.)
보드는 (x, y) 셀 사각형입니다. 모든 사각형은 처음에 죽었습니다. 국경은 감겨 있지 않으며 (이것은 원환 체가 아닙니다) 영구적으로 죽었습니다.
이것은 Battlebots 와 Core Wars 의 정신에 대한 콘테스트입니다 . 봇을 실행할 중앙 서버가 있으며 여기 에서 찾을 수 있습니다
실험 계획안
경기장 서버는 argv를 통해 전달되는 간단한 JSON 프로토콜을 말합니다.
여기서 Values는 JSON 인코딩 문자열입니다.
y_size
: 타일이 사라지기 전의 최대 y 좌표x_size
: 타일이 사라지기 전의 최대 x 좌표tick_id
: 현재 틱 번호board
: '(y, x)'형식의 키와bot_id
(int) 형식의 값이있는 사전bot_id
:이 ID를 가진 보드의 타일은 당신입니다
예:
{"y_size":2000,"x_size":2000,"board":{},"bot_id":1,"tick_id":1}
서버에게 당신의 선택을 알리기 :
- 서버에 타일 목록을 보내 색상으로 바꾸십시오.
- 비어있는 것만 변경됩니다
- 중첩 된 좌표 목록 형식
[[0,0], [0,1], [100,22]...]
참고 : 봇은 타일을 전혀 업데이트하지 않아도됩니다. 서버는 자체적으로 업데이트를 수행합니다.
경쟁 규칙
- 구현이 프로토콜을 따르지 않으면 그 변경은 효력을 상실합니다. 서버는 상태 변화가 없다고 가정합니다
- 경기장 서버의 결함을 고의적으로 이용할 수 없습니다.
- AI가 제 시간에 움직임을 결정하도록하십시오. 다음 움직임을 가능한 한 빨리 보내십시오.
- 마지막으로 서버를 잘 활용하십시오. 당신의 즐거움을 위해 있습니다.
- 이 규칙을 따르지 않으면 실격 처리 될 수 있습니다.
- 동점 일 경우 두 선수 모두 1 승을 거두게됩니다
컨트롤러를 직접 실행
컨트롤러의 소스는 여기 에서 찾을 수 있습니다 . 컨트롤러를 실행하는 방법은 두 가지가 있습니다 :
- 경쟁 모드 (터미널)
- 설정
python3 get_answers.py
- 각각의 봇이 서로 대항하여 모든 경쟁을 벌입니다.
- 설정
- 테스트 모드 (GUI)
- 운영
python3 nice_gui.py
- 딸깍 하는 소리
Pull Answers
- 게시하기 전에 직접 답을 추가
File -> Add manual answer
하려면 파일을 클릭 하여 찾은 후 작성된 언어를 선택하십시오. - 귀하의 언어가 나를 ping하지 않고 서버에 설치하려고하면 언어를 실행할 것입니다 (설치 및 실행 지침도 좋을 것입니다!)
- 서로 맞 물릴 2 개의 봇을 선택하십시오
- 딸깍 하는 소리
Run
- 게임을보십시오 ...
- 운영
- 설치
- python3 필요
- get_answers에는 bs4 및 html5lib가 필요합니다
- 컨트롤러에는 .sh 파일을 실행하는 방법이 필요합니다 (Windows의 MinGW)
채점
12/07/2016
(7 월 12 일)14/07/2016
(7 월 14 일, 봇 실행 방법을 찾지 못함 ) 부터 가장 많은 승리를 거둔 봇이 승리합니다.
이 대화방 에서 컨트롤러 / GUI에 대한 도움을 요청할 수 있습니다.
이 질문은 2014 년 이후 개발되어 왔으며 샌드 박스에서 가장 많이 제기 된 질문입니다. 특별 감사는 Wander Nauta (원저 작성자 및 개념), PPCG Chat (설명 및 도움말) 및 샌드 박스 게시물에 댓글을 남긴 사람 (추가 의견)에게 전달됩니다.