Gelen önceki meydan , çoğunlukla elle (Vim görsel blok modu yardımıyla) ilk diyagram çekti. Ama elbette daha iyi bir yol olmalı ...
Genişlik ve yükseklik olmak üzere iki boyuttan oluşan bir girdi verildiğinde, ASCII teknolojisinde bu boyutlarla altıgen bir ızgara çıktı.
Aşağıda, giriş için çıktınız olması gereken girişte (küçük düzenlemelerle birlikte) gösterilen diyagram bulunmaktadır width=7, height=3
:
_____ _____ _____
/ \ / \ / \
_____/ -2,-1 \_____/ 0,-1 \_____/ 2,-1 \_____
/ \ / \ / \ / \
/ -3,-1 \_____/ -1,-1 \_____/ 1,-1 \_____/ 3,-1 \
\ / \ / \ / \ /
\_____/ -2,0 \_____/ 0,0 \_____/ 2,0 \_____/
/ \ / \ / \ / \
/ -3,0 \_____/ -1,0 \_____/ 1,0 \_____/ 3,0 \
\ / \ / \ / \ /
\_____/ -2,1 \_____/ 0,1 \_____/ 2,1 \_____/
/ \ / \ / \ / \
/ -3,1 \_____/ -1,1 \_____/ 1,1 \_____/ 3,1 \
\ / \ / \ / \ /
\_____/ \_____/ \_____/ \_____/
Birkaç şeye dikkat edin:
Genişlik ve yükseklik, belirli bir y ve x koordinatı için sırasıyla kaç altıgen bulunduğuna eşittir. Bunlar her zaman tek sayılar olacaktır.
Her altıgen ASCII sanatı ile temsil edilir
_____ / \ / \ \ / \_____/
ancak sınırlar komşu altıgenler arasında "paylaşılır".
Koordinatlardaki virgül her zaman üst kenarın merkezinin tam olarak iki karakter altındadır. X-koordinatı daha sonra doğrudan virgülden önce ve y-koordinatı hemen sonra yerleştirilir.
Koordinatların asla altıgen sınırlarını örtecek şekilde çok büyük olmayacağını varsayabilirsiniz.
Girdi boşluk / virgülle ayrılmış bir dize, bir tamsayı dizisi veya iki işlev / komut satırı argümanı olarak alınabilir. Çıktı tek bir dize olmalıdır (STDOUT'a, bir dönüş değeri olarak, vb.).
Bu kod golf olduğundan , bayt cinsinden en kısa kod kazanacaktır.
Yukarıdaki ızgara bir test senaryosu olarak kullanılabilir. Maksimum boyutlu
width=199, height=199
ızgara, buraya dahil edilmesi açıkça pratik değildir, ancak ilk birkaç satır ve sütun aşağıdaki gibi görünmelidir:
_____ ___
/ \ /
_____/-98,-99\_____/-96,
/ \ / \
/-99,-99\_____/-97,-99\___
\ / \ /
\_____/-98,-98\_____/-96,
/ \ / \
/-99,-98\_____/-97,-98\___
\ / \ /
\_____/-98,-97\_____/-96,
/ \ / \
/-99,-97\_____/-97,-97\___
\ / \ /