Se hai un bambino piccolo in casa, potresti aver trovato lettere di schiuma da bagno. Questi possono essere inumiditi e attaccati a superfici piane come piastrelle e il lato del bagno per creare parole e messaggi.
La gamma di parole e messaggi è piuttosto limitata se si dispone di un solo set, però, dal momento che si ottiene solo 36 caratteri: lettere maiuscole AZ, e cifre 0-9: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
. Tuttavia, puoi essere astuto e abusare di alcune lettere e cifre per formare copie extra di altre lettere:
3: E
1: I
7: L (when rotated)
M: W (when rotated)
0: O
2: S (when flipped)
5: S
W: M (when rotated)
2: Z
5: Z (when flipped)
O: 0
6: 9 (when rotated)
L: 7 (when rotated)
9: 6 (when rotated)
Si noti che questi non sono tutti bidirezionali, poiché tende a essere più facile leggere una cifra come parte di una parola rispetto a una lettera come parte di un numero.
Ogni set è disponibile anche in una gamma di colori, in cui ogni lettera è colorata in sequenza. Ad esempio, se il tuo set ha 3 colori, rosso, giallo e blu, il tuo set sarebbe come:
- Rosso:
ADGJMPSVY147
- Giallo:
BEHKNQTWZ258
- Blu:
CFILORUX0369
Il tuo compito, quindi, è di prendere tre parametri (in qualsiasi modo adatto) che indicano una parola o frase, il numero di colori da usare e il numero di insiemi che hai, quindi di produrre una rappresentazione della parola o frase, in un set di colori adatti, facendo uso di sostituzioni se necessario. Se non è possibile creare la parola o la frase in base al numero di set, emettere invece "No", con i colori appropriati.
Esempi
In tutti questi, il primo parametro è la parola o frase, il secondo è il numero di colori e il terzo è il numero di set disponibili.
["bath", 3, 1]
["programming", 3, 2]
["puzzles", 3, 1]
["code golf", 5, 1]
["willow tree", 1, 1]
["impossible phrase", 8, 1]
- c'è solo 1 P in un set e nessuna sostituzione valida
Appunti
- È possibile impostare 1 su un valore predefinito se questo aiuta (ad esempio un valore di parametro predefinito su 1), ma è necessario supportare più set su richiesta. Il numero di set che hai sarà sempre un numero intero diverso da zero positivo.
- Se hai più set, sono tutti colorati nello stesso modo: se A è rosso nel primo set, sarà rosso anche nel secondo set. I colori vengono applicati per serie, non per tutte le serie in una determinata chiamata
- Devi supportare da 1 a 36 colori: 1 indica che tutti i caratteri sono dello stesso colore, 36 indica che sono tutti distinti. Ci saranno solo numeri interi di colori.
- È possibile utilizzare qualsiasi colore, purché siano visivamente distinti: se si esegue l'output al terminale, è possibile utilizzare una combinazione di primo piano e sfondo come "colore", anche se non è necessario utilizzare lo stesso colore per primo piano e sfondo
- L'output deve utilizzare i caratteri effettivamente utilizzati, non i caratteri dell'input. Ad esempio, se si avesse ["salice", 1, 1] come input, si potrebbe produrre
WIL7OM
con 7 e M ruotati di 180 gradi - Dovresti prima usare le lettere giuste, quindi sostituire:
MI7LOW
non è corretto per ["salice", 1, 1] - Puoi usare qualsiasi sostituzione per un dato personaggio:
SO5
eSO2
con un 2 capovolto sono entrambi validi per "SOS" - Più invocazioni del codice per lo stesso input non devono produrre output identici
- L'output deve essere in maiuscolo, ma l'input può essere in qualsiasi combinazione di maiuscole e minuscole
- Dovrebbe essere ovvio, ma uno spazio non ha un colore
Regole
- Questo è il golf del codice, ma con un output semi-grafico (non sono sicuro che tu possa fare il testo capovolto in un terminale, ma sono interessato a vedere se Pyth ha un built-in per esso)
- Si applicano scappatoie standard
- Non ci sono bonus per le funzioni, ma per favore vota risposte interessanti
- Includi alcune schermate del tuo output nelle tue risposte
Sfide correlate
- My Daughter's Alphabet - un parziale inverso di questa sfida, cercando di trovare un set minimo di lettere per scrivere una serie di frasi
- Una lettera si inserisce nell'altra? - su un diverso tipo di lettere in schiuma, ma con un'alternativa simile al tema delle lettere
NOPE
?