4 인 스탠드 오프
기술
당신은 어떻게 든 자신을 4 방향 격리로 발견했습니다. 장전 된 총이 당신의 손에 달려 있고, 수류탄이 벨트에 걸렸습니다.
목표는 스탠드 오프가 끝날 때 가장 건강을 유지하는 것입니다. 최대 한 사람이 건강 상태가 양호하면 스탠드 오프가 종료됩니다.
각 플레이어는 5
체력을 가지며 체력이 / 이하로 떨어지면 죽습니다 0
. 플레이어가 죽는 턴은 플레이어가 마지막으로 피해를 입을 수있는 턴입니다.
스탠드 오프 끝에 라이브 플레이어가 있으면 해당 플레이어가 승리합니다. 그렇지 않으면 체력이 가장 낮은 플레이어가 승리합니다.
행위
촬영 : 누군가를 촬영합니다.
2
살아있는 적을 쏘면 피해0
죽은 적을 쏘면 피해health_at_start_of_turn+2
자신을 촬영하면 손상됩니다. (이것은 대부분의-2
건강 상태를 유지합니다.)- 한 차례의 적이 자신을 쏠 때와 같은 차례에 당신을 쏘면, -4 체력으로 스탠드 오프를 종료합니다 (여러분은 자신을 죽인 차례에 다른 플레이어에게 피해를 입 힙니다).
- 다음 턴에 당신의 행동은 무시 될 것
Nothing
입니다.
닷지 : 상대방의 샷을 피하십시오.
준비 : 수류탄을 풀고 던질 준비를합니다.
- 폭파하기 전에 세 번만 던질 수 있습니다 (
6
자신에게3
피해 , 모든 살아있는 적에게 피해) - 던지지 않은 수류탄으로 죽는 것은 3 턴 동안 수류탄을 던지지 않는 것과 같습니다.
- 폭파하기 전에 세 번만 던질 수 있습니다 (
던지기 : 수류탄을 누군가에게 물려주고 최선을 다하십시오.
8
살아있는 경우 대상이 피해를 받습니다.3
살아있는 경우 다른 사람 (자신 포함)이 피해를 받습니다.
아무것도 아님 : 차례를 지키고 모두가 죽는 것을 지켜보십시오.
입력
귀하의 프로그램에는 다음 정보가 전달됩니다 :
- 각 선수의 건강
스탠드 오프 시작 이후 해당 플레이어가 수행 한 작업 목록 아래는 플레이어 당 전달되는 정보의 형식입니다.
[Health],[Action 1],[Action 2],[Action 3],...
조치는 출력 섹션에 지정된 형식으로 제공됩니다 .
공백으로 구분하여 하나의 인수로 전달 된 4 개의 문자열을받습니다. 이 문자열의 순서는 다음과 같습니다.
[Player Info] [Opponent 1 Info] [Opponent 2 Info] [Opponent 3 Info]
문자열은 두 번째 인수로 전달됩니다. 첫 번째 인수에는 규정중인 스탠드 오프를 고유하게 식별하는 정수가 포함됩니다. 동일한 플레이어 세트 사이의 스탠드 오프는 동시에 이루어지지 않아야합니다. 그러나 동시에 여러 스탠드 오프 가 발생합니다.
예를 들면 다음과 같습니다.
$./Player.bash 5 "3,S2,N 5,P,N 3,S0,N -2,S3,N"
현재 플레이어와 두 번째 상대의 체력은 3이고 첫 번째 상대의 체력은 5이고 세 번째 상대의 체력은 -2이며 죽었습니다.
첫 번째 차례 :
- 플레이어 1 샷 적 2
- 적 1은 수류탄을 준비했습니다
- 적 2 탄 선수
- 적 3는 자신을 쐈다
두 번째 차례 :
- 모든 선수는 아무것도하지 않았다. (플레이어와 적 2는 이전 턴에서 쏜 이후로 아무 것도 할 수 없습니다. 적 3은 죽었습니다 :
Nothing
나머지 스탠드 오프를 위해 할 것 입니다.)
스탠드 오프 시작시 두 번째 인수는 다음과 같습니다 5 5 5 5
.
산출
아래 나열된 형식으로 명령을 출력해야합니다. 유효하지 않은 출력은 'Nothing'으로 해석됩니다. 대상을 요구하는 명령 뒤에 정수 ( 0-3
, 0
플레이어를 1-3
나타내고 적 1-3을 나타냄) 가 와야합니다 .
S[target]
: [타겟]을 촬영합니다.D[target]
: [대상]을 피하려고합니다.P
: 수류탄을 준비하십시오.T[target]
: 수류탄을 [대상]에 던지십시오.N
: 아무것도하지 마세요.
타겟을 필요로하지만, 간격이 타겟에 공급되는 명령 0
및 3
또는 전적으로 타겟팅 가정한다 공급 대상 0
(플레이어).
채점
각 스탠드 오프가 끝나면 플레이어는 다음 공식으로 계산 한 점수를받습니다.
35 + health at end of standoff
플레이어가 체력이 부정적인 상태에서 스탠드 오프를 끝내면 35 점 미만 의 점수 를 받습니다 . 다음 포인트도 보너스로 보상됩니다.
- 대부분의 건강 : +4 점
- 두번째로 건강 : +2 포인트
- 세 번째로 건강 : +1 포인트.
동점 인 경우, 더 낮은 보너스가 부여됩니다 (두 사람이 건강 상태가 가장 높으면 둘 다 +2, 가장 건강 상태가 좋은 사람이 3 명인 경우 +1, 모든 사람이 동등하게 종료하면 +0).
최종 점수는 모든 개별 점수의 평균을 계산하여 결정됩니다.
규칙 / 세부 사항
- 턴 내 이벤트 순서는 다음과 같습니다.
- 모든 플레이어는 자신의 행동을합니다.
- 체력이 0 이하인 플레이어는 죽습니다.
- 미사일 수류탄은 폭발해야하며 폭발합니다 (방금 사망 한 플레이어는 여전히 부상을당했습니다.
- 항목 간 협업이 없습니다.
- 각 4 명의 플레이어 사이에 3 개의 스탠드 오프가 발생합니다. (플레이어 주문은 각 격리에 따라 다를 수 있습니다).
- 디스크 공간의 과도한 메모리를 사용하는 항목은 실격됩니다.
- 출품작 이외의 파일을 읽거나 수정하면 출품작이 실격 처리됩니다.
- 음주 운전으로 구동되는 트럭은
50th
턴이 끝나도 스탠드 오프가 아직 끝나지 않은 경우 턴 후에 모든 살아있는 플레이어를50th
돌립니다.- 이 트럭은 모든 라이브 플레이어에게 20의 피해를줍니다.
- 스탠드 오프가 빠르게 발생합니다. 1 초 후에 프로그램이 중단됩니다.
- 당신이 죽은 후에도 매번 프로그램이 호출됩니다.
- 디렉토리에서만 파일을 읽거나 쓸 수 있습니다 (항목 이름이 JohnDoe 인 경우 디렉토리 player / JohnDoe /에 파일을 저장할 수 있음). 그러나 스크립트가 실행되는 동안 현재 디렉토리가 아닙니다.
- 스탠드 오프는 Arch Linux (릴리스 2014.08.01)를 실행하는 시스템에서 진행됩니다.
게시물에 다음을 포함하십시오.
- 봇의 이름
- 봇 (예 :)
java Doe.java
입력 을 실행하기위한 쉘 명령 은 단일 인수 (java Doe.java 5 "-2,S0 -2,S1 -2,S2 5,N"
) 로 명령 행을 통해 전달됩니다. - 봇 코드
- 봇 컴파일 방법 (해당되는 경우)
- 언어 (및 특히 파이썬의 경우 해당되는 버전)
* 컨트롤러가 6 분 동안 너무 오래 걸립니다.
스코어 보드
Observer 43.280570409982
MuhammadAli 43.134861217214
Osama 43.031983702572
LateBoomer 42.560275019099
SimpleShooter 42.412885154062
LessSimpleShooter 42.3772
Neo 42.3738
Scared 42.3678
Richochet 42.3263
Equivocator 42.2833
TwentyFourthsAndAHalfCentury 42.2640
Darwin 42.1584
HanSolo 42.1025
Coward 42.0458
ManipulativeBastard 41.8948
Sadist 41.7232
Aggressor 41.7058
CourageTheDog 41.5629
Grenadier 40.9889
Bomberman 40.8840
Spock 40.8713
Sniper 40.6346
DONTNUKEMEBRO 39.8151
PriorityTargets 39.6126
Hippolyta 39.2480
EmoCowboy 39.2069
Zaenille 39.1971
AntiGrenadier 39.1919
PoliticallyCorrectGunman 39.1689
InputAnalyzer 39.1517
Rule0Bot 39.1000
BiasedOne 39.0664
Pacifist 39.0481
StraightShooter 39.0292
Ninja 38.7801
MAD 38.2543
Monkey 37.7089
Label1Goto1 36.2131
Generated: 2014/08/22 03:56:13.470264860 UTC
로그 : GitHub에서