Girişler şimdi kapalı. Son girişte herhangi bir yeni girdi veya düzenleme sayılmayacaktır.
Sohbete katılın!
Meydan okuma
Tuvali mümkün olduğunca boya ile doldurmaya çalışın. Zor işinizi boyayabilecek diğer botlara dikkat edin!
Not: Bu zorlama tarifinde boya , ızgaradaki karenin rengini değiştirmek için boyasız ve boyasız , ızgaradaki karenin 0 rengine sahip olduğu ve botlardan hiçbirine atfedilmediği anlamına gelir.
Giriş
İşlevinize dört argüman verilecek: kendinize, izgaraya, izgaradaki tüm botların konumu ve oyun bilgileri.
Kendim
Bu ızgara üzerinde renk ve konum belirtmektedir 1B dizidir: [id, xpos, ypos]
.
Kılavuzun sol üst köşesi konumdur (0, 0)
. Konum (1,0)
bunun sağında ve konum (0,1)
aşağıda
Kimliğiniz, renginizle eşanlamlı bir tamsayıdır (kimliğinizin ızgarayı nasıl boyadığınızı nasıl etkilediğini öğrenmek için aşağıya bakın). Kimliğiniz botunuza özeldir.
Kafes
Bu, her hücrenin ne renk olduğunu söyleyen tamsayıları içeren bir 2D dizisidir. Bir ızgara hücresinin sayısı 0
, hücrenin boyanmadığı anlamına gelir. Izgara hücresinin sayısı bir tamsayıysa x
, bu, hücrenin bot tarafından ID ile boyandığı anlamına gelir x
.
Pozisyonda ızgaranın rengini almak için (x, y)
, bu gibi bir dizi kullanımı: grid[x][y]
.
botlar
Bu, botların konumu hakkında bilgi içeren bir dizidir. Botlar dizisinin her elemanı, her bir botu tanımlayan ve şöyle görünen bir dizidir: botun kimliği [id, xpos, ypos]
nerede id
, botun xpos
x pozisyonu ve botun ypos
y pozisyonudur.
Bu dizi kendi botunuzun konumunu ve kimliğini içerir. Kaldırılan botlar bu diziye dahil edilmeyecektir.
Oyun Bilgisi
Bu akım oyun hakkında bilgileri içeren bir dizidir ve benzer: [roundNum, maxRounds]
nerede roundNum
şimdiki turun sayısıdır (1 endeksli) ve maxRounds
akım oyunda mermi sayısıdır.
Çıktı
Çıktı, işleviniz tarafından döndürülen bir dize olmalıdır. Bu hareket komutu.
Hareket komutu bir sonraki hareketinizi belirler. Mevcut komutlar:
up
down
left
right
wait
Ne zaman hareket edersen, taşıdığın kareyi boya. (daha fazla bilgi için aşağıya bakınız)
Nerede wait
anlamı kıpırdama. (ama üzerinde durduğun kareyi çizersin)
Izgara dışına çıkarmaya çalışırsanız, komutunuz göz ardı edilir ve aynı yerde kalırsınız.
Izgarayı boyama
Bir kareye ne zaman hareket edersen, onu boyarsın, ama o karenin renginin ne olacağını belirleyen kurallar var.
Kare boyanmamışsa (0), o zaman kendi kimliğinizle aynı renge boyamanız yeterlidir. Ancak, kare daha önce boyanmışsa (sıfır olmayan), o zaman karenin sonuç rengi, aşağıdaki JavaScript koduna göre bulunur:
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
Bu formül bir botun boyamadan kendi renginin üzerinde hareket etmesini sağlayacak şekilde yapılmıştır.
Eliminasyon
5. turdan sonra, boyanmış bir veya daha az kareniz varsa (ızgaradaki sizinle aynı renkteki karelerin sayısı), o zaman elenirsiniz. Bu, artık oyunda olmayacağınız ve otomatik olarak kaybedeceğiniz anlamına geliyor.
kurallar
- Kodunuz türün bir işlevi olmalıdır
function(myself, grid, bots, gameInfo) {
// Code here
return move;
}
- Izgara, yan uzunlukta bir kare olacaktır
- Belirli botların hedef olmasını engellemek için botların ID'leri rastgele seçilecektir.
- İki bot aynı alanı kapladığında, o boşluğun rengi boyanmaz.
- Hareket sıra tabanlı yani, bir yuvarlak sırasında ek olarak, tüm botlar özdeş ile beslenir
grid
,bots
vegameInfo
bağımsız değişkenler
- En fazla üç bot oluşturabilirsiniz
- Botlar birlikte çalışabilir ancak birbirleriyle iletişim kurmamalıdır ve birbirlerinin kimliklerini bilmeyeceklerdir. Kazananlar takım olarak değil bireysel olarak verilecek.
- Önceden seçilmiş tek bir botu kasten hedefleyen bir bot oluşturmamalısınız. Bununla birlikte, genel bir bot sınıfının taktiklerini hedefleyebilirsiniz.
- Botunuz veri depolayabilir
window.localStorage
. Her bot kendi veri nesnesini kullanmalıdır. Bir botun başka bir botun verilerini okuduğu tespit edilirse (yanlışlıkla veya bilerek), sorun çözülene kadar diskalifiye edilir. - Botunuz rastgele sayılar kullanıyorsa, lütfen
Math.random()
kontrolör
Kontrolör burada bulunabilir:
https://gist.github.com/beta-decay/10f026b15c3babd63c004db1f937eb14
Veya burada çalıştırabilirsiniz: https://beta-decay.github.io/art_attack
Not: Web sayfasının herhangi bir zamanda değişebileceği için çevrimdışı testler yapmanızı (denetleyiciyi ana sayfadan indirin) öneririm.
Tüm botlar eklendiğinde, 10.000 oyunu grafiksel arayüzü olmayan soyulmuş kontrolörle oynayacağım. Burada çalıştırabilirsiniz: https://beta-decay.github.io/art_attack/fast
Kazanan
Tuvalin çoğunu dolduran oyuncu oyunu kazanır (bir oyun 2000 turdur). Beraberlik durumunda, çekilen tüm oyuncular kazanır.
10.000 oyundan en fazla kazanan oyuncu mücadeleyi kazanır.
10.000 maçın gelecek pazartesi günü oynanacağı tahmin ediliyor (2018-08-27, 23:00 UTC + 1).
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
Bir botun şanslı olup olmadığına veya büyük rakiplerin (veya boyandığının) üzerini boyayacağının , formülle yapmanın çok daha fazla olduğunu varsayardım . Ayrıca seçtikleri bir botu tek elle yok edebilecek trolleri / avcıları da hesaba katın. Her iki şekilde de, 10000 oyunlarında ortalamalar.
[botColour, 0, floorColour][Math.abs(botColour - floorColour)%3]
Lütfen ingilizceye tercüme eder misiniz lütfen?