Примерно год назад, 31 декабря 2015 года, у меня возникла мысль, что:
Doorknob любезно собрал персонажей из сообщества PPCG и держал их в безопасности в течение года.
В нем приняли участие 74 человека, так что у нас есть 74 печатных символа ASCII для игры!
Вот 74 символа строки капсулы времени 2016 в том порядке, в котором они были отправлены:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Вот 74 символа строки капсулы времени 2016 в порядке ASCII (обратите внимание на начальный пробел):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
Работать не так уж и много, но здесь нам нравится вызов.
Соревнование
Чтобы определить, какой язык «лучший» для строки временной капсулы, у нас будет 6 (на 201 6 ) испытаний, которые увеличиваются по сложности, в каждой из которых вы должны использовать поднабор из 74 символов временной капсулы.
Наличие 6 различных задач помогает обеспечить конкуренцию большему количеству языков, но только лучшие языки смогут ответить на все из них и набрать высокий балл.
Подсчет очков:
- Каждое испытание будет оцениваться от 0 до 74 в зависимости от того, сколько символов используется.
- Чем выше баллы, тем лучше.
- Если ваш язык не может выполнить задание, ваш счет для этого задания равен 0.
- Любое непустое подмножество задач может быть выполнено.
- Ваш итоговый балл - это сумма баллов за все 6 испытаний.
- Наилучшая возможная итоговая оценка - 6 × 74 или 444 .
Испытания
1. Беги
Если код языка не может выполняться в первую очередь, он вообще ничего не сможет сделать.
Напишите самую длинную полную программу (используя только 74 символа капсулы времени, помните), которая запускается / выполняется без ошибок во время компиляции или во время выполнения.
Не имеет значения, что делает программа, не имеет значения, имеет ли она ввод-вывод или входит в бесконечный цикл, важно только то, что она работает без ошибок. (Предупреждения в порядке, как и ошибки, вызванные неправильным пользовательским вводом.)
Комментарии разрешены, так что это может быть так просто, как
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
в Python за 74 балла.
(Не бойтесь отвечать, если это единственная задача, которую может выполнить ваш язык, но также не ожидайте большого количества голосов.)
Оценка = продолжительность программы (чем длиннее программа, тем лучше)
2. I / O
Язык, который не имеет формы ввода или вывода, почти так же бесполезен, как и тот, который не может работать.
Если задан печатный символ ASCII от !
(0x33) до }
(0x7D) включительно, выведите печатный символ ASCII до и после него.
Вывод может быть длиной в две строки или списком, или символами, разделенными пробелом или новой строкой.
Например, если вход является }
выходом, может быть |~
или ["|", "~"]
или | ~
или или |\n~
.
Аналогично, "
является выходом для !
и AC
является выходом для B
.
Score = 74 - длина программы (чем короче программа, тем лучше)
3. Ветвистость
Условные обозначения часто являются требованием для полноты по Тьюрингу , что часто является требованием для полезного языка.
Если задано положительное целое число, если оно заканчивается десятичными цифрами, 16
измените на 6
a 7
и выведите результат; в противном случае выведите входные данные без изменений. Вы можете использовать строки для ввода / вывода, если хотите.
Примеры:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
Score = 74 - длина программы (чем короче программа, тем лучше)
4. Loopability
Язык, который не может делать циклы, будет порождать повторяющийся код, настолько утомительный, что вам потребуется некоторое время на перерыв в программировании.
Получив положительное целое число, выведите квадрат ASCII-искусства той длины стороны, заполненный узором из концентрических меньших квадратов, которые чередуются между любыми двумя различными печатными символами ASCII . Они не должны быть одинаковыми двумя символами для разных входов.
Например:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
Score = 74 - длина программы (чем короче программа, тем лучше)
5. Математика
Язык, который плохо разбирается в цифрах и математике, может быть и для гуманитарных специальностей.
Не принимайте никаких входных данных, но выведите 72 целочисленных делителя 2016 года , положительных и отрицательных, в любом порядке. Вывод может быть отформатирован в виде строки или списка разумным способом.
Пример:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
Score = 74 - длина программы (чем короче программа, тем лучше)
6. Эзотеризм
(Нет, не что .) Мы в PPCG как наш эзотерический материал , и quines являются хорошим примером этого.
Напишите самую длинную квинну, которую вы можете, согласно обычным правилам квин . Quine - это программа, которая не требует ввода и выводит сама себя.
Оценка = продолжительность программы (чем длиннее программа, тем лучше)
Особые правила
- В каждом из 6 заданий ваша программа должна быть подмножеством из 74 капсульных символов, переставленных так, как вам нравится. Это может быть пустое подмножество или неправильное подмножество , поэтому каждая из ваших программ может содержать от 0 до 74 символов.
- Одиночный завершающий перевод строки в конце ввода / вывода / кода в любом месте в порядке, поскольку некоторые языки требуют этого, или его нельзя легко избежать.
- Если не указано иное, каждый вызов может быть выполнен в виде функции или полной программы в соответствии с нашими значениями по умолчанию .
- Все задачи должны быть выполнены на одном языке.
- Вы должны использовать язык (или версию языка), созданный до 2017 года в любой точке Земли .
- Любой желающий может ответить, независимо от того, добавили ли вы персонажа в капсулу времени или нет.
Не стесняйтесь использовать персонажей капсулы времени 2016 года в ваших собственных задачах.
6×74 or 444
это невозможно, поскольку это означало бы пустые программы, которые как-то ведут себя по-разному. следовательно, 442 является фактическим минимумом, поскольку это означает, что в двух из 3 программ ввода данных есть символ