최종 결과는 여기에 있습니다!
소개
2042 년에 세계는 과잉 인구가되었습니다. 세계화, 인구 밀집, 새로운 생활 양식 및 세계적인 위생 부족으로 인해 새로운 유행병이 확산되었습니다. 그 어려운시기에 주 지도자들은 상황을 관리해야합니다. 당신은 당신의 인구를 소멸시킬 수는 없지만 이웃을 죽게함으로써 이익을 얻을 수 있습니다 ...
용어 사전
건강한 : 사람들은 감염되지 않은
감염 : 전염병으로 사망 할 수 있습니다 사람들이
죽은 : 본체 (만 득점), 특별한 효과를 계산하지
감염 속도 : 수 건강한 될 것입니다 감염된 각 설정
전염 속도 :의 백분율 감염된 변환합니다 건강한 에 감염 각 설정
치사율 속도 :의 백분율 감염된 각 죽을 차례
마이그레이션 속도가 모두의 비율 : 건강한 와 감염된 이민 것이 / 각 설정 이민
지역: 귀하의 주에만 영향을 미칩니다.
Global : 모든 주에 영향을 미칩니다.
원리
각 플레이어는 100 명 부터 시작하여 한 도시를 관리 합니다. 불행히도 그중 하나가 감염되었습니다 .
게임은 턴제입니다. 턴은 7 단계 로 구성되며 , 마지막 단계 는 대화식 (봇에게 명령을 요청)입니다. 플레이어의 순서는 매 턴마다 무작위입니다. 다음 단계는 모든 도시에서 이전 단계가 실행되었을 때 시작됩니다 (Turn 1 : Player 1, Player 2, Player 3 ...; Turn 2 : Player 3, Player 2, Player 1 ...) :
1. Mutation - AUTOMATED
2. Reproduction - AUTOMATED
3. Migration - AUTOMATED
4. Infection - AUTOMATED
5. Contagion - AUTOMATED
6. Extinction - AUTOMATED
7. Players Turn - INTERACTIVE
컨트롤러는 명령 인수를 통한 입력을 제공하며 프로그램은 stdout을 통해 출력해야합니다.
통사론
입력
프로그램이 호출 될 때마다 다음 형식으로 인수를받습니다.
Round;YourPlayerId;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;PlayerId_Healthy_Infected_Dead_InfectionRate_ContagionRate_LethalityRate_MigrationRate;...
라운드는 1 인덱스입니다.
입력 예
6;2;1_106_23_9_2_4_13_5;0_20_53_62_16_20_35_5;2_20_53_62_16_20_35_5
여기에서 6 라운드이며 2 번 선수라는 것을 알 수 있습니다. 20 명의 건강, 53 명의 감염자, 62 명의 사망자, 16 %의 감염률, 20 %의 전염 률, 35 %의 치사율 및 5 %의 이민 율이 있습니다.
산출
공백없이 구분 기호없이 세 개의 문자를 출력해야합니다. 각 문자는 이번 차례에 한 번의 작업에 해당합니다. 문자의 순서에 따라 동작 순서가 결정됩니다. 동일한 동작을 여러 번 출력 할 수 있습니다.
N
: 안 N의 othing을
M
: 리서치 M의 icrobiology를 [효과 : 지방 감소 감염률을 4 %]
E
: 연구 E의 pidemiology [효과 로컬 감소 전염 률 8 %]
I
: 연구 I는 mmunology [효과 : 지방 감소 치사율 평가 4 %]
V
: 연구 V의 accination [효과 : 지방 감소 감염률 지방 감소 의해 전염 속도 지방 감소, 4 % 치사율 평가 2 %]
C
: 보내기 C의 URE [효과 : 10로 변환 로컬 감염 에 건강 ]
Q
: Q의 uarantine는 [효과 : 30 지방 제거 감염된 ]
O
: O 펜 테두리가 [효과 : 로컬 증가 이동률이 10 %]
B
: 근접 B의 주문 [효과 : 지방 감소 이동률이 10 %]
T
: 바이오 T의 errorism [효과 : 4 변환 세계적인 건강 에 감염된 ]
W
: W eaponization [효과 : 글로벌 증가 감염률 글로벌 증대 1 치사율 평가 ] 2 %
D
: D의 issemination [효과 : 증가 글로벌 감염율1 글로벌 증가 전염 평가 ] 2 %
P
: P의 acification [효과 : 글로벌 감소 감염률 1 글로벌 감소 전염 속도 글로벌 감소, 1 %의 치사율 평가 1 % 씩]
게임 플레이
모든 단계
잘못된 명령 = Nothing
백분율이 정수처럼 더해집니다 (예 : 10 %-4 % = 6 %). 수식에 백분율을 적용하면 결과가 바닥이됩니다.
1 단계 : 돌연변이
대유행이 더욱 강력 해지고 있습니다. 매 턴마다 무작위로 다음 속성 중 하나를 얻습니다 (이 돌연변이는 모든 플레이어에게 한 번에 영향을 미침).
- 전 세계 감염률 2 증가
- 전 세계 감염률 5 % 증가
- 글로벌 치사율 5 % 증가
2 단계 : 재생산
5 라운드 (5, 10, 15 ...)마다 새로운 시민이 태어납니다. 각 쌍의 건강한는 하나 만들 것입니다 건강한 (23 건강한 11 새로운 생성 을 건강 ). 각 쌍의 감염은 한 것 감염된 .
3 단계 : 마이그레이션
매 턴마다, 건강 및 감염 의 퍼센트가 마이그레이션 속도 에 따라 상태를 떠납니다 (10 건강 은 상태가 100 건강 하고 10 %의 마이그레이션 속도 로 상태가됩니다 ). 그러면 이주 율 에 따라 이민자들이 모든 주에 다시 분배 될 것 입니다. (각 주정부의 요율에 가중치가 부여되고 이민자 모두가 그에 따라 분배됩니다).
4 단계 : 감염
건강한 각 상태의은으로 변환됩니다 감염된 에 따라, 감염 속도 .
5 단계 : 전염
전염 율 에 따라 각 상태의 정상 상태가 감염 됨으로 변환됩니다 . 이 숫자는 감염된 감염률 과 감염률 을 곱하여 계산됩니다 .
6 단계 : 멸종
감염률 은 치사율 에 따라 Dead 로 전환됩니다 . 숫자는 곱하여 감염을 의해 치사율 평가 .
7 단계 : 플레이어 턴
각 플레이어는 입력을 받고 출력 순서대로 실행되는 3 가지 액션을 출력해야합니다.
규칙
- 봇은 다른 특정 봇을 이길 수 있도록 작성해서는 안됩니다.
- 파일 쓰기가 허용됩니다. "yoursubmissionname.txt"에 쓰면 게임이 시작되기 전에 폴더가 비워집니다. 다른 외부 리소스는 허용되지 않습니다.
- 제출 한 내용은 1 초당 (도시 당) 응답합니다.
- 제출물을 컴파일하고 실행하는 명령을 제공하십시오.
승리
우승자는 50 라운드 후 가장 건강한 사람 입니다. 플레이어가 마지막으로 살아있는 경우 (0 Healthy 또는 Infected 이상 ) 게임이 중지되고 승리합니다. 여러 플레이어가 같은 양의 Healthy를 가지고 있다면 가장 감염된 플레이어 가 승리하고 Dead 가 적은 플레이어 가 승리 합니다.
제어 장치
컨트롤러는 GitHub에서 찾을 수 있습니다 . 또한 Java로 작성된 세 개의 샘플 봇이 포함되어 있습니다.
실행하려면 프로젝트를 확인하고 Java IDE에서 엽니 다. main
클래스 의 메소드의 진입 점입니다 Game
. Java 8이 필요합니다.
봇을 추가하려면 먼저 컴파일 된 Java 버전 (.class 파일) 또는 해석 된 언어의 소스가 필요합니다. 프로젝트의 루트 폴더에 배치하십시오. 그런 다음 players
패키지 에 새 Java 클래스를 작성하십시오 (기존 봇에서 예를 들어 볼 수 있음). 이 클래스는 Player
메서드를 재정의하도록 구현해야합니다 String getCmd()
. 반환 된 문자열은 봇을 실행하기위한 쉘 명령입니다. 예를 들어 다음 명령으로 Ruby 봇을 작동시킬 수 있습니다 return "C:\Ruby\bin\ruby.exe MyBot.rb";
. 마지막으로 클래스 players
상단에 배열에 봇을 추가하십시오 Game
.
최종 결과 (2016-03-04 08:22 GMT)
글로벌 (100 평판) :
100 게임 결과 : http://pasted.co/942200ff
1. EvilBot (24, 249, 436)
2. Triage (23, 538, 486)
3. WICKED (23, 537, 489)
4. Israel (23, 40, 240)
5. InfectedTown (22, 736, 482)
6. ZombieState (22, 229, 369)
7. Mooch (22, 87, 206)
8. InfectedHaven (21, 723, 483)
9. Crossroads (16, 9, 136)
10. TheKeeper (3, 4, 138)
11. Terrorist (0, 595, 496)
12. InfectionBot (0, 511, 430)
13. FamilyValues (0, 6, 291)
14. UndecidedBot (0, 0, 20)
15. XenoBot (0, 0, 26)
16. Researcher (0, 0, 33)
17. Strategist (0, 0, 42)
18. TheCure (0, 0, 55)
19. Socialist (0, 0, 67)
20. TrumpBot (0, 0, 77)
21. CullBot (0, 0, 81)
22. BackStabber (0, 0, 87)
23. BlunderBot (0, 0, 104)
24. RemoveInfected (0, 0, 111)
25. PFC (0, 0, 117)
26. BioterroristBot (0, 0, 118)
27. PassiveBot (0, 0, 118)
28. Smaug (0, 0, 118)
29. WeaponOfMassDissemination (0, 0, 119)
30. AllOrNothing (0, 0, 121)
31. Obamacare (0, 0, 122)
32. DisseminationBot (0, 0, 123)
33. CureThenQuarantine (0, 0, 125)
34. Madagascar (0, 0, 129)
35. OpenAndClose (0, 0, 129)
36. ThePacifist (0, 0, 130)
37. MedicBot (0, 0, 131)
38. Medic (0, 0, 133)
39. Salt (0, 0, 134)
40. Piecemeal (0, 0, 136)
41. Graymalkin (0, 0, 137)
42. PureBot (0, 0, 140)
43. MadScienceBot (0, 0, 144)
44. BipolarBot (0, 0, 149)
45. RedCross (0, 0, 151)
최후의 심판 (200 평판) :
100 게임 결과 : http://pasted.co/220b575b
1. FamilyValues (5708, 14, 2)
2. BlunderBot (5614, 12, 3)
3. Graymalkin (5597, 17, 4)
4. PureBot (5550, 12, 5)
5. Crossroads (5543, 11, 4)
6. Salt (5488, 24, 7)
7. CureThenQuarantine (5453, 13, 7)
8. Piecemeal (5358, 121, 23)
9. TrumpBot (5355, 12, 5)
10. CullBot (5288, 12, 9)
11. AllOrNothing (5284, 13, 10)
12. Madagascar (5060, 180, 35)
13. TheKeeper (4934, 165, 44)
14. WICKED (4714, 25, 5)
15. Strategist (2266, 25, 5)
16. BackStabber (2180, 1327, 596)
17. RemoveInfected (2021, 33, 27)
18. OpenAndClose (1945, 667, 394)
19. Triage (1773, 401, 80)
20. TheCure (1465, 46, 26)
21. Obamacare (1263, 525, 247)
22. Mooch (1103, 546, 269)
23. Israel (1102, 580, 292)
24. RedCross (1086, 1700, 727)
25. ThePacifist (1069, 636, 580)
26. Researcher (1035, 113, 37)
27. UndecidedBot (825, 219, 93)
28. PassiveBot (510, 990, 567)
29. MedicBot (411, 1474, 667)
30. Medic (392, 1690, 619)
31. Socialist (139, 63, 90)
32. XenoBot (0, 82, 170)
참여해 주셔서 감사합니다. 게임을 실행하면서 봇을 디자인하고 코딩하는 데 시간이 많이 있었기를 바랍니다.