Tarihsel arka plan
Kalkan duvarı, M.Ö. en az 2500 yılına kadar uzanan taktik bir savaş oluşumudur . Bir `` duvar '' oluşturmak için kalkanlarının yoldaşlarıyla örtüşen savaşçılardan oluşuyordu. Taktiğin çekiciliği, en vasıfsız savaşçıların bile bir kalkan ve silahları olduğu sürece bir duvarda savaşabilmelerinden kaynaklanmaktadır. Duvarların yakınlığı nedeniyle hareket etmek için çok az yer vardı ve savaş genellikle keskin silahlarla savaşan şoke bir maç haline geldi.
Meydan okuma
Göreviniz, savaşçıların iki dizisi / listesi / vektörü girdi olarak verildiğinde, savaşın sonucuna karar veren bir program veya işlev oluşturmaktır. Listeler tek satırlık bir kalkan duvarını temsil edecek ve belirli bir gösterimi takip edecekler:
Vikingler:
İskandinav savaşçıların savaşmak için sert bir dürtüsü vardı. 8. yüzyılın sonundan 11. yüzyılın ortalarına kadar, Danimarkalı Vikingler İngiltere krallıklarını istila ve tarım arazileri aramak için işgal etti. Bu mücadelenin amacı için, bunlar Vikinglerin savaşçılarıdır:
J
Arl: Genellikle duvarın merkezine adamlarını lider buldum, Jarls viking ordularını liderleri idi. Ölmek için 15 hasar alır ve her turda 2 hasar verir.B
Erserker: fantezi büyük ölçüde Berserkers imajını bükülmüş olsa da, bu savaşçılar kalkanlarının dışındaki koruma her türlü olmadan bir trans benzeri öfke savaşmak için biliniyordu. Ölmek üzere 6 hasar alır ve her turda 3 hasar verir.C
Hieftain: Chieftains onların hizmetinde özgür insanlar vardı zengin adamlardı. Savaşta genellikle büyük zafer ve zenginlik kazanırlardı. Ölmek için 10 hasar alır ve her turda 2 hasar verir.- Özgür
M
tr: Bir şefe hizmet eden savaşçılar. Ölümüne kadar efendileri için savaşmaya yemin ettiler. Ölmek üzere 8 hasar alır ve her turda 1 hasar verir. S
Kald: Skalds, genellikle ozanlar olarak tercüme İskandinav savaşçı büyük işlerin hakkında şiirler, öyküler veya şarkı yazmak için işe alındı ücretsiz adamlardı. Ölmek için 8 hasar alır ve her komşu savaşçıya 1 ilave hasar verir. Skalds hiçbir zarar vermez . Warriors olamaz 1'den fazla bonus hasar bu şekilde kazanırlar.
Saksonlar:
Saksonlar, 5. yüzyılda Roma İmparatorluğu'nun ölümünün ardından kıta Avrupa'sından İngiltere'ye yerleşmeye başladılar. Bu mücadelenin amaçları için saksonların savaşçıları var:
E
Arl: Ealdormen yaygın Earls denilen yüksek asalet üyeleriydi. Genellikle büyük topraklar tutuyorlardı ve yüzlerce hatta binlerce yeminli erkekleri vardı. Ölmek için 20 hasar alır ve her turda 1 hasar verir.K
Gece: Daha iyi bir terim olmadığı için, şövalyeler bazı arazinin sahibi küçük soylular vardı. Çoğu durumda şövalyeler bir Earl'e hizmetkar yemin etti. Ölmek için 10 hasar alır ve her turda 2 hasar verir.W
Arrior: Yaygın erkek, kara veya bir şövalye servis köylüler olmadan genellikle minör soylular. Bir Şövalye veya Earl'e bitişik olduğunda, savaşçıların +1 hasar bonusu vardır. Ölmek üzere 8 hasar alır ve her turda 2 hasar verir.F
Yrd: Fyrd bir milis benzeri herhangi bir silah (veya uygulamak tarım silah benzeri) onlar duvarda savaşmak zorunda getirecek özgür insanlar, genellikle yoksul çiftçiler, grup. Ölmek için 5 hasar alır ve her turda 1 hasar verir.P
Riest: Rahipler yüksek Tanrı'nın kelimelerin müjdesini olmanın erken Sakson kültüründe değerli edildi. Rahipler ölmek için 15 hasar alırlar ve her komşu savaşçının dağıtılabileceği 1 hasarı önlerler. Rahipler zarar vermez . Rahipler edemez bir savaşçıya 1'den fazla zarar görmesini önlemek.
Duvar
Duvarlar merkezlerinde buluşuyor. Her turda, her savaşçı doğrudan önündeki savaşçıya hasar verir veya önünde yaşayan bir savaşçı yoksa, en az sağlığa sahip çapraz olarak bitişik yaşayan savaşçı. Bir kravat varsa, duvarın kenarına daha yakın olan savaşçıyı seçin.
Misal:
Vikings
[M,M,M,B,B,C,J,C,B,B,M,M,M]
[F,F,F,W,W,K,E,K,W,W,F,F,F]
Saxons
To make matters easier, let's convert these walls into numbers:
Round 0:
M M M B B C J C B B M M M
[8,8,8,6,6,10,15,10,6,6,8,8,8]
[5,5,5,8,8,10,20,10,8,8,5,5,5]
F F F W W K E K W W F F F
Round 1: Notice that 2 of the Saxons' warriors are adjacent to Knights, so they have a +1 damage bonus.
M M M B B C J C B B M M M
[7,7,7,4,3,8,14,8,3,4,7,7,7]
| | | | | | || | | | | | |
[4,4,4,5,5,8,18,8,5,5,4,4,4]
F F F W W K E K W W F F F
Round 2:
M M M B B C J C B B M M M
[6,6,6,2,0,6,13,6,0,2,6,6,6]
| | | | | | || | | | | | |
[3,3,3,2,2,6,16,6,2,2,3,3,3]
F F F W W K E K W W F F F
Round 3: Remember to collapse the arrays to account for dead warriors. Also, notice that the 2 outermost Fyrd are now attacking the diagonally adjacent viking.
M M M B C J C B M M M
[4,5,4,0,4,12,4,0,4,5,4]
/| | | | | || | | | | |\
[2,2,2,1,0,4,14,4,0,1,2,2,2]
F F F W W K E K W W F F F
Round 4: Notice once again the saxon Warriors next to the Knights dealing 3 damage:
M M M C J C M M M
[2,4,1,2,11,2,1,4,2]
/| | | | || | | | |\
[2,1,1,0,2,12,2,0,1,1,2]
F F F W K E K W F F F
Round 5:
M M M C J C M M M
[1,3,0,0,10,0,0,3,1]
| | | | || | | | |
[1,0,0,0,10,0,0,0,1]
F F F K E K F F F
Round 6:
M M J M M
[1,2,9,2,1]
\| | |/
[0,8,0]
F E F
Rounds 7 and 8:
M M J M M M M J M M
[1,2,8,2,1] [1,2,8,2,1]
\|/ \|/
[4] [0]
E E
Output: Viking victory.
Kurallar:
- Varsayılan Loopholes uygulanır.
- Herhangi bir uygun IO yöntemini kullanabilirsiniz .
- Bu kod golf , bu yüzden en kısa kod (bayt, dil başına) kazanır.
- Sen olmayabilir listeleri aynı uzunluğa sahip olacak varsayalım, ama onlar olacak hep (listeler farklı boyutlarda ise her zaman, her listedeki savaşçı bir tek sayı olacak) kendi merkezlerinde bir şekilde sıralanır olacak.
- Herhangi bir doğruluk / falsey değeri çıktısı verebilirsiniz. Lütfen cevabınızda "Viking / Sakson zaferi" nin eşdeğerlerini belirtin .
- Bir duvarın tüm savaşçıları öldüğünde kaybeden belirlenir.
Kod yürütme sırasında hizalanamayan duvarlarla sonuçlanırsanız, bunları mümkün olduğunca merkezi olarak hizalayın ve uzun duvarda bir ekstra savaşçı sağ tarafa bırakın. Örneğin:
[M,M,M,J,M,M,M] [K,E,K,W]; [B,B,B,J] [K,K,W,W,K,E,K,W,W,K,K]
Kodunuzu yalnızca test durumlarındakilerle değil, herhangi bir duvar kurulumuyla denemekten ve test etmekten çekinmeyin.
Test Durumları:
V: [M,M,B,C,B,C,J,C,B,C,B,M,M]
S: [F,F,W,K,W,K,E,K,W,K,W,F,F]
O: Viking victory.
------------------------------
V: [M,M,M,M,M,M,M,M,M,M]
S: [W,W,W,W,W,W,W,W,W,W]
O: Saxon victory.
------------------------------
V: [B,C,M,B,C,M,M,C,B,M,C,B,M]
S: [W,F,W,F,E,E,E,F,W,F,W]
O: Viking victory.
------------------------------
V: [B,B,B,J,B,B,B]
S: [W,W,W,W,K,K,K,E,K,K,K,W,W,W,W]
O: Saxon victory.
------------------------------
V: [J]
S: [E]
O: Viking victory.
------------------------------
V: [C,C,C,C,B,B,M,M,M,M,J,J,J,M,M,M,M,B,B,C,C,C,C]
S: [K,K,K,K,K,K,K,K,K,K,W,E,W,K,K,K,K,K,K,K,K,K,K]
O: Saxon victory.
------------------------------
V: [M,M,S,C,B,J,B,C,S,M,M]
S: [F,K,P,W,K,E,K,W,P,K,F]
O: Saxon victory.
------------------------------
V: [S,S,S,...,S]
S: [P,P,P,...,P]
O: UNDEFINED (since both priests and skalds deal no damage, you can output anything here.)
------------------------------
Bazı tarihsel yanlışlıklar var. Onları belirtmekten çekinmeyin, düzeltmek için elimden geleni yapacağım.
(health, damage, damagebonus, protbonus)
)