Los barcos utilizan el alfabeto de bandera del Código Internacional de Señales para la comunicación, particularmente para las señales estáticas.
Su desafío es escribir un programa o función que tome una cadena de STDIN o como argumento, y muestre el texto correspondiente en el alfabeto de la bandera de ICS. Si su idioma no se muestra en la pantalla, guardar en un archivo es aceptable.
Su programa o función admitirá las letras AZ en mayúsculas y minúsculas, más Space y Newline . El comportamiento con otros personajes no está definido.
La pantalla debe ser lo suficientemente grande como para mostrar capaz de mostrar al menos 8 banderas horizontalmente y 6 banderas verticalmente. El comportamiento no está definido si se alcanza el borde derecho antes de recibir una nueva línea, o si el mensaje es demasiado largo para caber en la pantalla verticalmente.
El alfabeto de la bandera es el que se muestra a continuación (las letras romanas son solo de referencia, no son necesarias en la salida).
Dimensiones
No existe un estándar universalmente acordado para las dimensiones de estas banderas, por lo que para el propósito de este desafío se aplicará lo siguiente:
Las banderas serán de 60x60 píxeles, con un espacio de 30 píxeles entre ellas tanto horizontal como verticalmente.
La cola de golondrina cortada en A y B tendrá 15 píxeles de profundidad.
Todas las demás líneas deben ser horizontales, verticales o a 45 grados.
Las características se ubicarán dividiendo la bandera en una grilla NxN imaginaria de lados 3,4,5 o 6 cuadrados. Consulte la imagen de arriba, pero para más aclaraciones:
A, E, H, K, L y U se basan en una cuadrícula de 2x2: el ancho de cada zona de color debe ser de 30 píxeles. Además, los puntos del diamante en F estarán a la mitad de cada lado de la bandera.
J y T se basan en una cuadrícula de 3x3: cada banda tendrá 20 píxeles.
P, N y S se basan en una cuadrícula de 4x4. Además, las líneas diagonales de Y deberán dividir los bordes de la bandera en 4.
C, D, R y X se basarán en una cuadrícula de 5x5. Las bandas y brazos de cruces deben tener 12 píxeles de ancho.
G, W, M, V se basan en una cuadrícula de 6x6. Las bandas de G y los bordes de W deben tener 10 píxeles de ancho. Los brazos de cruces en M y V deberán cubrir los primeros y últimos 10 píxeles de cada borde de la bandera, dejando zonas triangulares que midan 40 píxeles a lo largo del borde largo.
El círculo de I estará en el centro de la bandera y tendrá un diámetro de 30 píxeles.
Se permite un error de +/- 1 píxel del texto anterior. Si su idioma solo admite gráficos escalables, puede interpretar que "píxeles" significa "unidades".
Colores
Los colores serán rojo, blanco, azul, amarillo y negro según lo definido por su idioma o su documentación. Si su idioma no define los colores, puede usar lo siguiente: Rojo FF0000, Blanco FFFFFF, Azul 0000FF, Amarillo FFFF00, Negro 0000000.
El fondo debe ser gris (canales r, g y b iguales, entre 25% y 75% de intensidad).
Puntuación / Lagunas
Esto es codegolf. El código más corto en bytes gana.
Las lagunas estándar no están permitidas.
No se pueden utilizar funciones incorporadas o de biblioteca para mostrar banderas. La salida no será texto (y, en particular, los caracteres unicode no se utilizarán para construir la forma de la bandera).
Ejemplo
JFK got
my VHS
PC
and XLR
web quiz
debe producir lo siguiente