NOT: Bir eşleşme için gereken dilleri kuramadığım için bu zorluk şu anda öldü. Başkasının bunu yapmak için zamanı ve ilgisi varsa, ben karşı çıkmam.
Büyük afiş için gönderinin altına bakın.
Bu, yarı-kooperatif tepesi kralı mücadelesi, botların iki boyutlu bir ızgara grafiğiyle yolları çizdikleri. En fazla trafik çeken düğümleri kontrol eden bot kazanır. Bununla birlikte, aslında bir bağlantı yolu oluşturmak için birden fazla botun kaynağı gerekir, bu yüzden botların birlikte çalışması gerekir - bir dereceye kadar.
Oynanış
Aşağıda, N > 0
oyundaki botların sayısı olalım .
Izgara
Oyun, sol alt koordinatı olan iki boyutlu bir tamsayı ızgarasında oynanır . Koordinat Her ile üç koordinat giden kenarları vardır , ve burada, yukarıda -coordinates modulo alınır . Bu, şebekenin doğu ve batı kenarlarında dolaştığı anlamına gelir. Her alt koordinat bir kaynaktır ve her üst koordinat bir lavabodur .⌊4/3N2⌋ × ⌊4/3N2⌋
(0,0)
(x,y)
0 ≤ y < ⌊4/3N2⌋-1
(x-1,y+1)
(x,y+1)
(x+1,y+1)
x
⌊4/3N2⌋
(x,0)
(x,⌊4/3N2⌋-1)
Aşağıdaki resimde bir 8 × 8
ızgara gösterilmektedir.
Grafiğin her tepe noktası etkin değil , etkin veya bozuktur . Tüm köşeler etkin değildir ve daha sonra sahipleri olacak olan botlar tarafından etkinleştirilebilir. Ayrıca, botlar köşeleri kırabilir ve onarılamaz.
Siparişi ver
Bir dönüş, bir yıkım aşaması ve bir aktivasyon aşamasından oluşur . İmha aşamasında, her bot bir aktif olmayan tepe noktasını kırabilir. Bu köşe o andan itibaren kırılır ve hiç kimse tarafından etkinleştirilmeyebilir. Aktivasyon aşamasında, her bot bir aktif olmayan tepe noktasını aktif hale getirebilir. O andan itibaren, o köşeye sahipler ve başkası tarafından yeniden etkinleştirilemez. Birkaç bot, aynı sırayla etkinleştirmeleri durumunda, tek bir tepe noktasına sahip olabilir. Her aşamada, köşe seçimleri aynı anda yapılır.
puanlama
Bir tur tam dönüşler için sürer . Bundan sonra, tur aşağıdaki gibi puanlanır. Her bir aktif kaynak köşesinden, etkin köşeler boyunca rastgele derinlikli ilk bir arama gerçekleştiririz (bu, her bir köşenin çocuklarının rastgele bir sırada ziyaret edildiği anlamına gelir). Kaynaktan bir havuza bir yol bulunursa, o zaman yoldaki tüm köşeler için, tepe noktasının her sahibi bir puan alır.N2
N
Tüm oyun 100 tur sürer ve toplamda en yüksek puana sahip olan bot kazanır. Puanların varyansı çok yüksekse, bu sayıyı arttırabilirim.
Ek Kurallar
- Denetleyiciyle ya da diğer gönderilerle uğraşmak yok.
- Yarışmacı başına en fazla bir başvuru.
- Oyunun başında hiçbir özel metin dosyası dışında hiçbir harici kaynak silinmedi.
- Botunuzu belirli rakipleri yenecek veya destekleyecek şekilde tasarlamayın.
- Botunuzu derlemek ve çalıştırmak için komutlar verin. Debian Linux için serbestçe kullanılabilen herhangi bir derleyici / tercüman kabul edilebilir.
Kontrol eden, denetleyici
Kontrolör Python 3 ile yazılmıştır ve GitHub'da bulunabilir . Ayrıntılı talimatlar için README dosyasına bakın. İşte başlamanıza yardımcı olacak bir API:
- Her turun başında botlar başlatılır ve turun sonuna kadar devam eder. Kontrolör ile STDIN ve STDOUT aracılığıyla, yeni satır sonlandırılmış mesajları kullanarak iletişim kurun.
BEGIN [num-of-bots] [num-of-turns] [side-length]
başında girilir.DESTROY [turn]
Her yıkım evresinin başında girdi. BotunuzVERTEX x,y
bir köşe seçmek için ya da ile cevap verecektirNONE
.BROKEN [turn] [your-choice] [other-choices]
Her yıkım evresinin sonunda girilir. Diğer botların sırası her oyunun başında randomize edilir ancak oyun sırasında sabit kalır. Seçeneklerx,y
veya olarak sunulurN
.ACTIVATE [turn]
veOWNED [turn] [your-choice] [other-choices]
aktivasyon aşaması için yukarıdakilerin eşdeğerleridir ve aynı semantiklere sahiptir.SCORE [your-score] [other-scores]
Oyunun sonunda girilir.- Sizin bot sahiptir 1 saniye sonraki köşe bir aşamasının sonuçlarını analiz etmek ve seçmek için ve 1 saniye puan verilen sonra çıkmak için. Gönderimleri nispeten eski dizüstü bilgisayarımda test edeceğim, bu yüzden burada biraz boşluk bırakmak daha iyi.
Lütfen çıktı tamponunuzu temizlemeyi unutmayın. Aksi halde kumandayı bazı ortamlarda asabilirsiniz.
Liderler Sıralaması
Güncelleme tarihi: 13.03.2015
Peacemaker çalışıyor ve çalışıyor, Funnelweb de bir güncelleme aldı. Skorlar büyüklük sırasına göre yükseldi. Bağlayıcı iki oyunda zaman sınırını aştı.
Funnelweb: 30911
Connector: 18431
Watermelon: 3488
Annoyance: 1552
Explorer: 735
Checkpoint: 720
Random Builder: 535
FaucetBot: 236
Peacemaker: 80
ASCII sanat grafikleri ile dolu günlük, kontrol ünitesinin deposunda, içinde bulunabilir graphical_log.txt
.
Bazı gözlemler:
- Bağlayıcı, önünde tek bir tepe kesilerek kolayca durdurulabilir. Annoyance sık sık bunu yapıyor şüpheli. Ancak, şu anda çok az anlam ifade etmektedir çünkü yalnızca Bağlayıcı akla uygun bir yol inşa edebilir.
- Karpuz, basitçe bağlantı yolunda (DFS'nin köşelerini kullanması muhtemel olduğu için) gerçekleşerek iyi bir puan alabilir.
- Explorer karpuzlardan üzüm yetiştirmeyi sever.
- Güncellenen Funnelweb gerçekten iyi puanlar alır, çünkü Connector genellikle kılavuzun alt yarısında kilitlenir.
- Oyunlar oldukça uzuyor, ortalama tur makinemde yaklaşık 25 saniye sürüyor.
4/3*N^2
ve hatta robotlar geçerli yollar oluşturmakta zorlandı. Ancak, Connector bir hata nedeniyle geçici olarak diskalifiye edildi ve şimdi düzeltildi, oyunların daha ilginç olmasını bekliyorum. Bu gece başka bir parti yapacağım.