किले सन प्रोग्रामिंग लैंग्वेज रिसर्च ग्रुप (RIP फोर्ट्रेस) द्वारा विकसित की जा रही एक भाषा थी जिसकी एक अनूठी संपत्ति थी, इसे अलग-अलग फ़ॉन्ट-शैलियों (यानी ब्लैकबोर्ड बोल्ड, बोल्ड, इटैलिक्स) में प्रस्तुत करना ("फोर्टीज़") कार्यक्रम संभव था। रोमन, आदि)। लक्ष्य HTML मार्कअप में एक-चार किले चर का प्रतिनिधित्व करना है।
यहां बताया गया है कि कैसे एक-चर चर की किलेबंदी (कोड-गोल्फ उद्देश्यों के लिए प्रलेखन से सरलीकृत / संशोधित):
- यदि चर दोहराई गई पूंजी (यानी
ZZ) है, तो यह ब्लैकबोर्ड में बोल्ड हो जाता है (𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ) - यदि चर को अंडरस्कोर से पहले रखा गया है, तो चर को रोमन फ़ॉन्ट (अकेले छोड़ दिया) में प्रस्तुत किया गया है
- यदि किसी अंडरस्कोर के द्वारा वेरिएबल का अनुसरण किया जाता है, तो वैरिएबल को बोल्ड फॉन्ट (
<b>v</b>) में प्रस्तुत किया जाता है - यदि चर न तो पूर्ववर्ती है और न ही अंडरस्कोर द्वारा अनुसरण किया गया है, तो चर इटैलिक फ़ॉन्ट (
<i>v</i>) में प्रदान किया गया है - ब्लैकबोर्ड bolds का कोड पॉइंट्स हैं:
𝔸: 1D538,𝔹: 1D539,ℂ: 2102,𝔻: 1D53B,𝔼: 1D53C,𝔽: 1D53D,𝔾: 1D53E,ℍ: 210D,𝕀: 1D540,𝕁: 1D541,𝕂: 1D542,𝕃: 1D543,𝕄: 1D544,ℕ: 2115,𝕆: 1D546,ℙ2119,ℚ211A,ℝ211D𝕊,: 1D54A𝕋,: 1D54B𝕌,: 1D54C𝕍,: 1D54D𝕎,: 1D54E𝕏,: 1D54F𝕐,: 1D550Fℤ,: 2124। ये आपके प्रोग्राम में प्रत्येक बाइट के रूप में गिना जाता है (यदि आपकी पसंद की भाषा इन वर्णों को पूरी तरह से संभाल सकती है)
इनपुट या तो एक दोहराया ASCII पूंजी होगी, या कोई भी अंडरस्कोर, एक अग्रणी अंडरस्कोर, या एक अनुरेखक अंडरस्कोर (AKA _a_एक इनपुट नहीं होगा) के साथ एक एकल ASCII पत्र होगा। यह कोड-गोल्फ तो सबसे कम बाइट गिनती जीत है!
परीक्षण के मामलों:
a => <i>a</i>
BB => 𝔹
c_ => <b>c</b>
_d => d
E => <i>E</i>
G_ => <b>G</b>
_H => H
ZZ => ℤ
लिंक: विनिर्देश , संस्करण 0.1 अल्फा का प्रत्यक्ष डाउनलोड ।
संदर्भ क्रियान्वयन (यह किले में होगा, लेकिन किले को ज्यादातर दोहरे चरित्र पसंद नहीं हैं, इसलिए यह कार्यान्वयन डी में है):
dstring fortify(string arg) {
import std.string, std.conv;
alias D = to!dstring; //Convert to a string that accepts the unicode needed
dstring BB = "𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ"d; //blackboard bold capitals
string UC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //normal ASCII capitals
if(arg.length == 1)
return D("<i>" ~ arg ~ "</i>");
if(arg[0] == a[1])
return D(BB[UC.indexOf(arg[0])]);
if(arg[0] == '_')
return D(arg[1]);
return D("<b>" ~ arg[0] ~ "</b>");
}
_____इनपुट नहीं होगा