Змагання
Дано два рядки, кожна довжиною до 30, що складається з друкованих символів ASCII (кодів) ), поставте їх на шкалу балансу в найменших байтах коду! Це складається з наступних етапів:
- Обчисліть і порівняйте ваги пасм
- Виберіть відповідну нахилену шкалу ASCII
- Покладіть дві струни на шкалу
Рядки можуть передаватися у вигляді масиву, двох аргументів або будь-якого іншого розумного методу.
Вага рядки визначається як сума ваг символів цього рядка, де:
- Пробіли мають вагу 0 (
) - Малі літери мають вагу 2 (
abcdefghijklmnopqrstuvwxyz) - Великі літери мають вагу 4 (
ABCDEFGHIJKLMNOPQRSTUVWXYZ) - Усі інші символи мають вагу 3 (
!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~)
Ваги виглядають так:
. _
| _- * / \
| - * / \
_- * | / \
_- * | / \
/ \ | * ------ *
/ \ |
/ \ |
/ \ |
* ------ * |
______ | ______
_.
/ \ * -_ |
/ \ * - |
/ \ | * -_
/ \ | * -_
* ------ * | / \
| / \
| / \
| / \
| * ------ *
______ | ______
.
|
______ | ______
/ \ | / \
/ \ | / \
/ \ | / \
/ \ | / \
* ------ * | * ------ *
|
|
______ | ______
Якщо перший рядок важчий, використовуйте перший малюнок як основу вашого результату; якщо друга струна важча, використовуйте другий малюнок; якщо струни мають рівну вагу, використовуйте третю. Доступний пробіл пробігу дозволений.
Я буду використовувати сегмент третього малюнка як основу для всіх наступних прикладів.
Перший рядок слід розмістити на лівій панелі, а другий рядок - на правій.
Помістіть рядок на сковороді, поміщаючи його некосмічних символи в області 6х5 безпосередньо над рисками, як зазначено на #с тут (Ви можете закінчити перезапис частини шкали балансу - це добре):
###### _ ###### ###### ###### / ###### \ * ------ *
Усі ці символи повинні бути "осілі", тобто. або над -символом, або з іншого символу з рядка:
ПРАВИЛЬНО НЕ ПРАВИЛЬНО
____ ____ ____
f / \ / \ / \
л \ / \ / \
/ \ / hov \ / s \
/ oating \ / eri ng \ / ettled \
* ------ * * ------ * * ------ *
Крім того, весь стек повинен бути максимально рівним, це означає, що з шести 1-ширих стовпців висота найвищої і найкоротша висота не повинні відрізнятися більше ніж на 1:
WRONG WRONG ПРАВИЛЬНО ПРАВИЛЬНО
[найвищий: 5] [найвищий: 4] [найвищий: 5] [найвищий: 2]
[найкоротший: 0] [найкоротший: 2] [найкоротший: 4] [найкоротший: 2]
5__5_ ____ 5_5__ ____
45445 & / \ 445454 / \
45445 $% & $ @ 445454 / \
/ 45445 &% @% $ & 445454% & $ @% &
/ 45445 \ / & $ @ $ &% \ / 445454 \ / $ @ $% $$ \
* ------ * * ------ * * ------ * * ------ *
Точний порядок / розташування символів не має значення. Нижче наведено всі дійсні домовленості для рядка "Зважте свої слова!":
____ ____ ____ ____ / \ / \ / \ / \ дс! \ / owd oe \ u! wd \ ourwor Wihuos yoiwgr eghioo / Важать \ / egyrr! \ / Wrhd! S \ / rrsuwy \ * ------ * * ------ * * ------ * * ------ *
Тестові справи
ВХОД: "CODE GOLF", "кодування виклики"
ВАГИ: 32, 32
ПРИКЛАД ВИХІД:
.
|
______ | ______
/ \ | / \
/ \ | nge \ s
/ ОО \ | виклик
/ СВЯТЛЕНО \ | / кодування \
* ------ * | * ------ *
|
|
______ | ______
ВХОД: "", "$"
ВАГИ: 0, 3
ПРИКЛАД ВИХІД:
_.
/ \ * -_ |
/ \ * - |
/ \ | * -_
/ \ | * -_
* ------ * | / \
| / \
| / \
| / $ \
| * ------ *
______ | ______
ВХОД: "Ви знаєте, що вони говорять!", "There_always_a_relevant_xkcd"
ВАГИ: 75, 65
ПРИКЛАД ВИХІД:
. tr_a_s
| _hekx_y
| - * elcdta
_- * | revanw
_- * | / e's_al \
Т / \ | * ------ *
AUYOHY |
A! HWYK |
/ OTSMEW \ |
* ------ * |
______ | ______
+1. По-перше: якщо пробіли нічого не "важать" і не включаються в твори мистецтва, то навіщо їх взагалі включати? Просто зайві накладні спочатку їх відфільтрувати. По-друге: мені здається, що це "2-в-1" / хамелеон виклик для мене - виклик 1: Визначте, яка струна є "важчішою", Завдання 2: Створіть деяке ASCII-мистецтво.