Le défi
Étant donné deux chaînes, chacune d'une longueur allant jusqu'à 30, consistant en des caractères ASCII imprimables (codes ), mettez-les sur une échelle de balance dans le moins d'octets de code! Cela comprend les étapes suivantes:
- Calculer et comparer les poids des chaînes
- Choisissez l'échelle ASCII d'art correctement inclinée
- Placez les deux cordes sur la balance
Les chaînes peuvent être passées sous la forme d'un tableau, de deux arguments ou de toute autre méthode raisonnable.
Le poids d'une chaîne est défini comme la somme des poids des caractères de cette chaîne, où:
- Les espaces ont un poids de 0 (
)
- Les lettres minuscules ont un poids de 2 (
abcdefghijklmnopqrstuvwxyz
) - Les lettres majuscules ont un poids de 4 (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
) - Tous les autres symboles ont un poids de 3 (
!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~
)
Les écailles ressemblent à ceci:
. _ | _- * / \ | - * / \ _- * | / \ _- * | / \ / \ | * ------ * / \ | / \ | / \ | * ------ * | ______ | ______
_. / \ * -_ | / \ * - | / \ | * -_ / \ | * -_ * ------ * | / \ | / \ | / \ | / \ | * ------ * ______ | ______
. | ______ | ______ / \ | / \ / \ | / \ / \ | / \ / \ | / \ * ------ * | * ------ * | | ______ | ______
Si la première chaîne est plus lourde, utilisez le premier dessin comme base de votre sortie; si la deuxième chaîne est plus lourde, utilisez le deuxième dessin; si les cordes ont le même poids, utilisez la troisième. Les espaces de fin sont autorisés.
J'utiliserai un segment du troisième dessin comme base pour tous les exemples suivants.
La première chaîne doit être placée sur le plateau gauche et la deuxième chaîne sur le plateau droit.
Placez une chaîne sur un panoramique en plaçant ses caractères non-espace dans la zone 6x5 immédiatement au-dessus des tirets, comme indiqué par #
s ici (vous pouvez finir par écraser une partie de l'échelle de la balance - c'est très bien):
###### _ ###### ###### ###### / ###### \ * ------ *
Tous ces caractères doivent être «réglés», c'est-à-dire soit au-dessus d'un -
caractère ou d'un autre caractère de la chaîne:
FAUX MAUVAIS CORRECT ____ ____ ____ F /\ /\ /\ l \ / \ / \ / \ / hov \ / s \ / oating \ / eri ng \ / ettled \ * ------ * * ------ * * ------ *
De plus, la pile entière doit être aussi plate que possible, ce qui signifie que parmi les six colonnes de 1 largeur, la hauteur de la plus haute et la hauteur de la plus courte ne doivent pas différer de plus de 1:
FAUX MAUVAIS CORRECT CORRECT [le plus haut: 5] [le plus grand: 4] [le plus grand: 5] [le plus grand: 2] [le plus court: 0] [le plus court: 2] [le plus court: 4] [le plus court: 2] 5__5_ ____ 5_5__ ____ 45445 & / \ 445454 / \ 45445 $% & $ @ 445454 / \ / 45445 &% @% $ & 445454% & $ @% & / 45445 \ / & $ @ $ &% \ / 445454 \ / $ @ $% $$ \ * ------ * * ------ * * ------ * * ------ *
L'ordre / la disposition exacte des personnages n'a pas d'importance. Voici tous les arrangements valides pour la chaîne "Pesez vos mots!":
____ ____ ____ ____ / \ / \ / \ / \ ds! \ / owd oe \ u! Wd \ ourwor Wihuos yoiwgr eghioo / Weighy \ / egyrr! \ / Wrhd! S \ / rrsuwy \ * ------ * * ------ * * ------ * * ------ *
Cas de test
ENTRÉE: "CODE GOLF", "défis de codage" POIDS: 32, 32 EXEMPLE DE SORTIE: . | ______ | ______ / \ | / \ / \ | nge \ s / OO \ | challe / CFGLED \ | /codage\ * ------ * | * ------ * | | ______ | ______
ENTRÉE: "", "$" POIDS: 0, 3 EXEMPLE DE SORTIE: _. / \ * -_ | / \ * - | / \ | * -_ / \ | * -_ * ------ * | / \ | / \ | / \ | / $ \ | * ------ * ______ | ______
ENTRÉE: "VOUS SAVEZ CE QU'ILS DISENT!", "Il y a_ toujours_a_relevant_xkcd" POIDS: 75, 65 EXEMPLE DE SORTIE: . tr_a_s | _hekx_y | - * elcdta _- * | revanw _- * | / e's_al \ T / \ | * ------ * AUYOHY | A! HWYK | / OTSMEW \ | * ------ * | ______ | ______
+1
. Premièrement: si les espaces ne "pèsent" rien et ne sont pas inclus dans l'illustration, pourquoi les inclure? Il est juste inutile de les filtrer en premier. Deuxièmement: cela me semble être un défi "2 en 1" / caméléon - Défi 1: Déterminer quelle chaîne est "plus lourde", Défi 2: Générer de l'art ASCII.