이야기
4579 년이며, 이제 인간은 각각 1001 개의 손가락으로 2 개의 손을 갖습니다. 젓가락은 포인트를 기반으로합니다. 그리고 @Dennis는 @Martin보다 더 많은 담당자를 가지고 있습니다 ... 손으로 그려진 빨간색 원은 이제 하향 조정되었습니다 ... Jon Skeet은 모든 SE 사이트에서 2 조의 담당자를 기록했습니다.
젓가락은 해결 된 핸드 게임입니다. 그래서이 문제를 해결하기 위해 돌연변이를 만들었습니다. 손가락의 양을 늘 렸습니다.
게임의 규칙
이것이 연주되는 방식
모든 사람은 두 손으로 시작합니다. 각 손에는 1001 개의 손가락이 있습니다. 1 (한) 손가락으로 모든 손이 시작 각각의 손. 당신의 차례 동안 당신은 다른 플레이어의 손을 "히트"할 수 있습니다. 때리려면 타격 할 손 1 개와 타격 할 손 1 개를 선택하십시오. 맞은 손은 이제 처음에 있던 손가락의 양과 손으로 맞은 손가락의 양을 갖습니다.
전의
P1: 1,1
P2: 1,1
. P1[0]
안타 P2[1]
. 이제 손가락은 P1:1,1
P2:1,2
입니다. 이제 P2[1]
안타 p1[0]
. 손가락은 이제 P1 : 3,1
P2 1,2
입니다.
한 손이 1001 개 이상의 손가락을 올리면 그 손은 꺼집니다. 그런 다음 (턴을 위해) 핸드를 얻은 플레이어는 "분할"할 수 있습니다. 분리는 손을 잡고 손가락의 양 (반올림)을 반으로 줄이고 다른 손에 손가락을 다시 넣을 때입니다.
전의
P1 : 1000,2
P2 7,7
. P2[0]
안타 P1[0]
. 점수는 P1 : 0,2
P2 1,1
입니다. P1[1]
자신의 차례에 대해 분할하고 점수는 P1 : 1,1
및 P2 7,7
입니다.
한 플레이어가 양손을 빼면 게임이 종료됩니다. 점수는 승자가 가진 손가락의 양에 따라 결정됩니다. 더 많은 점수가 더 좋습니다. 패자는 점수를 얻지 못합니다.
사용되는 다른 규칙이 있지만 여기에 사용 된 규칙이 있습니다.
모두가 모두를한다 (라운드 로빈)
최종 단계
이길 때마다 포인트를 합산하십시오. 그런 다음 모든 사람의 포인트를 평균하십시오. 총점을 평균 점수로 나누고 최종 점수를 얻으십시오. 대부분의 포인트가 이깁니다.
실제 규칙
게임을 해결하려고 하지 마십시오 . 나는 실제로 그것을 실행할 수 있어야합니다 : P
봇이 빠르게 달릴 수 있는지 확인하십시오. 라운드의 길이로 판단하면 시간이 오래 걸립니다
프로그램에 필요한 모든 라이브러리는 기본 파이썬 라이브러리에 있어야합니다. 가져와야 할 항목도 나열하십시오. 수입 그냥 기본적인 수입 될 것입니다 (수학을 위해 내가 할 : import math
)
답변은 Python 3.x에서 작동해야합니다
매니저
봇은 play
함수 가있는 자체 Python 3 파일입니다 .
play
두 개의 숫자로 구성된 두 개의 목록이 각각 전달됩니다. 이 숫자는 각 손에 몇 개의 손가락이 올라 갔는지 나타냅니다. 첫 번째 목록은 자신의 손입니다.
다른 플레이어의 손에 맞도록 선택했다면, 두 비트 목록을 반환하십시오. 첫 번째 비트는 당신이 치는 데 사용하는 핸드의 인덱스 ( 0
첫 번째, 1
마지막에 대한 인덱스)이고 두 번째 비트는 상대에게 치는 핸드의 인덱스입니다.
분할하기로 선택한 경우 다른 진실 된 값을 반환하십시오.
타다!
컨트롤러는 여기 에서 찾을 수 있습니다 . 각 봇을 자체 파일에 저장하고에 각 봇의 파일 이름을 (없이 .py
) 나열하십시오 botnames
.
최종 메모 :
당신과 다른 봇이 먼저 돌아갑니다. 게임이 100,000 (십만) 라운드에서 종료되지 않으면 게임이 종료되고 봇이 이기지 않습니다.
컨트롤러는 영원히 움직이는 동작으로부터 보호되지 않지만 불필요한 오버 헤드가 심하게 찌그러 질 것입니다.
My handler is very simple, your bot must do it's logic then adjust the the finger scores as needed, remember!
그렇다면 우리는 KoTH에 대한 계산을 수행하는 사람들입니까?