जे , 82 72 66 बाइट्स
(ucp' #───│┌┐┬│└┘┴│├┤┼'){~]+]*3 3((2#.1 7 3 5{,);._3)0,.~0,.0,~0,]
इनपुट 1 और 0 के बूलियन टेबल है। नियम बताता है कि बॉक्स वर्ण प्रत्येक को एक बाइट के रूप में गिनता है, तीन नहीं, और जो यहां लागू किया गया है।
प्रयोग
f =: (ucp' #───│┌┐┬│└┘┴│├┤┼'){~]+]*3 3((2#.1 7 3 5{,);._3)0,.~0,.0,~0,]
m =: 1 0 1 1 1 1 0 1 1 0 1 , 1 1 0 1 0 0 1 1 0 0 1 ,: 0 0 0 1 1 1 1 0 0 1 1
m { ' #'
# #### ## #
## # ## #
#### ##
f m
│ ─┬── ┌─ │
└─ │ ┌┘ │
└──┘ ─┘
' #' {~ m =: 5 5 $ 1
f m
┌┬┬┬┐
├┼┼┼┤
├┼┼┼┤
├┼┼┼┤
└┴┴┴┘
' #' {~ m =: 5 9 $ 1 0
# # # # #
# # # #
# # # # #
# # # #
# # # # #
f m
# # # # #
# # # #
# # # # #
# # # #
# # # # #
व्याख्या
पहले इनपुट को सभी पक्षों पर 0 के साथ गद्देदार किया जाता है।
] m =: 1 0 1 1 1 1 0 1 1 0 1 , 1 1 0 1 0 0 1 1 0 0 1 ,: 0 0 0 1 1 1 1 0 0 1 1
1 0 1 1 1 1 0 1 1 0 1
1 1 0 1 0 0 1 1 0 0 1
0 0 0 1 1 1 1 0 0 1 1
(0,.~0,.0,~0,]) m
0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 1 1 0 1 1 0 1 0
0 1 1 0 1 0 0 1 1 0 0 1 0
0 0 0 0 1 1 1 1 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0
फिर आकार 3 के प्रत्येक उप-वर्ग का चयन किया जाता है
3 3 <;._3 (0,.~0,.0,~0,]) m
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│
│0 1 0│1 0 1│0 1 1│1 1 1│1 1 1│1 1 0│1 0 1│0 1 1│1 1 0│1 0 1│0 1 0│
│0 1 1│1 1 0│1 0 1│0 1 0│1 0 0│0 0 1│0 1 1│1 1 0│1 0 0│0 0 1│0 1 0│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│0 1 0│1 0 1│0 1 1│1 1 1│1 1 1│1 1 0│1 0 1│0 1 1│1 1 0│1 0 1│0 1 0│
│0 1 1│1 1 0│1 0 1│0 1 0│1 0 0│0 0 1│0 1 1│1 1 0│1 0 0│0 0 1│0 1 0│
│0 0 0│0 0 0│0 0 1│0 1 1│1 1 1│1 1 1│1 1 0│1 0 0│0 0 1│0 1 1│1 1 0│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│0 1 1│1 1 0│1 0 1│0 1 0│1 0 0│0 0 1│0 1 1│1 1 0│1 0 0│0 0 1│0 1 0│
│0 0 0│0 0 0│0 0 1│0 1 1│1 1 1│1 1 1│1 1 0│1 0 0│0 0 1│0 1 1│1 1 0│
│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│0 0 0│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
तब प्रत्येक उपश्रेणी में केवल 5 मानों को माना जाता है
┌───┐
│xAx│
│CED│
│xBx│
└───┘
मूल्यों ABCD
का चयन प्रत्येक सबर्रे को समतल करके और सूचकांकों का चयन करके किया जाता है 1 7 3 5
। उन मानों को गुणा किया E
जाता है, जो सूचकांक 4 पर है। इसे फिर बाइनरी अंकों की सूची से दशमलव में बदल दिया जाता है, और इसके द्वारा बढ़ा दिया जाता है E
। x
मान आवश्यक नहीं हैं।
3 3 (4&{([+2#.*)1 7 3 5&{)@,;._3 (0,.~0,.0,~0,]) m
5 0 2 8 4 3 0 6 3 0 5
10 3 0 13 0 0 6 11 0 0 13
0 0 0 10 4 4 11 0 0 2 11
इसका उपयोग एक सूचकांक के रूप में किया जाता है कि नीचे तालिका के अनुसार किस वर्ण का चयन किया जाए (गोल्फिंग के लिए थोड़ा सा मोड दिया गया)। अंतिम कॉलम प्रत्येक सबर्रे के आउटपुट मूल्य से एक बॉक्स वर्ण से मेल खाता है।
0 (space) 0
1 # 1
2 ┌ 6
3 ┬ 8
4 ┐ 7
5 ├ 14
6 ┼ 16
7 ┤ 15
8 └ 10
9 ┴ 12
10 ┘ 11
11 │ 5, 9, 13
12 ─ 2, 3, 4
इसके अलावा, जम्मू में, स्ट्रिंग ' #───│┌┐┬│└┘┴│├┤┼'
8-बिट अक्षरों का उपयोग करती है , जिससे यह आवश्यक है कि 17 पात्रों के लिए 47 (प्रत्येक बाइट के लिए) की लंबाई हो। कमांड ucp
इसे 16-बिट वर्णों में परिवर्तित करता है जो इसे लंबाई 17 करने की अनुमति देता है।