Роздрукуйте перший символ попередніх відповідей


17

Прийнятим переможцем є isaacg, з його 7-бітною відповіддю ASCII . Однак виклик ще не закінчений - ця нагорода присуджується за найкоротший відповідь. Якщо якимось чином ви зведете всіх перших персонажів усіх інших відповідей на 10 байт, ви виграєте виграш. Сюди входять усі символи з відповіді на GolfScript Round 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 для завершення висловлювань непотрібний, оскільки ви можете використовувати крапки з комою.
EMBLEM

8
Можливо, ми можемо починати знову зі 100 байт, але починаємо з ppuppPq([#fwSmdP[початкового рядка і перезапускаємо щоразу, коли рядок довший дозволеного числа. Я тоді не можу думати про виграшний критерій.
Санчіз

1
@Scimonster Ви чесно думаєте, що існує 4-бітний набір символів, який включає в себе все #(PS[dfmpquw? Тут ми стикаємося з самими межами щільності інформації. Якщо ви не пишете 10-байтну програму, яка обробляє всі попередні відповіді. Не впевнений, чи варто цього чекати.
Санчіз

2
@sanchises Ми не кажемо, що є. Ми даємо людям можливість побачити, що вони можуть зробити. Якщо ніхто не зможе, ми його перезапустимо.
ASCIIThenANSI

6
-1 Чому після 15-байтового рішення цей виклик не загинув гідно? Здається, що це було сумлінно змінити його після того, як була надана хороша "виграшна" відповідь, щоб ви могли продовжувати грати за різними правилами.
Геобіц

Відповіді:


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's. Стиснути ефективно випадковий рядок непросто.
Захоплення Кальвіна

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 Якщо хтось, я нагородив би нагородою. Бо це було б просто так добре.
ASCIIThenANSI

3
@sanchises Якби тільки була якась езотерична мова, яка виводила програму з усіма появами, pзаміненими на pp. Тоді рішення було б pupPq([#fwSmdP[.
bcsb1001

1
@ bcsb1001 Так, недавно я придумав щось подібне; езотерична мова, де кожна команда є виграшним рішенням виклику на цьому сайті, і використовує вихід цієї команди як вхід для наступної команди. Було б дивним, якби хтось міг щось програмувати.
Санчіз

1
@sanchises Але чи порушить це стандартне правило лазівки, вийшовши в Інтернет?
ASCIIThenANSI

5

Лист звичайний, 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

Haskell, 35 байт

main = putStrLn "\&ppuppPq([#fwS\&"

Що робить "\ &"?
Hjulle

4
@Hjulle Візьми до двох символів. (Це код втечі для порожнього рядка.)
user19057

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 раунд: Ruby, 75 байт

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

Я подумав, що зроблю це трохи складніше, почавши свою відповідь цитатою! >: D


3

Java, 100 байт

public class f{public static void main(String[] a){System.out.print("");}}//createdbyEMBLEMasdfghjkl



3

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

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

У нього є власний тип файлу ( .fsx), тому я майже впевнений, що він вважається мовою.


1
Ви забули 'w' від Scratch.
ASCIIThenANSI

Я думаю, це також не вистачає 'f' у відповіді на JavaScript у 50 байт.
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

Математика, 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

Ваша цитата була марною. Д:>

Редагувати: мені просто спало на думку, що я збираюсь за розміром файлу замість кількості символів, не впевнений, як байти рахувати: P

Редагувати 2: Додано коментар для заповнення байтів. Якщо ви перевіряєте кількість байтів на машині Windows, просто зробіть вигляд, що "REM BATCHS" - це лише "REM". : P


Я рахую байти з gedit; там сказано, що ваша відповідь - 63. Не хвилюйтесь; ви досить близькі, щоб заповнити прогалину коментарями.
EMBLEM

1
Ах, добре, я просто вставлю коментар.
bloo

3
@EMBLEM Це тому, що новий рядок Windows є \r\n. Там є 7 зайвих \rс.
jimmy23013


2

2 раунд, > <>, 45 bytes

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

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

Тепер рядок містить обидва, "і 'тому відповіді не можуть просто оточити їх жодним чином (саме так я уникнув будь-яких втеч).


2

2 раунд, Гольфскрипт, 35 байт

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

Без байтів Починаємо з цитати знову!


7-bit ASCII won't work here, it only creates 28 bytes and includes an extra NUL
LegionMammal978

Someone cleverer than I will have to do it.. maybe there's some language encoded in 6 bits which can be run to produce the proper output..
Claudiu

No, 6 bits would create 24 bytes, but we need 30.
LegionMammal978

@LegionMammal978: Right, 24 bytes, then 8 six-bit instructions to print them or do whatever
Claudiu

1
You're missing the apostrophe from 2 answers back
14mRh4X0r


1

Round 2, C#, 95 bytes

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

How about marking this "Round 2"?
Claudiu

1

Round 2, F# script, 55 bytes

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

See my previous F# script anwer for why I think it is a valid language.



1

Round 2, Javascript, 60 bytes

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

I think that your __ would fall under unnecessary variables. Try changing p to a two-letter name and make the string double-quoted to add a backslash for the printed quote. That should compensate for the 3 chars you lost from removing the __,.
LegionMammal978

1
They didn't say not to use them. They said to use at most ten bytes of them.
SuperJedi224

It meant that you can use necessary variables of up to 10 bytes, but you can't use unnecessary variables altogether.
LegionMammal978

@Rainbolt You're interpreting it as "You can't use more than 10 bytes of (comments), (unnecessary variables), (filling the program with whitespace), or (variable names) longer than 10 bytes", but because of the second reference, I see it as "You can't use (more than 10 bytes of comments), (unnecessary variables), (filling the program with whitespace), or (variable names longer than 10 bytes)".
LegionMammal978

I've fixed the ambiguity. In the question, var __ is disallowed (not being used in the rest of the program), but renaming p would be acceptable.
ASCIIThenANSI

1

Round 2: Javascript, 90 bytes

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

How about marking this "Round 2"?
Claudiu

The __, would fall under unnecessary variables.
LegionMammal978
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.