Fortress เป็นภาษาที่พัฒนาโดยกลุ่มวิจัยภาษาโปรแกรมของซัน (RIP Fortress) ซึ่งมีคุณสมบัติที่ไม่เหมือนใครมันเป็นไปได้ที่จะเรนเดอร์โปรแกรม "Fortify" ในรูปแบบฟอนต์ต่าง ๆ (เช่นตัวหนากระดานดำตัวหนาตัวเอียง โรมัน ฯลฯ ) เป้าหมายคือแสดงตัวแปร Fort-One Fortress ใน HTML มาร์กอัป
ต่อไปนี้เป็นวิธีการเสริมความแข็งแกร่งของตัวแปรหนึ่งตัว (ทำงาน / แก้ไขจากเอกสารเพื่อวัตถุประสงค์ในการเล่นกอล์ฟ):
- หากตัวแปรนั้นเป็นตัวพิมพ์ใหญ่ซ้ำ (เช่น
ZZ) มันจะกลายเป็นรูปแบบในกระดานดำตัวหนา (𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ) - หากตัวแปรนำหน้าด้วยเครื่องหมายขีดล่างตัวแปรจะแสดงผลในแบบอักษรโรมัน (เหลือเพียงอย่างเดียว)
- หากตัวแปรตามด้วยขีดล่างตัวแปรจะแสดงผลในแบบอักษรตัวหนา (
<b>v</b>) - หากตัวแปรนั้นไม่ได้นำหน้าหรือตามด้วยเครื่องหมายขีดล่างตัวแปรนั้นจะแสดงผลในแบบอักษรตัวเอียง (
<i>v</i>) - codepoints ของ 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,𝕐: 1D550,ℤ: 2124 สิ่งเหล่านี้นับเป็นหนึ่งไบต์ในโปรแกรมของคุณ (หากภาษาที่คุณเลือกสามารถจัดการอักขระเหล่านี้ได้เลย)
ข้อมูลที่ป้อนจะเป็นทุน ASCII ที่ซ้ำกันหรือตัวอักษร ASCII เดียวที่ไม่มีขีดเส้นใต้ขีดเส้นใต้นำหน้าหรือขีดล่างท้าย (AKA _a_จะไม่ใช่อินพุต) นี่คือโค้ดกอล์ฟที่มีจำนวนไบต์ต่ำสุดที่จะชนะ!
กรณีทดสอบ:
a => <i>a</i>
BB => 𝔹
c_ => <b>c</b>
_d => d
E => <i>E</i>
G_ => <b>G</b>
_H => H
ZZ => ℤ
ลิงค์: ข้อมูลจำเพาะ , ดาวน์โหลดตรงรุ่นอัลฟา 0.1
การใช้งานอ้างอิง (จะอยู่ใน Fortress แต่ Fortress ไม่ชอบตัวละคร doublestruck ส่วนใหญ่ดังนั้นการนำไปใช้งานจะเป็น D):
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>");
}
_____จะไม่ได้รับการป้อนข้อมูล