Pháo đài là ngôn ngữ được phát triển bởi Nhóm nghiên cứu ngôn ngữ lập trình mặt trời (Pháo đài RIP) có một thuộc tính duy nhất, có thể kết xuất các chương trình ("Fortify") theo các kiểu phông chữ khác nhau (ví dụ như bảng đen, đậm, in nghiêng, La Mã, v.v.). Mục tiêu là đại diện cho biến Pháo đài một ký tự trong đánh dấu HTML.
Dưới đây là cách củng cố các biến one-char hoạt động (đơn giản hóa / sửa đổi từ tài liệu cho mục đích chơi gôn mã):
- Nếu biến là một số vốn lặp lại (nghĩa là
ZZ), nó sẽ được định dạng trong bảng đen in đậm (𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ) - Nếu biến được đặt trước dấu gạch dưới, biến được hiển thị bằng phông chữ La Mã (còn lại một mình)
- Nếu biến được theo sau bởi dấu gạch dưới, biến được hiển thị bằng phông chữ đậm (
<b>v</b>) - Nếu biến không được đặt trước hoặc theo sau bởi dấu gạch dưới, biến được hiển thị ở phông chữ in nghiêng (
<i>v</i>) - Các codepoints của bolds bảng đen là:
𝔸: 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. Chúng được tính là một byte trong mỗi chương trình của bạn (nếu ngôn ngữ bạn chọn có thể xử lý tất cả các ký tự này)
Đầu vào sẽ là một chữ viết hoa ASCII lặp đi lặp lại hoặc một chữ cái ASCII duy nhất không có dấu gạch dưới, dấu gạch dưới hàng đầu hoặc dấu gạch dưới (AKA _a_sẽ không phải là đầu vào). Đây là mã golf nên số byte thấp nhất sẽ thắng!
Các trường hợp thử nghiệm:
a => <i>a</i>
BB => 𝔹
c_ => <b>c</b>
_d => d
E => <i>E</i>
G_ => <b>G</b>
_H => H
ZZ => ℤ
Liên kết: Thông số kỹ thuật , Tải xuống trực tiếp phiên bản 0.1 alpha .
Triển khai tham chiếu (Điều này sẽ có trong Pháo đài, nhưng Pháo đài không giống như hầu hết các nhân vật doublestruck, vì vậy việc triển khai này nằm ở 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>");
}
_____sẽ không được đầu vào.