Код-Bowling
Brunswick Bowling наняла вас для создания простой программы для вывода текста Code Bowlingна мониторы. Эта компания стоит немалых денег, и вы чувствуете, что можете обмануть их за небольшие деньги.
В должностной инструкции четко сказано, что они платят на основе начисления очков, и вы вполне уверены, что можете использовать их систему начисления очков в свою пользу и получить от этих парней максимально возможный чек. Для этого вам потребуется собрать как можно больше кода в свою программу / функцию, даже если их система подсчета очков предназначена для предотвращения этого.
Убери свои копилки, давай закодируй!
Вызов
Задача состоит в том, чтобы просто вывести текст Code Bowling, в точности так, как он написан здесь, с максимально возможной оценкой. (Смотрите раздел: Система подсчета очков ниже)
Начальные и конечные новые строки (переводы строк) допустимы.
Ваш код может быть целой программой или просто исполняемой функцией.
правила
Обязательный: в этом задании используется код-боулинг: общие правила, редакция 1.0.0 ; Смотрите Meta для деталей.
Характер: соотношение байтов.
В коде-боулинге число символов предпочтительнее, чем число байтов. Очевидная причина этого заключается в том, что многобайтовые символы Юникода (например, 🁴) могут использоваться вместо однобайтовых символов Юникода для увеличения количества байтов и сделают боулинг больше о том, кто переименовывает большинство переменных с высокобайтовыми символами Юникода, а не чем тот, кто наиболее стратегически создает значимый сложный код.Имена переменных / функций / объектов
Все имена переменных (или указатели объектов, имена функций и т. Д.) Должны быть длиной в 1 символ. Единственное приемлемое время для использования двухсимвольных имен переменных - это после того, как все возможные односимвольные переменные были использованы. Единственное приемлемое время для использования имен 3-символьных переменных - это после того, как были использованы все возможные 2-символьные переменные. И т.п.Неиспользованный код
Весь код должен быть использован. Это означает, что программа не всегда может правильно выполнить задачу, если какой-либо отдельный символ (или различные наборы символов) удалены. Естественно, подмножество программы не должно быть в состоянии выполнить задачу самостоятельно без остальной части программы.Комментарии
Комментарии не допускаются к подсчету символов, если они не используются вашей программой / функцией.
Система баллов:
Pangram Challenge:
Панграмма - это предложение, которое использует каждую букву хотя бы один раз. (Быстрая коричневая лиса прыгает через ленивую собаку).
В этом типе испытаний предусмотрены системы подсчета очков, в которых совершенная панграмма набирает теоретический максимальный балл (хотя вы не обязаны использовать каждый символ хотя бы один раз). Кроме того, использование любого символа более одного раза приведет к штрафу. Эта задача также распространяется не только на буквы алфавита.
Метрика оценки:
- Каждый используемый персонаж увеличивает ваш счет на 1.
- Повторное использование любого буквенно-цифрового символа (az, AZ, 0-9) приведет к вычету 3 балла за повтор (первое использование не приводит к вычету).
- Повторное использование основных знаков препинания
([!?.-,":';])- включая скобки - приведет к вычету 2 баллов за повтор.- Повторное использование других символов ASCII
{`~@#$%^&*_+=|\/><}- включая фигурные скобки - приведет к вычету 4 балла за повтор.- Использование пробелов, табуляции и переносов приведет к вычету 1 балла за использование. То есть они не учитываются в сумме символов.
- Персонажи, не упомянутые выше (экзотические персонажи) , дают вычет 1 очко за использование. То есть они не учитываются в сумме символов.
Инструмент для подсчета очков:
Создан автоматический виджет скоринга, который можно найти здесь .
Это вариант кода для боулинга . Программа с самым высоким счетом выигрывает! (Поскольку существует максимальный балл 94, тот, кто достигнет его первым (если он может быть достигнут), будет отмечен как принятый ответ, хотя другие могут свободно отвечать ради интереса)