Standart bir tuğla örgüyü şu şekilde temsil edelim: [__]
(ve üst kısmın açık olduğu gerçeğini görmezden gelin ). Bu tuğlalar istiflendiğinde diğer her katman tuğla yapımında olduğu gibi yarım tuğla ile dengelenir:
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
Böylece her tuğla en fazla altı komşuya sahiptir ve iki tuğlanın doğrudan dikey olarak sıralanması imkansızdır.
Kilit nokta, bu tuğlaların düzenlemelerinin harç değil , sadece yerçekimi tarafından bir arada tutulmasıdır. Bu nedenle, yapıdaki her tuğlanın sabit olması önemlidir, aksi takdirde bütün yapı kararsızdır.
Bir tuğlanın sabit kalmasının üç yolu vardır:
- Yerdeki tuğlalar (en alçak tuğla çizgisi) sabittir.
Doğrudan altında iki tuğla bulunan herhangi bir tuğla sabittir:
[__] <- this brick is stable [__][__] <- because these bricks hold it up
Aynı tarafta hem üstünde hem altında bir tuğla bulunan tuğlalar sabittir:
[__] [__] [__] [__] <- these middle bricks are stable [__] [__] because the upper and lower bricks clamp them in [__] [__] [__] [__] <- these middle bricks are NOT stable [__] [__]
Bu kurallardan örneğin düzenlemeyi görebiliriz.
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
kararsızdır, çünkü sağ üst tuğla kararsızdır, tek gereken budur.
Bir tuğla yapısı ancak tüm tuğlaları sabit olduğunda sabittir.
Meydan okuma
Senin görevin bir tuğla yapı dizgisini alan ve yapı sabit olduğunda bir hakikat değeri ve dengesizse sahte bir değer döndüren bir işlev yazmaktır. ( truthy / falsy tanımı )
Giriş dizisi isteğe bağlı olarak büyük olabilir, ancak boşlukları doldurma alanları tuğla boşluklarıyla her zaman dikdörtgen bir karakter ızgarası olacaktır. Karakter ızgarasının genişliği 4 ile bölünebilir ancak yükseklik tek veya çift olabilir.
Tuğla ızgara her zaman sol alt tuğla pozisyonunun yukarısında ve sağında uzanır:
.
.
.
BRK?BRK?BRK?BRK?
BRK?BRK?BRK?BRK?BRK?
BRK?BRK?BRK?BRK?
BRK?BRK?BRK?BRK?BRK? . . .
BRK?BRK?BRK?BRK?
BRK?BRK?BRK?BRK?BRK?
Yapıya bağlı olarak, her biri BRK?
bir tuğlayı ( [__]
) veya boş bir alanı (4 boşluk) temsil eder .
Yarım tuğla boşluklarının karakter ızgarasının dikdörtgen olmasını sağlamak için boşluklarla doldurulduğuna dikkat edin.
puanlama
Bayt cinsinden en kısa kod kazanır.
notlar
- İstenirse
.
, boş karakter yerine boşluk yerine kullanabilirsiniz . - Boş dize kararlı olarak kabul edilir.
- Dilinizde işlev yoksa, giriş olarak adlandırılmış bir string değişkeni kullanabilir ve sonucu başka bir değişkene atayabilirsiniz.
- Dilinizde dizeler yoksa, giriş için uygun olanı yapabilirsiniz.
Test Kılıfları
Boş satırlarla ayrılmış çeşitli test durumları. .
Boşluklar için boşluk yerine açıklık kullanılır.
Kararlı:
[__]
..[__]..
[__][__]
........[__]........
......[__][__]......
........[__]........
..[__][__]..
[__][__][__]
..[__][__]..
[__]....[__]
............[__]..
..[__][__][__][__]
[__][__][__][__]..
..[__][__][__][__]
[__][__][__][__]..
..[__]........[__]..
[__][__][__][__][__]
..[__][__][__][__]..
....[__][__][__]....
......[__][__]......
........[__]........
Kararsız:
..[__]..
........
..[__]..
[__]....
..[__]..
....[__]
..[__][__]..
[__]....[__]
..[__][__]..
[__]....[__]
..[__][__][__][__]
[__][__][__][__]..
..[__][__][__][__]
[__][__][__][__]..
[__][__][__][__][__]
..[__][__][__][__]..
....[__][__][__]....
......[__][__]......
........[__]........
........[__]....
......[__][__]..
....[__][__]....
..[__][__]......
[__][__]........
..[__]..........
(bu çizgileri zihinsel olarak üst üste istiflemeniz gerekir. Kurallarınızın, ağırlık merkezi yerle temas noktalarından çok uzak olan yapılara izin vermesi, kurallarınızın kurallara uygun olmasına izin verir. , eğer bir fizik motoruna ihtiyaç duymadan, eğer istersen.)