Распечатать первый символ предыдущих ответов


17

Принятым победителем является isaacg с его 7-битным ответом ASCII . Однако задача еще не закончена - эта награда присуждается за самый короткий ответ. Если каким-то образом вы соберете все первые символы всех остальных ответов в 10 байтов, вы получите награду. Сюда входят все персонажи из ответа на GolfScript раунда 2 (плюс тот, который добавлен самим ответом). Это ОДИН раз, когда я позволю вам выйти из строя - если у вас есть какие-либо возражения по этому поводу, дайте мне знать в комментариях.

Я хотел бы отдать должное рандоме, который помог мне с моей старой идеей и дал мне эту новую.

Предыдущие победители

  • Раунд 1: isaacg, с 7-битным ASCII.
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    Вы знаете, игра в код - это действительно здорово. Люди принимают вызов, и он постепенно становится меньше! Но давайте сделаем это по-другому. Итак, вот мой вызов:

  • Код напечатает первый символ всех предыдущих ответов в том порядке, в котором они были опубликованы (первый ответ ничего не печатает)

  • Код начинается с 100 байтов и уменьшается на 5 каждый раз.
  • Если два сообщения идут по одному и тому же ответу (то есть они оба публикуются в течение нескольких секунд друг от друга), более новый должен добавить старый символ и уменьшить его на 5 байтов (даже на несколько секунд).
  • Любой язык может быть использован.
  • Ваш код не должен давать никаких ошибок.
  • Ваш код должен использовать все байты, необходимые для первого шага.
  • Ваш код должен распечатать на STDOUT.
  • Непечатаемые символы в порядке, но:
    • Они не могут быть первым персонажем (ради цели этого вопроса)
    • Вы должны сообщить всем, где они
  • Вы можете опубликовать несколько ответов, но:
    • Вы должны подождать 2 ответа, прежде чем отправлять другой (поэтому, если вы разместили 100 байтов, вам придется подождать до 85 байтов.)
  • Вы не можете:
    • использовать более 10 байтов комментариев
    • есть переменные, которые остаются неиспользованными для всей программы
    • заполнить программу пробелами
    • иметь имена переменных длиннее 10 байт (но вы можете иметь несколько переменных
      размером менее 10 байт) (первый ответ EMBLEM является исключением из этих правил, поскольку он был опубликован до этих ограничений).
  • Нет стандартных лазеек. Если вы не хотите взять все удовольствие от испытания.
  • Если в течение 3 недель не отправляется больше ответов, выигрывает ответ, использующий наименьшее количество байтов. (В случае ничьей выигрывает тот, кто печатает более длинную строку.)

Пример: третий ответ должен состоять из 90-байтового кода, выводящего два символа (первый символ 100-байтового кода, а затем первый символ 95-байтового кода). Первый ответ ничего не выводит (без предыдущих ответов, чтобы получить символы).


«Ненужный пробел» - плохая формулировка. Пробелы в Python для завершения операторов не нужны, потому что вы можете использовать точки с запятой.
ЭМБЛЕМА

8
Возможно, мы можем начать с 100 байтов снова, но начинать с ppuppPq([#fwSmdP[начальной строки и перезапускать каждый раз, когда строка длиннее разрешенного байтом. Хотя тогда я не могу придумать критерий победы.
Sanchises

1
@Scimonster Вы честно думаете, что есть 4-битный набор символов, который включает в себя все #(PS[dfmpquw? Здесь мы сталкиваемся с самыми ограничениями плотности информации. Если вы не пишете 10-байтовую программу, которая обрабатывает все предыдущие ответы. Не уверен, стоит ли ждать.
Sanchises

2
@ Санчиз Мы не говорим, что есть один. Мы даем людям шанс увидеть, что они могут сделать. Если никто не может, мы перезапустим его.
ASCIIThenANSI

6
-1 Почему этот вызов не умер достойно после 15-байтового решения? Кажется неуместным менять его после того, как был получен хороший, «выигрышный» ответ, чтобы вы могли продолжать играть по другим правилам.
Geobits

Ответы:


34

7-битный ASCII, 15 байтов

Обновлено: я не понял, что заполнение должно произойти в конце.

Правильная версия, дополненная в конце:

hexdump (xxd):

0000000: e1c3 af0e 1438 a8b6 8f37 7a7b 7250 b6    .....8...7z{rP.

Распечатки (не уверен, что это правильно):

�ï8��z{rP�

áï8¨¶7z{rP¶

Старая версия, неправильно дополненная спереди:

pá×
T[G½=¹([

Язык / формат здесь 7-битный ascii, где каждая группа из 7 битов соответствует символу ASCII. Используется при передаче данных SMS. Декодер находится здесь.

Не существует общепринятого решения о том, разрешены ли ответы на фиксированные выходные вопросы, которые не написаны на языке программирования. Смотрите эту мета пост для получения дополнительной информации. (Я извиняюсь, я неправильно прочитал этот пост ранее.)


2
Поздравляем! Вы единственный, кого я видел, чтобы сжать строку длиннее, чем код, в который она включена! : D
ASCIIThenANSI

@ASCIIThenANSI Сжать строку в более короткую программу легко. Программа Python print('A'*100)печатает строку из 100 A-х. Сжатие фактически случайной строки не легко.
Увлечения Кэлвина

6
@ Calvin'sHobbies Это было бы проще, если бы мы все только начали весь наш код с буквы «p». : D
ASCIIThenANSI

4
-1 Я должен был посмотреть на это раньше ... Кажется, это неправильно закодировано. Похоже, вы начинаете с небольшого дополнения, но из того, что я могу сказать по формату (и этот ответ уже расширяет определение формата, поскольку упакованный 7-битный ASCII фактически нигде не используется), данные должны быть дополненным в конце, а не в начале. И даже с отступом, я думаю, что остальное не закодировано правильно.
Runer112

1
Это должно быть " <SO><DC4>¨¶Ã¯8¨¶7z {rP¶".
LegionMammal978

25

Элемент, 80 байт

programs do many fun things, like print the letters p`, p`, u`, and p` in a row.

Это язык, который я создал более трех лет назад. Вы можете найти переводчика, написанного на Perl, здесь . `Оператор печатает верхнюю вещь на стеке (буквы). Другая пунктуация делает что-то вроде конкатенации, но результаты никогда не печатаются.


1
Очень умно, сэр. Очень умно ...
ASCIIThenANSI

10

Клип , 20 байт

[M"ppuppPq([#fwSmdP"

6
Я думаю, что ты последний на ногах. Если кто-то не может сжать ppuppPq([#fwSmdP[в 15 байтов и вывести его.
Sanchises

@sanchises Если кто-нибудь сделает, я бы присудил награду. Потому что это было бы хорошо.
ASCIIThenANSI

3
@sanchises Если бы был какой-то эзотерический язык, который выводил программу со всеми вхождениями, pзамененными на pp. Тогда решение будет pupPq([#fwSmdP[.
bcsb1001

1
@ bcsb1001 Да, недавно я подумал о чем-то подобном; эзотерический язык, где каждая команда является выигрышным решением задач на этом сайте и использует выходные данные этой команды в качестве входных данных для следующей команды. Было бы здорово, если бы кто-нибудь мог запрограммировать что-нибудь в этом.
Sanchises

1
@sanchises Но нарушит ли это стандартное правило лазейки, выйдя в интернет?
ASCIIThenANSI

5

Common Lisp, 65 байт

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))

Последние 112 должны быть изменены на 80 (как-то).
LegionMammal978

12
С этим ответом началась эра тьмы.
PhiNotPi


4

Python 3, 95 байт

pre='public class f{public static void main(String[] a){System.out.print("");}}'
print(pre[0])


4

Прошло 24 часа с момента редактирования! Давай сделаем это! : D

Java, раунд 2, 100 байт

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}

1
Как насчет маркировки этого «Раунда 2»?
Клаудиу

4

Раунд 2: Рубин, 75 байтов

"ppuppPq([#fwSmdP[ppnvos".chars.each do|character|;print character;end#4444

Я думал, что сделаю это немного сложнее, начав свой ответ с цитаты! >: D





3

F # скрипт, 40 байт

System.Console.Write "\u0070puppPq([#fw"

Он имеет свой собственный тип файла ( .fsx), поэтому я уверен, что он считается языком.


1
Вы забыли "W" с нуля.
ASCIIThenANSI

Я думаю, что это также не хватает 'F' из 50-байтового ответа JavaScript.
user19057

Исправлено это тоже
LegionMammal978

3

Раунд 2: /// , 65 байт

\p/CodeGolfIsAwesome!/puppPq/CodeGolfIsAwesome!([#fwSmdP[ppnvos"R

Думал, я бы немного оживил это с помощью обратной косой черты :)



2

Рубин, 70 байт

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}

Вы должны были бы изменить это ["publ", "pre", "usi", "p1 ", "pro", "Pri"].
LegionMammal978



2

MATLAB, 30 байтов

disp([112 112 'uppPq([#fwSm'])

Прекрасно показывает, насколько свободна MATLAB с типами данных.


2

Mathematica, 25 байт

Print["ppuppPq([#fwSmd"];

1
У меня было новое 25-байтовое решение CJam, которое кодировало строку не простым способом. К сожалению, похоже, что он никогда не увидит свет. : - /
Runer112

@ Runer112 Ты и все твои маленькие рифмы / Тем не менее, у меня был ответ примерно за 20 секунд до того, как прозвенел 30-байтовый.
LegionMammal978

2

Раунд 2: Пакет, 70 байт

REM BATCHS
GOTO B
:C
ECHO ppuppPq([#fwSmdP[ppnvos"
GOTO A
:B
GOTO C
:A

Ваша цитата была бесполезной. D:>

Редактировать: мне просто пришло в голову, что я иду по размеру файла, а не по количеству символов, не зная, как считать байты: P

Редактировать 2: Добавлен комментарий для заполнения байтов. Если вы проверите количество байтов на машине с Windows, просто притворитесь, что «REM BATCHS» - это просто «REM», я думаю. :П


Я считаю байты с Gedit; он говорит, что ваш ответ 63. Не беспокойтесь; Вы достаточно близко, чтобы заполнить пробел с комментариями.
ЭМБЛЕМА

1
Ах, хорошо, круто, я просто добавлю комментарий.
Bloo

3
@EMBLEM Это потому, что новая строка Windows \r\n. Там есть 7 дополнительных \rс.
jimmy23013


2

Раунд 2, > <> , 45 байтов

4 символа комментариев.

'c(v\R"sovnpp[PdmSwf#[(qPppupp'01.uwyz
ol?!;

Строка теперь содержит и то "и другое ', поэтому> <> ответы больше не могут просто окружать ее (так я избегал любых побегов).


2

Раунд 2, Golfscript, 35 байт

"ppuppPq([#fwSmdP[ppnvos\"R\\v(c'P"

Нет ненужных байтов. Начинается с цитаты снова!


7-битный ASCII здесь не работает, он создает только 28 байтов и включает дополнительный NUL
LegionMammal978,

Кто-то умнее, чем мне придется это сделать .. может быть, есть какой-то язык, закодированный в 6 битах, который можно запустить для получения правильного вывода ..
Claudiu

Нет, 6 битов создали бы 24 байта, но нам нужно 30.
LegionMammal978

@ LegionMammal978: Хорошо, 24 байта, затем 8 шестибитных инструкций, чтобы напечатать их или сделать что-либо еще
Claudiu

1
Вы пропускаете апостроф из 2 ответов назад
14mRh4X0r


1

Раунд 2, C #, 95 байтов

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}

Как насчет маркировки этого «Раунда 2»?
Клаудиу

1

Раунд 2, скрипт F #, 55 байт

(**)System.Console.Write(@"uppPq([#fwSmdP[ppnvos""R\v")

Смотрите мой предыдущий сценарий F # и узнайте, почему я думаю, что это правильный язык.



1

Раунд 2, Javascript, 60 байтов

var _p = "p"; alert (_p.repeat (2) + "uppPq ([# fwSmdP [ppnvos \" R \\ ");

Я думаю, что ваш __попадет под ненужные переменные. Попробуйте изменить pдвухбуквенное имя и сделайте строку в двойных кавычках, чтобы добавить обратную косую черту для печатной цитаты. Это должно компенсировать 3 символа, которые вы потеряли при удалении __,.
LegionMammal978

1
Они не сказали, чтобы не использовать их. Они сказали использовать не более десяти байтов.
SuperJedi224

Это означало, что вы можете использовать необходимые переменные размером до 10 байтов, но вы не можете использовать ненужные переменные в целом.
LegionMammal978

@Rainbolt Вы интерпретируете это как «Вы не можете использовать более 10 байтов (комментарии), (ненужные переменные), (заполнение программы пробелами) или (имена переменных) длиннее 10 байтов», но из-за вторая ссылка, я вижу это как «Вы не можете использовать (более 10 байтов комментариев), (ненужные переменные), (заполнение программы пробелами) или (имена переменных длиннее 10 байтов)».
LegionMammal978

Я исправил неоднозначность. В вопросе var __не разрешено (не используется в остальной части программы), но переименование pбудет приемлемым.
ASCIIThenANSI

1

Раунд 2: Javascript, 90 байт

var p = "p"; alert (p + p + p + "u" + p + p + p.toUpperCase () + "q ([# fwSmd" + p.toUpperCase () + "[" + p + p + " п "); // р

Как насчет маркировки этого «Раунда 2»?
Клаудиу

Это __,подпадает под ненужные переменные .
LegionMammal978
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.