Bu zorlukta, toprağınızın ne kadar büyük olduğunu hesaplarsınız.
İnşa ettiğiniz duvarı göz önüne alarak toprağınızın büyüklüğünü hesaplayan bir program veya işlev yazın. "Yukarı", "aşağı", "sol" ve "sağ" gibi dört yönü gösteren 4 farklı karakterden oluşan boş olmayan bir giriş dizesi verilir ( ^ v < >bu mücadelede kullanacağım ). 180 derece dönüş yapmak mümkün değildir ( <>veya ^v), ancak duvarınızı geçebilirsiniz.
Toprağı "yakalama" şekliniz onu duvarınızla sarmaktır. Duvarın kendisi de topraklarınızın bir parçası olarak kabul edilir. Birkaç örnek daha net hale getirecek. Ben kullanacağız o, duvarla çevrili olan arazi için xduvara kendisi için ve Sduvar başlayan noktası için, sadece duvar inşa nasıl göstermek için. Çıktı da arazinin toplam büyüklüğü olması (sayısında gerektiğini o, xve Stest durumları aşağıda).
Input: >>>>
Land: Sxxxx
Output: 5
Input: <<<^^^>>>vv
Land:
xxxx
xoox
xoox
xxxS
Output: 16
Input: <<<^^^>>>v
Land:
xxxx
x x
x
xxxS
Output: 11
Input: <
Land: xS
Output: 2
Input: >>>>>>vvvvvvvvv<<<<<^^^^>>>>>>>>vvvvvvvvvv<<<<<<<<<<<<<<<^^^^^^^^^>>>vvvvvv<<<<<
Land:
Sxxxxxx
x
x
x
x
xxxxxxxxx
xxxx xoooox x
xoox xoooox x
xoox xoooox x
xoox xxxxxx x
xoox x
xoox x
xxxxxx x
x x
x x
xxxxxxxxxxxxxxxx
Output: 101
Input: >>vvvv>>^^<<<<^
Land:
Sxx
xox
xxxxx
xox
xxx
Output: 17
Input: <<^^^>>>vv
Land:
xxxx
x x
x x
xxS
Output: 11 <- Note, diagonal edges do not close the "loop"
Açıklamalar:
- Duvarı çizmenize gerek yoktur, çıktı yalnızca bir tamsayı olmalıdır
- Giriş formatı isteğe bağlıdır. Bir dize
<>^v, basamak(1, -1, i, -i)listesi, karakter listesiABCDvb.
Bu kod-golf olduğundan her dilde en kısa kod kazanır. Unutmayın, açıklamalar "normal" dillerde bile önemlidir!