Jeolog arkadaşınız patladığında neredeyse ofis kapınızı çaldı, heyecanla gözlerini açtı ve onunla yeni keşfettiği bir yere gelmenizi istedi. Yolda kelimenin tam anlamıyla sadece altın çarptığını düşündüğünü açıklıyor. Tek sorun, çok dengesiz çatılı bir mağarada yeraltına gömüldü. Spelunking yapmak çok tehlikelidir, bu yüzden mağaralarından birini robotları keşfeden önce alabilecek kadar altın toplayacak şekilde programlamanızı ister. Ayrıca mağarayı araştırdığını ve robotlara zararlı olabilecek bir vahşi yaşam bulduğunu ve ayrıca hala kullanılabilir olabilecek bazı ekipmanları düşürdüğünü de belirtti. Her robot iki kol ve bir dizi sensör ile donatılmıştır. Sahneye geldiğinizde size daha fazla kodlayıcı almayı planladığını söyler,
Şimdi, aşağılık cesurca. Sensörler bilgileri programınıza ASCII karakterleri olarak iletir. İşte her karakterin ne anlama geldiğinin ve botun mağarada karşılaşabileceği her şeyin açıklaması:
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
Mağaranın büyüklüğü, kaç botun katıldığına bağlı olarak büyür. 30x30 olarak başlar ve her bot için fazladan 10x10 alır. 2 bot 50x50 mağarayı keşfedecek.
Botlar 20 sağlıkla başlar, ancak sağlık üzerinde maksimum bir limitleri yoktur.
Giriş:
STDIN aracılığıyla aşağıdaki biçimde girdi alırsınız:
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-
İlk satır botunuz hakkında bilgi içerir ve geri kalanı botunuzun görebileceği ızgaradır. Botunuz mağaranın 4 duvarından birine karşı ise, daha çok benzeyen bir ızgara elde edersiniz (Batı'ya kadar olma durumunda):
---
}--
Y--
---
---
Mağara etrafa sarılmaz ve vizyonunuz da sarılmaz. Mağaranın duvarları işaretlenmemiştir, botunuzun bir duvara yaklaştığını aldığı tek gösterge, görüşünün azalmasıdır. Revealer ile böyle bir şey elde edebilirsiniz:
--------C--
LW--------B
---K-N-----
--------BR-
-F---------
--B--Y---@N
-W@---F----
------K-F--
----@-}----
R@---G}--}-
--------G-R
Çıktı:
Aşağıdaki formatta çıkardığınız her turda iki hamle alırsınız:
MNNANW <- Moves are groups of 3 characters representing the action and the direction
Olası eylemler şunlardır:
M Move - Move your bot in the specified direction
A Attack - Attack the square in the specified direction
H Hold - Do nothing
Olası talimatlar şunlardır:
NN - North (up)
NE - Northeast (up-right)
EE - East (right)
SE - Southeast (down-right)
SS - South
SW - Southwest
WW - West
NW - Northwest
Hareketler soldan sağa uygulanır.
Dönüşler:
İlerlemeyi şu şekilde döndürür:
Zehirli etkiler, zehirlenen oyunculara uygulanır.
Bot olmayan hareket ve saldırı
2a. Aslanlar, Kırkayaklar ve Yarasalar rastgele hareket eder
2b. Aslanlar ve Kırkayaklar doğrudan bitişik olan her şeye saldıracaklar (çapraz olarak dahil)
2c. Yarasa efekti yalnızca botla aynı alanda bulunuyorsa uygulanacaktır.
2d. Hemşire Nina 3 turlu bir yerde kalacak ve daha sonra rastgele bir yere atlayacaktır.
Botlar hareket ediyor
3 A. Botunuz geçersiz çıktı veriyorsa, hareket etmeyecektir
3b. Botunuz çıkış tarafından belirlenen alana mümkün olduğunca yaklaşmaya çalışacaktır (daha fazla ayrıntı için alttaki nota bakın)
3c. Bir Kırkayak, Aslan veya Yarasaya yapılan bir saldırı onu öldürecek
3 boyutlu. Bıçak olmadan başka bir bota saldırmak 5 hasar ve 10 bıçakla
Kurallar:
OS X veya Linux'ta çalıştırılabilen yaygın dillere bağlı kalın.
İsteğe bağlı olarak bir dosyaya en fazla 1kb veri yazabilir ve bunu aşamazsınız
puanlama:
Botlar sadece hangisi kalıncaya veya hangisi önce gelirse gelene kadar 50 mağarada olacak. Botunuz, topladığı altın sikke sayısı ve kaç tur sürdüğü ile değerlendirilecek.
Kontrolör kodu test etmek için indirilebilir burada Sen çalıştırmak için numpy gerekir (eğer bunu indirmek aynı dizinde "bot" adı verilen bir klasör oluşturun ve "bot" içine bot koymak). Kazmaktan çekinmeyin, ama dağınıklığı bahane etmek zorunda kalacaksınız ...
Rastgele bir bot için bazı kodlar:
#!/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)])
**** Botunuz daima çıktınızın belirttiği genel yönde hareket edecektir, ancak bir kaya veya duvar tarafından engellenirse, kesin yön duruma bağlıdır. Örneğin, botunuz böyle bir duvara karşı ise:
---
}--
Y--
---
---
ve çıktınız
MNWMSW
botunuz bir boşluk aşağı inecek. Kuzey ya da Batı hareket edemedi, bu hareketin hiçbir etkisi olmadı. Güneyi hareket ettirebilir (ve çekebilir) ama Batı'yı hareket ettiremezdi. Bununla birlikte, botunuz Kuzeydoğuyu hareket ettirmeye çalıştıysa, doğrudan o alana gider (çapraz hareket prosedürel değil, çaprazdır)
Liderler Sıralaması
Bunlar 4 maçın ortalama skorlarıdır.
The bot of Survival: 54.75
Coward: 52.25
Pufferfish: 50.00
Randombot: 50.00
Indiana Jones: 47.50
TheoremBot: 46.50