Il tuo obiettivo è quello di scrivere un codificatore a semaforo a bandiera , che convertirà una determinata frase nei corrispondenti caratteri a semaforo a bandiera, secondo il sistema dei semafori descritto su Wikipedia .
Supponiamo che l'input sia una singola frase fornita tramite stdin (o equivalente). L'output dovrebbe essere una serie di caratteri semaforo, con ogni riga che rappresenta una parola dalla frase. Devi solo gestire l'alfabeto (AZ) e ignorare tutti gli altri caratteri non spaziali, ma devi essere in grado di gestire sia lettere maiuscole che minuscole. Il tuo output può contenere spazi bianchi extra.
I caratteri del semaforo devono essere visualizzati come un quadrato 3x3, con una Oal centro e le posizioni della bandiera rappresentate dai personaggi | - / \. Ogni carattere semaforo deve essere separato dai caratteri adiacenti da uno spazio e ogni riga deve essere separata da una riga vuota. Non preoccuparti di racchiudere parole che potrebbero essere troppo lunghe per il tuo display - fai finta che le tue linee abbiano una lunghezza infinita.
Input di esempio:
abcdefg hijklmn opqrstu vwxyz
Uscita campione:
\ | /
O -O O O O O- O
/| | | | | | |\
\ | | /
-O O O- O O O- O
/ / / / / / \
\ | / \| \ /
-O -O -O -O- -O O O
\
| / / \
O O- O O- O-
\ \ \
Input di esempio:
This is Code Golf.
Uscita campione:
\| \
O -O O -O
/ / \
\
O -O
/ \
\ \ | /
O -O O O
| | |
\ /
O -O O O-
|\ / |
Dato che si tratta di code-golf , vince la soluzione più breve.
and each row must be separated by a blank line=> ogni parola è intesa, no?