Ваш приятель-геолог ледь не збив двері у вашому кабінеті, коли він увірвався, широко схвильований, і попросив вас зайти з ним на сайт, який він щойно знайшов. По дорозі він пояснює, що вважає, що він буквально просто вразив золото. Єдина проблема полягає в тому, що він закопаний глибоко під землею в печері з дуже нестійким дахом. Це занадто небезпечно розбиратися, тому він хоче, щоб ви запрограмували одного з його печерних роботів, щоб зібрати якомога більше золота, перш ніж він витягне його назад. Він також згадує, що пробував печеру і знайшов дику природу, яка може бути шкідливою для роботів, а також, що він кинув там обладнання, яке може бути корисним. Кожен робот оснащений двома руками і датчиком. Коли ви приїдете на місце події, він каже вам, що планує набрати більше кодерів,
Тепер, аж до азотно-зернистого. Датчики передають інформацію вашій програмі як символи 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
Рухи застосовуються зліва направо.
Виходить:
Досягає прогресу наступним чином:
Ефекти отрути застосовуються до будь-якого гравця, який отруївся
Неботи рухаються та атакують
2а. Леви, сороконіжки і кажани рухаються випадковим чином
2б. Леви та сороконіжки атакують усе, що безпосередньо прилягає до нього (у тому числі по діагоналі)
2в. Ефект кажана буде застосований до бота, лише якщо він знаходиться на тому ж просторі, що і кажан
2d. Медсестра Ніна залишиться на місці протягом 3 витків, а потім перескочить у випадкове місце.
Боти рухаються
3а. Якщо ваш бот дає недійсний вихід, він не переміститься
3б. Ваш бот намагатиметься максимально наблизитися до простору, визначеного результатом (див. Примітку внизу для більш детальної інформації)
3в. Один напад на сороковуху, лева чи кажана вб'є її
3d. Напад на іншого бота без ножа завдасть 5 збитків, а 10 - ножем
Правила:
Дотримуйтесь загальних мов, які можна запустити на OS X або Linux.
Ви можете за бажанням записати у файл та не перевищувати 1 кбіт даних
Оцінка:
Боти будуть знаходитися в печері лише до тих пір, поки не залишиться лише один, або поки не пройде 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