船舶使用“国际信号代码”标志字母进行通信,尤其是静态信号。
您面临的挑战是编写一个程序或函数,该程序或函数将采用STDIN中的字符串或作为参数,并以ICS标志字母显示相应的文本。如果您的语言未显示在屏幕上,则可以保存到文件。
您的程序或函数应支持大写和小写字母AZ,以及Space和Newline。与其他字符的行为是不确定的。
显示器应足够大,以 能够水平显示至少8个标记,垂直显示 6个标记。如果在收到换行符之前到达右边缘,或者消息太长而无法垂直显示,则行为是不确定的。
标记字母如下所示(罗马字母仅供参考,输出中不需要。)
尺寸图
对于这些标志的尺寸,没有统一的标准,因此,出于本挑战的目的,应遵循以下规定:
标志应为60x60像素,水平和垂直之间应留有30像素的间隙。
A和B上的燕尾切口应深15像素。
所有其他线应为水平,垂直或成45度角。
通过将标志划分为侧面3、4、5或6个正方形的虚构NxN网格来定位特征。请参考上图,但需要进一步说明:
A,E,H,K,L和U基于2x2网格:每个颜色区域的宽度应为30像素。F中菱形的点也应位于标志两侧的中间。
J和T基于3x3网格:每个波段应为20个像素。
P,N和S基于4x4网格。Y的对角线也应将标志的边缘分成4个。
C,D,R和X应基于5x5网格。十字架的带和臂的宽度应为12像素。
G,W,M,V基于6x6网格。G的带和W的边界应为10像素宽。M和V上的叉臂应覆盖标志每个边缘的前10个像素和最后10个像素,沿长边缘保留40个像素的三角形区域。
I的圆圈应位于标记的中心,并且直径为30像素。
上述文字的误差为+/- 1像素。如果您的语言仅支持可缩放的图形,则可以将“像素”解释为“单位”。
色彩
颜色应为您的语言或其文档定义的红色,白色,蓝色,黄色和黑色。如果您的语言没有定义颜色,则可以使用以下颜色:红色FF0000,白色FFFFFF,蓝色0000FF,黄色FFFF00,黑色0000000。
背景应为灰色(r,g和b通道相等,强度在25%和75%之间。)
计分/漏洞
这是代码高尔夫。以字节为单位的最短代码获胜。
不允许出现标准漏洞。
不能使用用于显示标志的内置函数或库函数。输出应为非文本(尤其是不得使用unicode字符来构建标志形状。)
例
JFK got
my VHS
PC
and XLR
web quiz
应该产生以下