Pahalı mimari program için para ödemek istemezsiniz, bu yüzden kendi programınızı yapmaya karar verirsiniz. Binalarınızı tasarlamak için ASCII kullanmaya karar verdiniz. Programınız belirli bir şekilde biçimlendirilmiş tek bir dize alacak ve program binanın çıktısını alacaktır.
Giriş
Giriş tek bir karakter satırından oluşur. Sadece harfleri içerdiği varsayılabilir a-j
, sayılar 1-9
ve semboller -
ve +
.
Çıktı Açıklaması
Her harf için a-j
, program aşağıdaki gibi dikey bir çizgi çıkarır. Buna sütun diyeceğiz.
.
..
...
****
*****
******
-------
--------
+++++++++
++++++++++
abcdefghij
Örneğin, girdinin abcdefgfedefghgfedc
çıktısı:
.
* ***
*** *****
***** *******
---------------
-----------------
++++++++++++++++++
+++++++++++++++++++
Bir sütuna, sütunun altına boşluk karakteri n
ekleyecek pozitif bir tamsayı eklenebilir n
. Buna ofset diyeceğiz. Örneğin, S
bir boşluğu not etmek için kullanarak 3b2b3b
çıktı:
+ +
+++
S+S
SSS
SSS
Bir mektup da öneki edilebilir negatif tamsayı -m
olur, kaldırma alt m
boşluk olmayan sütunun karakterler (boşluk ile bunların yerine, tamamen kaldırın). Buna bir dilim diyeceğiz. Örneğin, girdinin -1j-2j-3j-4j-5j-6j-7j-8j
çıktısı:
.
..
...
*...
**...
***...
-***...
--***...
+--***..
Aynı satıra bir ofset ve bir dilim uygulanabilir, ancak ofset önce gitmelidir. Başka bir deyişle, harf öneki olabilir n-m
nerede, n
ofset boyutudur ve m
dilimin boyutudur. Örneğin, S
bir boşluğu not etmek için '2-4j' girdisi çıktı alır:
.
.
.
*
*
*
S
S
Son olarak, +
iki sütun arasında kullanılan operatör, ayrı sütunlar yerine aynı sütunda üst üste istiflenmeleri gerektiğini belirtir. Örneğin, giriş 2-4ja çıktısı:
.
.
.
*
*
*
S
S+
Oysa giriş 2-4j+a
çıkışları:
+
.
.
.
*
*
*
S
S
İşte bir örnek giriş:
abiehef+ehfhabc
Ve sonuçta ortaya çıkan çıktı:
*
-
. -
. . +. .
* * +* *
* * ****
********
--------
-------- -
+++++++++ ++
+++++++++++++
Bir tür eski yıkılmış kale kule gibi görünüyor.
İşte başka bir örnek girdi:
6b5b+a6b1-2d+3-4f1-2d+-2c+2-4f+1-2d+-2c2-2d+1-4g+1-2c+b+-2c+-4e2-7j+-4g+d+-2c+-4f2-7j+-5h+b+-2c+a+-3f2-7j+-7i+-4e+b+b+a+-4f2-7i+a+-7h+-4f+b+b+a+-4f2-7j+-7h+-4f+a+-7h+a+-7i+-4f2-7j+-7i+-6h+a+-7i+b+-4e3-7i+a+-7h+-4e+a+-7h+b+1-7h3-7j+1-4f+-7h+b+-4f+a3-7j+2-4f+a+-4f+b3-2d+-2d+3-4g+b3-2d+-2d+-2c
Ve sonuçta ortaya çıkan çıktı:
****** +++
******+.*++
---++.+ ***
-+-+++..++**
-+--+++.+++*
--++++.+..*
+++++.+**
+++****.****** -
+++*****.**.. --
+ ***....+..--
...+.....--
--.........--
---......
--
(Mario olması gerekiyordu ama çok iyi olmadı ...)
Spesifikasyon hala net değilse, Python 2.7'de yazılmış golf olmayan bir uygulamam var . Spesifikasyonu nasıl çalıştığına dair bir fikir edinmek için çalıştırabilir ve deney yapabilirsiniz. Programlama becerilerime de gülmeyi seçebilirsiniz.
Bu kod golf, bu yüzden en kısa giriş kazanır. Net değilse, yorumlarda soru sorun.
a+a+a+a+a
, beş artı işareti üst üste çıktı.