Lý lịch
Nghệ thuật ASCII là thực hành tạo hình ảnh bằng cách sử dụng văn bản ASCII để tạo thành hình dạng.
Bí danh là hiệu ứng được tạo bởi các "pixel" lớn của nghệ thuật ASCII, là kích thước của các ký tự. Hình ảnh trở nên khối và khó nhìn. Khử răng cưa loại bỏ hiệu ứng này bằng cách tạo một gradient và làm mềm các cạnh cứng của nghệ thuật ASCII.
Các thách thức
Thách thức của bạn là viết chương trình ngắn nhất có thể sẽ lấy một phần của nghệ thuật ASCII và sẽ đưa ra một phiên bản đã được khử răng cưa.
Những loại khử răng cưa?
Tất cả nghệ thuật ASCII sẽ bao gồm hai loại biểu tượng: Không gian và không khoảng trắng. Đối với mỗi ký tự không phải khoảng trắng, chương trình của bạn phải xác định xem nó có ở vị trí cần khử răng cưa hay không. Nếu có, thì bạn cần thay thế nó bằng ký tự chính xác. Nếu không, thì nhân vật vẫn giữ nguyên.
Làm thế nào để bạn biết nếu một nhân vật cần phải được khử răng cưa? Câu trả lời phụ thuộc vào các ký tự ngay phía trên, bên dưới, bên trái và bên phải của nhân vật ( không phải các đường chéo ). Dưới đây là biểu đồ khi cần khử răng cưa, ở đâu ?
và x
có thể đại diện cho bất kỳ ký tự không phải khoảng trắng nào.
x? -> d?
? ?
?x -> ?b
? ?
? ?
?x -> ?F
? ?
x? -> Y?
x -> ; Note: This character has been changed from _ to ;
? ?
? ?
x -> V
?x -> ?>
x? -> <?
x -> @
Đầu vào (và ví dụ nghệ thuật ASCII trước khử răng cưa)
Đầu tiên, sẽ có hai dòng đầu vào (tới STDIN), một số H theo sau là một số W. Sau đó sẽ có các dòng H của các ký tự W chính xác mỗi dòng (không bao gồm dòng mới). Những dòng sau đây sẽ là nghệ thuật ASCII cần được khử răng cưa. Dưới đây là một ví dụ đầu vào (không đẹp, nhưng thử nghiệm):
7
9
888888
888888
999 98 7
666666
666666
6666
6
Đầu ra (và ví dụ nghệ thuật chống răng cưa)
Chương trình của bạn sẽ xuất ra STDOUT nghệ thuật ASCII (có cùng kích thước), đã được khử răng cưa. Đây là đầu ra cho đầu vào trên. Lưu ý cách các ký tự viền được coi là khoảng trắng giáp.
d8888>
d8888F
<99 98 @
Y6666b
Y6666>
Y66F
V
Điều này có thể trông không tốt lắm (do khoảng cách giữa các dòng trong khối mã), nó trông đẹp hơn với nghệ thuật ASCII lớn hơn và chất lượng phụ thuộc vào phông chữ chính xác được sử dụng.
Một vi dụ khac
Đầu vào
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
Đầu ra
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
Quy tắc, hạn chế và ghi chú
Chương trình của bạn chỉ nên được viết bằng các ký tự ASCII có thể in được, để chúng tôi có thể tạo ra nghệ thuật từ các chương trình. Ngoài ra, các quy tắc golf tiêu chuẩn áp dụng.
_
đã trở thành;
bởi vì nó hoạt động tốt hơn.