당신의 지질 학자 친구가 사무실 문을 거의 터뜨렸고, 눈이 크게 뜨거워졌고, 방금 발견 한 장소로 그를 데려 오라고 요청했습니다. 도중에 그는 문자 그대로 금을 쳤다고 생각한다고 설명합니다. 유일한 문제는 매우 불안정한 지붕이있는 동굴에 지하 깊은 곳에 묻혀 있다는 것입니다. 스펠 렁킹을하는 것은 너무 위험하므로 동굴 탐험 로봇 중 한 명이 로봇을 다시 잡아 당기기 전에 최대한 많은 금을 모으도록 프로그램하길 원합니다. 그는 또한 동굴을 조사하고 로봇에 해로울 수있는 야생 생물을 발견했으며 여전히 사용할 수있는 장비를 내려 놓았다고 언급합니다. 각 로봇에는 두 개의 암과 다양한 센서가 장착되어 있습니다. 현장에 도착하면 더 많은 코더를 모집 할 계획이라고 알려줍니다.
이제, 그 핵심에 이르기까지. 센서는 정보를 ASCII 문자로 프로그램에 전달합니다. 다음은 각 캐릭터의 의미와 봇이 동굴에서 만날 수있는 모든 것에 대한 설명입니다.
Code Name/Description
Y Your bot
You do things
@ Other bots
They do other things
- Ground
This doesn't do things
C Centipede
These will bite you and leave a poison effect
The bite will cost 1 health
The poison effect will last for 3 turns, costing 2 health each turn
B Bats
If bats end up in the same space you are, your bot runs in a random direction during its turn rather than what you told it to do
L Lion (because reasons)
Lions deal heavy damage, 10 health, each time they attack
F Food
Eating this will give you 5 health
Can only be used once
W Water
Drinking this will cure poison effects early
Can only be used once
R Revealer
This will increase the range of your visibility to an 11x11 grid
The extra range will only be 75% correct, but the original range won't be effected
K Knife
You do twice as much damage to other bots if you have a knife
G Gold
The whole reason you're doing this in the first place
N Nurse Nina
She mend you good
Restores your health by 10 while you occupy the same space as her
} Boulder
You can't walk over boulders, and neither can anything else
P Pit
If you fall in a pit, you will be stuck for 3 turns
동굴의 크기는 참여하는 봇 수에 따라 커집니다. 30x30으로 시작하며 모든 봇에 대해 10x10이 추가로 제공됩니다. 따라서 2 명의 봇이 50x50 동굴을 탐험하게됩니다.
봇은 20의 체력으로 시작하지만 건강에 대한 최대 제한은 없습니다.
입력:
STDIN을 통해 다음 형식으로 입력을받습니다.
20,5,10,1,0,True,False <-health, number gold pieces, number of turns your bot has lasted, number of until the poison wears off, number of turns until you are no longer stuck in a pit, if you have a revealer, if you have a knife
-----
-G}--
--Y-L
-C---
---B-
첫 번째 줄에는 봇에 대한 정보가 있고 나머지 줄에는 봇이 볼 수있는 그리드가 있습니다. 봇이 동굴의 4 개의 벽 중 하나에 대면하는 경우 다음과 같은 격자가 나타납니다 (서쪽으로가는 경우).
---
}--
Y--
---
---
동굴은 감싸지 않으며 비전도 아닙니다. 동굴의 벽은 표시되어 있지 않으며, 봇이 벽 근처에 있다는 것을 나타내는 유일한 표시는 시야가 줄어든다는 것입니다. Revealer를 사용하면 다음과 같은 것을 얻을 수 있습니다.
--------C--
LW--------B
---K-N-----
--------BR-
-F---------
--B--Y---@N
-W@---F----
------K-F--
----@-}----
R@---G}--}-
--------G-R
산출:
한 턴에 두 번 움직이며 다음과 같은 형식으로 출력됩니다.
MNNANW <- Moves are groups of 3 characters representing the action and the direction
가능한 조치는 다음과 같습니다.
M Move - Move your bot in the specified direction
A Attack - Attack the square in the specified direction
H Hold - Do nothing
가능한 지침은 다음과 같습니다.
NN - North (up)
NE - Northeast (up-right)
EE - East (right)
SE - Southeast (down-right)
SS - South
SW - Southwest
WW - West
NW - Northwest
동작은 왼쪽에서 오른쪽으로 적용됩니다.
회전 :
다음과 같은 방식으로 진행 상태를 바꿉니다.
독 효과는 중독 된 모든 플레이어에게 적용됩니다
비봇 이동 및 공격
2a. 사자, 지네 및 박쥐가 무작위로 움직입니다.
2b. 라이온스와 지네는 직접 인접한 모든 것을 공격합니다 (대각선 포함)
2c. 박쥐 효과는 박쥐와 같은 공간에있는 경우에만 봇에만 적용됩니다.
2d. 간호사 니나는 3 턴 동안 한 위치에 머무른 다음 임의의 위치로 점프합니다.
봇 이동
3a. 봇이 유효하지 않은 출력을 제공하면 이동하지 않습니다
3b. 봇은 가능한 한 출력으로 지정된 공간에 가까워 지려고 시도합니다 (자세한 내용은 하단의 참고 참조).
3c. 지네, 사자 또는 박쥐에 대한 한 번의 공격으로 사망
3d. 칼없이 다른 봇을 공격하면 5의 피해를 입히고 10은 칼로 공격합니다
규칙 :
OS X 또는 Linux에서 실행할 수있는 공통 언어를 고수하십시오.
선택적으로 1kb 이하의 데이터를 파일에 쓸 수 있습니다
채점 :
봇은 하나만 남을 때까지 또는 50 턴이 지나갈 때까지 동굴에 있어야합니다. 봇은 수집 한 금화 수와 지속 된 턴 수의 합으로 판단됩니다.
여기 에서 테스트를 위해 컨트롤러 코드를 다운로드 할 수 있습니다 (다운로드 할 때와 같은 디렉토리에 "bots"라는 폴더를 만들고 "bots"안에 봇을 넣으십시오) NumPy를 실행하려면이를 실행해야합니다. 그것을 파고 자유롭게 느끼십시오, 그러나 당신은 혼란을 변명해야 할 것입니다 ...
랜덤 봇에 대한 코드는 다음과 같습니다.
#!/usr/bin/python
import random as r
a = ['M','A','H']
d = ['NN','NE','EE','SE','SS','SW','WW','NW']
print(a[r.randint(0,2)]+d[r.randint(0,7)]+a[r.randint(0,2)]+d[r.randint(0,7)])
**** 봇은 항상 출력이 지정한 일반적인 방향으로 움직이지만 바위 나 벽에 막힌 경우 정확한 방향은 상황에 따라 다릅니다. 예를 들어 봇이 벽과 같은 경우 :
---
}--
Y--
---
---
그리고 당신의 출력은
MNWMSW
봇은 한 칸 아래로 이동합니다. 북쪽이나 서쪽으로는 움직일 수 없었으므로 그 움직임은 효과가 없었습니다. 남쪽으로 움직일 수 있었지만 서쪽으로는 움직일 수 없었습니다. 그러나 봇이 북동쪽으로 이동하려고하면 해당 공간으로 직접 이동합니다 (대각선 이동은 절차가 아니라 대각선)
리더 보드
이들은 4 게임의 평균 점수입니다.
The bot of Survival: 54.75
Coward: 52.25
Pufferfish: 50.00
Randombot: 50.00
Indiana Jones: 47.50
TheoremBot: 46.50