La sfida
Date due stringhe, ciascuna della lunghezza massima di 30, costituita da caratteri ASCII stampabili (codici ), inseriscili su una scala di bilanciamento nel minor numero di byte di codice! Questo consiste nei seguenti passaggi:
- Calcola e confronta i pesi delle stringhe
- Scegli la scala di arte ASCII inclinata in modo appropriato
- Posizionare le due stringhe sulla scala
Le stringhe possono essere passate come un array, due argomenti o qualsiasi altro metodo ragionevole.
Il peso di una stringa è definito come la somma dei pesi dei caratteri di quella stringa, dove:
- Gli spazi hanno un peso di 0 (
)
- Le lettere minuscole hanno un peso di 2 (
abcdefghijklmnopqrstuvwxyz
) - Le lettere maiuscole hanno un peso di 4 (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
) - Tutti gli altri simboli hanno un peso di 3 (
!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~
)
Le scale si presentano così:
. _ | _- * / \ | - * / \ _- * | / \ _- * | / \ / \ | * ------ * / \ | / \ | / \ | * ------ * | ______ | ______
_. / \ * -_ | / \ * - | / \ | * -_ / \ | * -_ * ------ * | / \ | / \ | / \ | / \ | * ------ * ______ | ______
. | ______ | ______ / \ | / \ / \ | / \ / \ | / \ / \ | / \ * ------ * | * ------ * | | ______ | ______
Se la prima stringa è più pesante, utilizzare il primo disegno come base dell'output; se la seconda stringa è più pesante, utilizzare il secondo disegno; se le stringhe hanno lo stesso peso, usa la terza. È consentito lo spazio bianco finale.
Userò un segmento del terzo disegno come base per tutti i seguenti esempi.
La prima stringa deve essere posizionata sul riquadro sinistro e la seconda stringa sul riquadro destro.
Posiziona una stringa su una padella posizionando i suoi caratteri non spaziali all'interno dell'area 6x5 immediatamente sopra i trattini, come indicato da #
s qui (potresti finire per sovrascrivere parte della scala del bilanciamento - va bene):
###### _ ###### ###### ###### / ###### \ * ------ *
Tutti questi personaggi dovrebbero essere "risolti", ad es. sopra un -
carattere o un altro carattere della stringa:
ERRATO ERRATO CORRETTO ____ ____ ____ f / \ / \ / \ l \ / \ / \ / \ / hov \ / s \ / oating \ / eri ng \ / ettled \ * ------ * * ------ * * ------ *
Inoltre, l'intero stack dovrebbe essere il più piatto possibile, il che significa che delle sei colonne larghe 1, l'altezza della più alta e l'altezza della più corta non devono differire di più di 1:
ERRATO ERRATO CORRETTO CORRETTO [più alto: 5] [più alto: 4] [più alto: 5] [più alto: 2] [più breve: 0] [più breve: 2] [più breve: 4] [più breve: 2] 5__5_ ____ 5_5__ ____ 45445 & / \ 445454 / \ 45445 $% & $ @ 445454 / \ / 45445 &% @% $ e 445454% e $ @% & / 45445 \ / & $ @ $ &% \ / 445454 \ / $ @ $% $$ \ * ------ * * ------ * * ------ * * ------ *
L'esatto ordine / disposizione dei personaggi non ha importanza. Di seguito sono riportate tutte le disposizioni valide per la stringa "Pesare le tue parole!":
____ ____ ____ ____ / \ / \ / \ / \ DS! \ / owd oe \ u! Wd \ ourwor Wihuos yoiwgr eghioo / Weighy \ / egyrr! \ / Wrhd! S \ / rrsuwy \ * ------ * * ------ * * ------ * * ------ *
Casi test
INPUT: "CODICE GOLF", "sfide di codifica" PESI: 32, 32 USCITA DI ESEMPIO: . | ______ | ______ / \ | / \ / \ | ESN \ s / OO \ | Challe / CFGLED \ | / Codifica \ * ------ * | * ------ * | | ______ | ______
INPUT: "", "$" PESI: 0, 3 USCITA DI ESEMPIO: _. / \ * -_ | / \ * - | / \ | * -_ / \ | * -_ * ------ * | / \ | / \ | / \ | / $ \ | * ------ * ______ | ______
INPUT: "LO SAPI COSA DICONO!", "There_always_a_relevant_xkcd" PESI: 75, 65 USCITA DI ESEMPIO: . tr_a_s | _hekx_y | - * elcdta _- * | revanw _- * | / E's_al \ T / \ | * ------ * AUYOHY | A! HWYK | / OTSMEW \ | * ------ * | ______ | ______
+1
. Primo: se gli spazi non "pesano" nulla e non vengono inclusi nell'opera d'arte, perché includerli? È solo inutile sovraccarico per prima filtrarli. In secondo luogo: mi sembra una sfida "2 in 1" / camaleonte - Sfida 1: Determina quale stringa è "più pesante", Sfida 2: Genera arte ASCII.