C -> Brainfuck 556 byte
Không bao gồm khoảng trắng không cần thiết. Tôi có thể dễ dàng lưu hàng trăm khác bằng cách thay đổi dữ liệu phông chữ d[]
từ hex thành chuỗi trong dấu ngoặc kép.
i,j,s,t,u,v,w,h;
char a[99],b[9999],k,d[]={0x6F,0x3B,0x5A,0xD5,0x7A,0x6A,0x5B,0x2F,0xD0,0x57,0xA1,0x1B,0xCF,0x4F,0x5F,0x6E,0x6D,0x4E,0x79,0x3A,0x1F,0x95,0x9F,0xA6,0x3D,0x76};
f(int z){
return d[a[j-1-t%(2*w*j)/w/2]-65]>>z&1?z=b[i*v/u],b[i++*v/u]=' ',z:' ';
}
main(){
for(scanf("%s",a);a[j];i++)a[j]-k?k++,b[i]='+':(b[i]='.',t+=(0xE7572B70967DB>>(a[j]*2-130)&3)+5,j++);
s=i/t+2;
u=t*(s-1);
v=i;
i=0;
w=2*s;h=2*s+1;
for(t=2*w*h*j;t--;)putchar(
t%(2*w*j)?
t/2/w/j%s?
t%s||!(t/4%s)?' ':f(t/s%4/2+t/2/w/j/s*2|7*(t/s%4==2))
:(
(t%s)&&(t/s+1&2)?f(4+t/2/w/j/s):' '
)
:10 //newline
);
}
Điều này sử dụng phông chữ máy tính (cho entropy thấp, chỉ một byte cho mỗi chữ cái) và trình biên dịch Brainfuck rất ngây thơ được lấy cảm hứng từ https://codegolf.stackexchange.com/a353801/15599 (ngoại trừ tôi sử dụng dấu cộng thay vì dấu trừ.) for
vòng lặp đầu tiên biên dịch văn bản a
thành chuỗi b
và cũng tính toán số nét cần thiết để vẽ mã được định dạng, sử dụng số ma thuật hex gồm 13 chữ số (tất cả các ký tự là 5-8 nét.)
Với tổng thời lượng chương trình và số lần đột quỵ, số lượng ký tự trên mỗi nét được tính (điều này có thể rất nhỏ nếu các ký tự giống nhau hoặc theo thứ tự tăng dần và rất lớn nếu các ký tự theo thứ tự giảm dần.)
Hầu hết phần còn lại của chương trình được dành riêng để quyết định xem khoảng trắng hay một trong các nét cần được in. Nếu con trỏ nằm trên một hình vuông đột quỵ, hàm f
được gọi với số lượng nét đó làm đối số. Nó trả về một khoảng trắng nếu nét đó không cần thiết cho chữ cái hiện tại hoặc ký tự từ chương trình nếu có. Bởi vì số lượng ký tự được yêu cầu để hoàn thành nghệ thuật ASCII có thể nhiều hơn các ký tự trong chương trình, đôi khi một khoảng trắng được chèn vào, do đó tính toán b[i * v/u]
.
Có bốn nét đơn và bốn nét kép trong phông chữ, được đánh số như sau, có mặt hoặc không có, tùy thuộc vào chữ cái.
6666 6666
3 7 2
3 7 2
3 7 2
3 7 2
5555 5555
1 7 0
1 7 0
1 7 0
1 7 0
4444 4444
Đầu ra
Kiểm tra tại http://copy.sh/brainfuck/
ABC
+ ++ +++ ++++ + ++
+ + +
+ + + +
+ + +
+ + +
++++ + ++ +++ ++++
+ + + +
+ + + +
+ + + +
+ + + +
++++ + ++ ++. +.+.
DEF
+ ++ ++ + ++++ +++ ++ + ++++
+ + +
+ + +
+ + + +
+ + +
++ + +++ ++++ + ++
+ + +
+ + + +
+ + +
+ + +
++++ + ++ ++. +.+.
GHIJK
+ + +++ ++ +++ +++ ++
+ + + + +
+ + + + +
+ + + + + +
++ +++ + + +++
+ + + + + + + +
+ + + + + + +
+ + + + + + + +
+++ + + ++. +. +.+ .+.
LMNOP
+ + +++ + + +++ + + +++ + + +++
+ + + + + + + +
+ + + + + + + +
+ + + + + + + + +
+ + +++
+ + + + + + + +
+ + + + + + + +
+ + + + + + + + +
+ . +.+ . + .+.
QRSTU
+ + +++ +++ +++ +++ ++
+ + + + + + + +
+ + + + + + +
+ + + + + + + +
+++ +++ + + +++ +++ +++
+ + + + +
+ + + + + +
+ + + + + +
+++ ++ +++ .+. +.+ .+.
V W X Y Z
+ + +++
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+++ +++ + + +++ +++ ++
+ + + + + + + + +
+ + + + + + + +
+ + + + + + + +
+++ + + +++ +++ ++ .+. +.+ .+.
SAO CHÉP
với hầu hết các chuỗi có các chữ cái theo thứ tự ngẫu nhiên (không tăng dần) kích thước chữ lớn hơn nhiều và các chữ trông đẹp hơn nhiều. Thật không may, kích thước tập tin nhận được khá lớn. Tôi không thể tải lên toàn bộ từ UCOPYRIGHTABLE tại đây, BẢN QUYỀN là về từ dài nhất tôi được phép.
+ +++++++++ +++++++++++ + +++++++++ +++++++++++ ++ ++++++++ +++++++++++ +++ +.+++++ +++++++.+.+ ++++ ++++.+ +++++++++++
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+++++++++ + +++++++++++ ++++++++++ +++++++++++ +++++++++++ ++++++++++ +++++++++++ + +++++++++ ++++++++++. +. ++++++++
+ + . + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + +
+++++++++++ +++++++ +++ +++++++++++ ++++++++ ++ +++++++++++ +++++++++ + +++++++++++ ++++++++++ +++++++++++ +++++++++++ ++++++++++ ++++++++++.