Fortress, Güneş Programlama Dil Araştırma Grubu (RIP Fortress) tarafından geliştirilen ve kendine özgü bir özelliği olan bir dildi, farklı yazı tipi stillerinde (yani, yazı tahtası kalın, kalın, italik, roman vb.). Amaç, HTML işaretlemesinde tek karakterlik bir Fortress değişkenini temsil etmektir.
Tek karakterlik değişkenlerin tahkimatı şu şekilde çalıştı (kod golf amaçlı belgelerden basitleştirildi / değiştirildi):
- Değişken tekrarlanan bir büyük harfse (ie
ZZ), yazı tahtası kalın (𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ) olarak biçimlendirilir - Değişkenin önünde bir alt çizgi varsa, değişken roman yazı tipinde (yalnızca solda) oluşturulur
- Değişkenin ardından bir alt çizgi varsa, değişken kalın yazı tipiyle (
<b>v</b>) oluşturulur - Değişkenin öncesinde veya ardından alt çizgi yoksa, değişken italik yazı tipinde (
<i>v</i>) oluşturulur - Karatahta
𝔸kalınlarının kod noktaları şunlardır: 1D538,: 1D539𝔹,:ℂ2102𝔻,:𝔼1D53B𝔽,:𝔾1D53C,: 1D53D,: 1D53E,:ℍ210D𝕀,:𝕁1D540𝕂,:𝕃1D541𝕄,: 1D542,: 1D543,: 1D544,:ℕ2115,𝕆: 1D546,:ℙ2119 ,:ℚ211Aℝ,:𝕊211D𝕋,:𝕌1D54A𝕍,:𝕎1D54B𝕏,:𝕐1D54C,: 1D54D,: 1D54E,: 1D54F,: 1D550,:ℤ2124. Bunlar , programınızdaki her bir bayt olarak sayılır (eğer tercih ettiğiniz dil bu karakterleri işleyebilirse)
Girdi, yinelenen bir ASCII sermayesi veya alt çizgi, ön alt çizgi veya sondaki alt çizgi olmayan tek bir ASCII harfi _a_olacaktır (AKA girdi olmayacaktır). Bu kod golf kadar düşük bayt sayısı kazanır!
Test senaryoları:
a => <i>a</i>
BB => 𝔹
c_ => <b>c</b>
_d => d
E => <i>E</i>
G_ => <b>G</b>
_H => H
ZZ => ℤ
Bağlantılar: Özellikler , Sürüm 0.1 alfa doğrudan indir .
Referans uygulaması (Bu, Fortress'de olurdu, ancak Fortress, en çok düşünülen karakterlerin çoğunu sevmiyor, bu nedenle bu uygulama D'de):
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>");
}
_____girilmez.