Giới thiệu về ASCII-Golfing cho 05AB1E (Chuyển đổi cơ sở [Đơn giản])
Mặc dù 05AB1E không dành cho ASCII-Art trực tiếp, tôi đã chiến thắng 2 thử thách với nó. Điều tốt nhất về 05AB1E là, ngay cả với chuyển đổi cơ sở đơn giản, vẫn thường có các thủ thuật bạn có thể sử dụng để mở rộng và thậm chí giảm một nửa số byte của mình. Thông thường trong các thử thách ASCII, có các thủ thuật lặp lại mà bạn có thể sử dụng để chỉ vẽ một nửa mô hình sau đó lật và nối. Nếu đó là mô hình bốn chiều, bạn có thể thực hiện những việc như zip và chia đôi để chỉ vẽ một góc của mẫu. Có rất nhiều kỹ thuật thao tác cấu trúc dữ liệu để sử dụng cùng với ý tưởng nén cơ sở đơn giản này.
Đây là một khóa học nhanh chóng về chiến thuật chuyển đổi cơ sở:
Trong 05AB1E, tôi liệt kê tất cả các ký tự được sử dụng trong nghệ thuật ASCII, ví dụ:
--===___===--
Sẽ dẫn đến:
-
=
_
Sau đó tôi gán cho chúng các số bắt đầu bằng 1 rồi 0 rồi 2:
- is 1.
= is 0.
_ is 2.
Tôi thay thế các ký tự trong chuỗi gốc bằng các số:
1122200022211
Tôi chuyển đổi sang số thập phân bằng cách sử dụng cơ sở thấp nhất có thể (3):
879412
( Cách thực hiện việc này bằng 05AB1E )
Sau đó tôi chuyển đổi nó thành cơ sở 214:
Jh]
( Cách thực hiện việc này bằng 05AB1E )
Sau đó tôi bọc nó trong đoạn mã sau:
•Jh]•3B…102…-_=‡
Hãy thử trực tuyến!
Hoặc thử nó với các bước trung gian được hiển thị.
Giải thích cuối cùng:
•Jh]• # Push the compressed ASCII integer.
3B # Convert it to base 3.
…102 # Push the keys to the conversion.
…-_= # Push the values to the conversion.
‡ # Transliterate, replace 0, 1 and 2 with the symbols.
Bây giờ, với thử thách cụ thể này, chuỗi quá ngắn nên không có ý nghĩa gì. Có lẽ tôi chỉ cần đẩy một nửa chuỗi và Palindromize trong 10 byte "--===__"û
hoặc chơi golf giống như Adnan đã làm trong các nhận xét bằng cách sử dụng yếu tố thông minh, thông minh •Jh]•3B5!…-=_‡
. Anh ấy cũng (một trong?) Người tạo (s?) Của 05AB1E.
Ví dụ phức tạp hơn:
/codegolf//a/106621/59376
Ngoài ra, có thể thử ngôn ngữ phức tạp của Dennis 'kolmogorov: Bubblegum ; không biết làm thế nào để sử dụng này.