Sürpriz yumurta avı
Bot yumurta yumurta bulmadan önce yumurta bulmak. Bot mutlu.
genel bakış
Bu, Paskalya ve Paskalya yumurtası avcılık geleneğinin onuruna verilen bir kral kralı mücadelesidir!
Botunuz, diyagonal dahil olmak üzere her yönde iki boşluktan oluşan bir vizyona sahiptir ve etrafınızda görebileceğiniz 5x5 kare oluşturur. Yumurta arıyor ve kim en çok yumurta bulursa kazanır!
Pano
Tahta o
, Paskalya yumurtası olan #
s, duvar olan *
s, diğer oyuncu olan s ve boş alan olan s'den oluşacaktır .
- Kenar uzunluğu olan bir kare olacaktır
(number of entries) * 3
. - Etrafı duvarlarla çevrili olacak.
- Duvarların içinde rastgele yerleştirilmiş düz çizgi duvarlar
#
2 ila 10 arasında rastgele bir uzunluğa sahip olacak.(number of entries) * 3
Onlardan olacak . - Yumurtalar daha sonra rastgele yerleştirilir. Bunlardan olacaklar
(number of entries) * 4
ve sadece boş () karelerde oluşturulacaklar.
- Kart oluşturma işleminin düzgün çalışması için en az 7 giriş olmalıdır.
İşte size test etmek için rastgele bir tahta üretecek bir JSFiddle . İşte bir örnek (number of entries) = 7
:
#####################
# o ##
# # o ##
# #o ###### ##
###### # ##
## o # # ##
## o# #o# o o##
## #o # # o # #
## # o # # # #
## ## # # o # #
## # # o # # #
## # o # ## # # #
## # # # #
# o # ## # #
# o oo ##o #
#o ####### oo ## #
# # # #
# o o o# #
# o #### o o#
# #
#####################
Kart oluşturulduktan sonra, her oyuncu rastgele bir kareye (boş alan) yerleştirilir.
Giriş
Altı satır giriş alacaksınız. İlk beş satır görüş alanınızdır (tahtanın sınırları dışındaki boşluklar ile temsil edilir X
ve orta alan daima*
siz olacaksınız) ve altıncı satır boş olacaktır (ilk başta).
Çıktı
Üç satır çıkacaksınız. İlk olarak, taşımak istediğiniz yön:
1 2 3
8 YOU 4
7 6 5
(9 hareket etmek istemiyorsanız hayır-op), ikincisi, A
ttack, C
ounter veyaN
othing'den biri (yakında yakında açıklanacaktır) ve thrid hattı 1024'e kadar herhangi bir uzunluk dizesi olacaktır Bu botun hafızası olacak. İstediğiniz için kullanabilirsiniz veya boş bırakabilirsiniz. Bu bellek daha sonra bir sonraki çalıştırmada programınızın altıncı girdi satırı olacaktır.
Diğer tüm çıktı satırları yok sayılır ve yalnızca bir satır varsa, ikincisinin boş olduğu varsayılır.
Hareketli
Aşağıdaki işlem nereye taşındığınızı belirlemek için kullanılır:
- Hareket ettiğinizde boş bir alana (
) girerseniz , oynatıcınız o alana yerleştirilir.
- Bir duvara girerseniz (
#
) girerseniz, hareketiniz yok sayılır ve sıranızı kaybedersiniz. - Bir yumurta (
o
) veya bir oyuncu (*
) ile sonuçlanırsanız , bu bilgiler saklanır ve herkes taşındıktan sonra kullanılacaktır.
Herkes taşındıktan sonra belirsizlikler giderilir.
Aynı alana inen iki oyuncu varsa, bir kavga gerçekleşir! Burasıdır A
/ C
/ N
play gelir. A
ttack othing'i yener N
(normal saldırı), N
othing ounter'ı yener C
(hiçbir şeye karşı C
koyamazsınız ) ve ounter ttack'ı yener A
(karşı saldırı). Bu savaşı kazanan oyuncu meydanında kalır ve kaybeden oyuncu başladıkları orijinal kareye geri döner. Beraberlik durumunda, her iki oyuncu da bulundukları yere geri döner.
Kaybeden veya berabere kalan bir oyuncu bulundukları yere geri dönerse ve orada başka bir oyuncu varsa, kavga olmaz ve diğer oyuncu da orijinal alanına geri döner. Eğer bu boşluk başka bir oyuncu vardır o oyuncu geri gider ve tüm oyuncular farklı mekanlarda olduğu kadar bu devam eder.
Bir alanda üç veya daha fazla oyuncu varsa, hepsi orijinal konumlarına geri döner.
Herhangi bir oyuncu hala yumurta üzerinde duruyorsa ...
- Oyuncu seçerse
A
, yumurta yok edilir. - Oyuncu seçerse
C
hiçbir şey olmaz ve oyuncu orijinal alanına geri döner. - Oyuncu seçerse
N
, yumurta yumurtayı alır! Oyuncunun puanı bir artar ve yumurta çıkarılır.
Diller
Her yarışmacı arasında adaleti sağlamak için Windows, OSX ve Linux'ta serbestçe bulunan herhangi bir dili kullanabilirsiniz. Kod serbestçe çalıştırılamıyor ancak derlenebiliyor veya bir biçimde paketlenebiliyorsa, lütfen bu biçimi de yanıtınıza ekleyin. İdeal olarak, kodunuzu daha yaygın bir dile (örn. CoffeeScript -> JavaScript) derleyebiliyorsanız lütfen bunu yapın.
puanlama
Puanınız, on koşuda topladığınız ortalama yumurta sayısı olacaktır. Tüm yumurtalar toplandığında veya (number of entries * 25)
dönüşler geçtiğinde bir çalışma sona erer . Her harita için tüm yumurtalara ulaşmanın mümkün olduğundan manuel olarak emin olacağım (tüm yumurtalar ulaşılana kadar sürekli haritalar oluşturarak).
sayı tahtası
Aşağıdaki koşulların tümü karşılandığında bir skor tablosu eklenecektir:
- Olumlu veya sıfır puanlı (aşağı oy verilmemiş) en az yedi geçerli başvuru gönderildi
- Bu zorluğun oluşturulmasından bu yana en az 48 saat geçti (UTC 14:23)
Kuralların belirsiz olduğu yerlerde açıklama eklemek dışında, kurallar bu yarışma öncesi dönemde değişmeyecektir. Skorbord oluşturulduktan sonra, girişlerinizi test edebilmeniz için test programı da burada yayınlanacaktır. Bunun için test kodu hala devam ediyor, ancak oynanabilir ve çalışıyor. İşte GitHub repo.
9
, asla anlamlı bir şekilde saldırıya uğramaz. Başka bir oyuncu (B) o oyuncuların karesine adım atar ve kazanırsa, A orijinal karesine (aynı olana) geri taşınır. Ama şimdi bir çatışma var çünkü hem A hem de B orada, bu yüzden B kendi meydanına geri dönmek zorunda. Böylece sonuç gerçek dövüşten bağımsızdır, B her zaman ilk kareye geri döner ve A her zaman konur. Bu, herkes için bir yolu engelleyerek başka bir gönderime yardımcı olabilecek her ikisini de yazmamı sağlayacaktı.