พื้นหลัง
ศิลปะ ASCII คือการฝึกฝนการสร้างภาพโดยใช้ข้อความ ASCII เพื่อสร้างรูปร่าง
นามแฝงคือเอฟเฟกต์ที่สร้างขึ้นโดย "พิกเซล" ขนาดใหญ่ของ ASCII art ซึ่งเป็นขนาดของตัวอักษร ภาพจะปิดกั้นและมองเห็นได้ยาก Anti-aliasing จะลบเอฟเฟกต์นี้โดยสร้างการไล่ระดับสีและทำให้ขอบแข็งของ ASCII อ่อนลง
ความท้าทาย
ความท้าทายของคุณคือการเขียนโปรแกรมที่สั้นที่สุดเท่าที่จะเป็นไปได้ซึ่งเป็นส่วนหนึ่งของ ASCII art และจะแสดงผลเวอร์ชันที่ต่อต้านนามแฝง
การต่อต้านนามแฝงประเภทใด
ศิลปะ ASCII ทั้งหมดจะประกอบด้วยสัญลักษณ์สองประเภท: ช่องว่างและช่องว่างที่ไม่ใช่ช่องว่าง สำหรับอักขระที่ไม่ใช่ช่องว่างแต่ละตัวโปรแกรมของคุณต้องพิจารณาว่าอยู่ในตำแหน่งที่จำเป็นต้องมีการต่อต้านนามแฝงหรือไม่ ถ้าเป็นเช่นนั้นคุณต้องแทนที่ด้วยอักขระที่ถูกต้อง หากไม่เป็นเช่นนั้นตัวละครจะยังคงเหมือนเดิม
คุณจะรู้ได้อย่างไรว่าตัวละครจะต้องมีการต่อต้านนามแฝง? คำตอบขึ้นอยู่กับตัวละครที่อยู่ด้านบนด้านล่างซ้ายและขวาของตัวละครทันที ( ไม่ใช่เส้นทแยงมุม ) นี่เป็นแผนภูมิเมื่อป้องกันนามแฝงเป็นสิ่งจำเป็นที่?
และx
สามารถยืนสำหรับการใด ๆ ของตัวละครที่ไม่ใช่ช่องว่าง
x? -> d?
? ?
?x -> ?b
? ?
? ?
?x -> ?F
? ?
x? -> Y?
x -> ; Note: This character has been changed from _ to ;
? ?
? ?
x -> V
?x -> ?>
x? -> <?
x -> @
อินพุต (และตัวอย่างศิลปะการป้องกันนามแฝงล่วงหน้า ASCII)
ก่อนอื่นจะมีอินพุตสองบรรทัด (ถึง STDIN), หมายเลข H ตามด้วยหมายเลข W จากนั้นจะมีบรรทัด H ของอักขระ W แต่ละตัว (ยกเว้นบรรทัดใหม่) บรรทัดต่อไปนี้จะเป็นศิลปะ ASCII ที่ต้องมีการต่อต้านนามแฝง นี่คือตัวอย่างการป้อนข้อมูล (ไม่ใช่ความสวยงาม แต่เป็นการทดสอบ):
7
9
888888
888888
999 98 7
666666
666666
6666
6
เอาท์พุท (และตัวอย่างศิลปะต่อต้านนามแฝง)
โปรแกรมของคุณควรส่งออกไปยัง STDOUT art ASCII (ที่มีขนาดเท่ากัน) ซึ่งได้รับการต่อต้านนามแฝง นี่คือเอาต์พุตสำหรับอินพุตข้างต้น ขอให้สังเกตว่าตัวอักษรชายแดนจะถือว่าเป็นช่องว่างที่มีพรมแดนติด
d8888>
d8888F
<99 98 @
Y6666b
Y6666>
Y66F
V
สิ่งนี้อาจดูไม่ดีเลย (เนื่องจากช่องว่างระหว่างบรรทัดในบล็อคโค้ด) ดูดีขึ้นด้วยศิลปะ ASCII ขนาดใหญ่และคุณภาพขึ้นอยู่กับแบบอักษรที่แน่นอนที่ใช้
ตัวอย่างอื่น
อินพุต
12
18
xx xxx xxx
xxxx xxx xxx
xxxxxx xxx xxx
xxx xxx xxx xxx
xxxx xxx xxx xxx
xxxxxx xxx xxx
xxxx xxx xxx
x xx xxx xxx x
xx xxx xxx xx
xxx xxx xxx xxx
xxxx xxx xxx xx
xxxxx xxx xxx x
เอาท์พุต
db <xb <xb
dxxb Yxb Yxb
dxxxxb Yxb Yxb
dxx xxb xxb xxb
Yxxb xxF xxF xxF
YxxxxF dxF dxF
YxxF dxF dxF
; YF dxF dxF ;
xb dxF dxF dx
xxb <xF <xF <xx
xxxb Yxb Yxb Yx
Yxxx> Yx> Yx> V
กฎข้อ จำกัด และหมายเหตุ
โปรแกรมของคุณควรเขียนด้วยอักขระ ASCII ที่พิมพ์ได้เท่านั้นเพื่อให้เราสามารถสร้างผลงานออกมาจากโปรแกรม นอกจากนั้นจะใช้กฎมาตรฐานการเล่นกอล์ฟ
_
ได้กลายเป็น;
เพราะมันทำงานได้ดีขึ้น