คุณไม่ต้องการจ่ายเงินสำหรับโครงการสถาปัตยกรรมที่มีราคาแพงดังนั้นคุณจึงตัดสินใจที่จะทำธุรกิจของคุณเอง คุณตัดสินใจที่จะใช้ ASCII เพื่อออกแบบอาคารของคุณ โปรแกรมของคุณจะใช้รูปแบบสตริงเดียวในรูปแบบเฉพาะและโปรแกรมจะสร้างสิ่งปลูกสร้าง
อินพุต
อินพุตประกอบด้วยอักขระบรรทัดเดียว สามารถสันนิษฐานได้ว่ามีเพียงตัวอักษรa-j
ตัวเลข1-9
และสัญลักษณ์-
และ+
และ
คำอธิบายผลลัพธ์
สำหรับแต่ละตัวอักษรa-j
โปรแกรมจะแสดงผลเป็นเส้นแนวตั้งดังนี้ เราจะเรียกมันว่าคอลัมน์
.
..
...
****
*****
******
-------
--------
+++++++++
++++++++++
abcdefghij
ตัวอย่างเช่นอินพุตabcdefgfedefghgfedc
จะเอาต์พุต:
.
* ***
*** *****
***** *******
---------------
-----------------
++++++++++++++++++
+++++++++++++++++++
ตัวอักษรอาจจะนำหน้าด้วยจำนวนเต็มบวกn
ซึ่งจะเพิ่มn
ตัวอักษรช่องว่างด้านล่างคอลัมน์ เราจะเรียกสิ่งนี้ว่าสิ่งชดเชย ตัวอย่างเช่นการใช้S
เพื่อระบุช่องว่างอินพุต3b2b3b
จะเอาต์พุต:
+ +
+++
S+S
SSS
SSS
ตัวอักษรอาจจะนำหน้าด้วยจำนวนเต็มลบ-m
ซึ่งจะลบตัวอักษรที่m
ไม่ใช่ช่องว่างด้านล่างของคอลัมน์ (ไม่แทนที่ด้วยช่องว่างลบออกทั้งหมด) เราจะเรียกสิ่งนี้ว่า ตัวอย่างเช่นอินพุต-1j-2j-3j-4j-5j-6j-7j-8j
จะเอาต์พุต:
.
..
...
*...
**...
***...
-***...
--***...
+--***..
ออฟเซตและชิ้นสามารถนำไปใช้กับบรรทัดเดียวกัน แต่การชดเชยจะต้องไปก่อน กล่าวอีกนัยหนึ่งตัวอักษรอาจจะนำหน้าด้วยn-m
ที่n
มีขนาดของการชดเชยและm
เป็นขนาดของชิ้น ตัวอย่างเช่นการใช้S
เพื่อสังเกตช่องว่างป้อนข้อมูล '2-4j' จะแสดงผล:
.
.
.
*
*
*
S
S
สุดท้ายตัว+
ดำเนินการที่ใช้ระหว่างสองคอลัมน์บ่งชี้ว่าพวกเขาควรจะซ้อนกันอยู่ด้านบนของแต่ละอื่น ๆ ในคอลัมน์เดียวกันแทนที่จะเป็นในคอลัมน์แยกต่างหาก ตัวอย่างเช่นอินพุต `2-4ja 'เอาต์พุต:
.
.
.
*
*
*
S
S+
ในขณะที่อินพุต2-4j+a
เอาต์พุต:
+
.
.
.
*
*
*
S
S
นี่คือตัวอย่างอินพุต:
abiehef+ehfhabc
และผลลัพธ์ผลลัพธ์:
*
-
. -
. . +. .
* * +* *
* * ****
********
--------
-------- -
+++++++++ ++
+++++++++++++
ดูเหมือนหอคอยปราสาทเก่าแก่ที่ถูกทำลายบางอย่าง
นี่คือตัวอย่างอินพุตอื่น:
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
และผลลัพธ์ผลลัพธ์:
****** +++
******+.*++
---++.+ ***
-+-+++..++**
-+--+++.+++*
--++++.+..*
+++++.+**
+++****.****** -
+++*****.**.. --
+ ***....+..--
...+.....--
--.........--
---......
--
(มันควรจะเป็นมาริโอ แต่ไม่ได้เปิดออกมาดีมาก ... )
หากรายละเอียดยังไม่ชัดเจนฉันมีการใช้งานที่ไม่ใช่กอล์ฟเขียนไว้ใน Python 2.7 คุณสามารถเรียกใช้และทดลองใช้เพื่อรับความรู้สึกว่าสเปคทำงานอย่างไร คุณอาจเลือกที่จะหัวเราะกับทักษะการเขียนโปรแกรมของฉัน
นี่คือรหัสกอล์ฟดังนั้นรายการที่สั้นที่สุดจึงชนะ ถามคำถามในความคิดเห็นหากไม่ชัดเจน
a+a+a+a+a
จะส่งสัญญาณห้าบวกสัญญาณที่ด้านบนของกันและกัน