Burada yeni bir kod golf denemek istiyorum. Bonuslara benzer şekilde, mücadelenin tüm bölümlerinin tamamlanması gerekmez, ancak her cevap belirli bir boyutta bir alt küme uygulamak zorundadır (ve her cevabın uygulamak zorunda olduğu bir çekirdek vardır). Bu yüzden golfün yanı sıra, bu zorluk birlikte iyi giden bir dizi özellik seçmeyi de içerir.
Kurallar
Kingdom Builder (sivri uçlu) altıgen ızgarada oynanan bir masa oyunudur. Tahta, her biri 10x10 heks hücre içeren dört (rastgele) kadrandan oluşur (böylece tam bir tahta 20x20 olacaktır). Bu meydan okuma amacıyla, her altıgen hücre su ( W
), dağ ( M
) bir kasaba ( T
), bir kale ( C
) veya boş ( .
) içerir. Yani bir çeyrek daire şöyle görünebilir
. . W . . . . . . .
. M W W . . . . . .
. M . . W . . . T .
M M . W . . . . . .
. . M . W W . . . .
. . . . . W W W W W
. T . . . . . . . .
. . W . . C . . . .
. . W W . . . . M .
. . . . . . . M M .
İkinci satır her zaman ilk satırdan sağa kaydırılır. Oyuncular 1
, 4
her biri boş hücrelere en fazla 40 yerleşim yerleştirebilir (bu meydan okuma için göz ardı edeceğimiz bazı kurallara uyarak). Oyunun sonunda olası bir tahta şudur:
3 3 W . . . 4 . 4 . . 2 W . 4 . . 4 . 4
3 M W W . 1 1 . . 4 2 W . 3 C 4 4 . . 4
3 M 2 2 W 1 1 1 T 3 2 W 4 3 . 1 4 . 4 .
M M . W 2 2 . . . 2 2 W 3 . 1 1 1 . . .
. 4 M . W W 2 2 2 2 W W 3 . 1 4 . T . .
. . . . . W W W W W . 3 C 1 . . 2 2 2 2
. T 1 1 1 1 . . 2 . . 4 . . . 2 2 M M M
4 . W 4 . C 4 4 . . . . . . 2 M M M M M
. 4 W W . . . 4 M . . W . W . 2 2 2 M M
. . . . . . . M M . . W W . . . . 2 M .
. . . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 . 1
M 3 3 . . . . . . . . 4 . T 2 . 2 4 1 .
M M . C . 4 . 4 . . . . . 1 2 4 2 1 1 .
M . . 1 . 4 . . . . M M 1 2 . . 2 1 . .
. . . W 1 1 4 1 1 . . . 1 2 . . 2 W W W
. . 1 1 W 1 T . 1 1 1 1 T . . 2 W . 4 .
. 1 1 W . 3 3 . . . . . . . . 2 W 4 C 3
C 1 3 3 3 . 3 . 4 . 4 . 4 . . 2 W 1 1 M
4 3 3 4 . M 4 3 . . . . . . . 2 W . . .
. . . 4 . M M 3 . . 4 4 . 4 . 2 W W . .
Kadranları şöyle etiketleyeceğiz
1 2
3 4
Senin görevin böyle bir tahta puan olacaktır. Her zaman kullanılan bir temel puan ve her oyun için 3'ü seçilmiş 8 isteğe bağlı puan vardır. † Aşağıda, 9 skorun hepsini açıklayacağım ve yukarıdaki kurulumu her oyuncunun kaç puan alacağına örnek olarak kullanacağım.
† Gerçek oyunda 10 puan var, ancak iki tanesini bırakacağım çünkü kimse onları golf oynamak istemiyor.
Çekirdek puan. Bir oyuncu, yanında bir yerleşim yeri bulunan her astle için 3 puan alır C
. Örnek puanlar: 18, 0, 15, 12.
İsteğe bağlı puanlar.
Bir oyuncu en az bir yerleşime sahip olduğu her yatay sıra için 1 puan alır .
Örnek puanlar: 14, 20, 12, 16.
Her oyuncu için, yerleşim yerlerinin çoğunda yatay sırayı bulun (bir kravat durumunda herhangi birini seçin). Bir oyuncu o sıradaki her bir yerleşim için 2 puan alır .
Örnek puanlar: 14 (sıra 16), 8 (sıra 4, 5 veya 6), 28 (sıra 11), 10 (sıra 1).
Oyuncu, ater'in yanında inşa edilen her yerleşim için 1 puan alır
W
.Örnek puanlar: 13, 21, 10, 5.
Bir oyuncu bir dağın yanındaki her yerleşim için 1 puan alır
M
.Örnek puanlar: 4, 12, 8, 4.
Her bir çeyrekte her oyuncunun yerleşimlerini sayın. Çeyrek başına, en fazla sayıda yerleşime sahip oyuncuların her biri 12 puan , ikinci en fazla yerleşime sahip oyuncuların her biri 6 puan alır .
Örnek puanlar: 18 (6 + 0 + 6 + 6), 36 (12 + 12 + 0 + 12), 12 (0 + 0 + 12 + 0), 18 (12 + 6 + 0 + 0).
Her oyuncu için en az yerleşim sayısına sahip oldukları çeyreği belirleyin. Bir oyuncu bu çeyrekte her yerleşim için 3 puan alır .
Örnek puanlar: 18 (Çeyrek 2), 0 (Çeyrek 3), 15 (Çeyrek 1 veya 2), 27 (Çeyrek 3).
Bir oyuncu bağlantılı her yerleşim grubu için 1 puan alır .
Örnek puanlar: 7, 5, 6, 29.
Bir oyuncu , oyuncunun en büyük bağlantılı yerleşim grubundaki her 2 yerleşim için 1 puan alır .
Örnek puanlar: 4, 10, 8, 2.
Meydan okuma
Oyunda olduğu gibi size seçecek 3 opsiyonel puanlarının ve çekirdek puanı ve bu üç puanlarına göre verilen bir tahta skor. Kodunuz 4 puanlık bir liste oluşturmalıdır. Seçim konusunda bir kısıtlama var: Puanları 3 gruba ayırdım ve her gruptan birini uygulayacaksınız:
- 1 ve 2'den birini uygulayın .
- Birini uygulamak 3, 4, 5 ve 6 .
- 7 ve 8'den birini uygulayın .
STDIN, komut satırı bağımsız değişkeni, bilgi istemi veya işlev parametresi aracılığıyla girdi alarak bir program veya işlev yazabilirsiniz. Sonucu iade edebilir veya STDOUT'a yazdırabilirsiniz.
Giriş için herhangi bir uygun 1D veya 2D liste / dize biçimini seçebilirsiniz. Sen olabilir değil tam bitişiklik bilgi içeren bir grafiği kullanın. İşte altıgen ızgaralarda bazı iyi okumalarİlham almanız gerekiyorsa .
Çıktınız ayrıca herhangi bir uygun, anlaşılır liste veya dize biçiminde olabilir.
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.
Diğer Varsayımlar
Bunu varsayabilirsin ...
- ... her oyuncunun en az 1 yerleşimi vardır ve her oyuncunun 40'tan fazla yerleşimi yoktur.
- ... her çeyrekte bir kasaba ve iki kale ya da iki kasaba ve bir kale bulunur.
- ... kasabalar ve kaleler birbirinden yeterince uzaktır, öyle ki ikisine bitişik hiçbir yerleşim yeri olamaz.
Test Durumları
Yine de yukarıdaki tahtayı kullanarak, puanlama mekanizmalarının tüm olası seçenekleri için bireysel puanlar:
Chosen Scores Total Player Scores
1 3 7 52 46 43 62
1 3 8 49 51 45 35
1 4 7 43 37 41 61
1 4 8 40 42 43 34
1 5 7 57 61 45 75
1 5 8 54 66 47 48
1 6 7 57 25 48 84
1 6 8 54 30 50 57
2 3 7 52 34 59 56
2 3 8 49 39 61 29
2 4 7 43 25 57 55
2 4 8 40 30 59 28
2 5 7 57 49 61 69
2 5 8 54 54 63 42
2 6 7 57 13 64 78
2 6 8 54 18 66 51