Подорож назад у Quine


12

Завдання тут проста, і зовсім не стосується підрахунку байтів. Ваше завдання - вивести перші 50 символів вихідного коду попередньої квінки, з'єднані з першими вашими 50 символами, починаючи з 50 символів, які я розмістив нижче:

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY

Отже, давайте, наприклад, тут, якщо ви відповідали в 05AB1E, рішенням просто вивести перші 50 байтів було б:

ži50£

Що означатиме, що вам потрібно буде вивести:

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYži50£

Якщо ваша програма коротша, просто використовуйте перші x < 50символи. Якщо ваша програма довша, об'єднайте лише перші 50 символів, закінчуючи 50-й символ. Наступному користувачеві доведеться вивести перші 50 символів вашої королеви, об'єднаної з власним кодом.

Ваш код може бути будь-якого розміру, але ви повинні виводити лише перші 50 символів коду, з'єднаного в кінець перших 50 байтів коду попередньої відповіді.


Обмеження:

Тут використовується визначення належної квіни та, крім цього, наступні речі:

  • Коментарі заборонені, повністю.
  • ЗАПЛАТИТИ УВАГУ НА ЦІЙ РОЗДІЛ, МОЖЕТЕ ДОБРИВАТИ, ЯКЩО ЗНАЧЕННЯ АБОЗИВНІ ЛОФОЛИ

Як опублікувати ланцюговий відповідь:

  1. Опублікувати заповнювач:
    • Вкажіть свій номер відповіді та мову, якою ви користуєтесь.
  2. Сортуйте за датою, якщо ви помітили, що хтось ще розмістив перед собою заповнювач на 1 мілісекунд:
    • Видаліть свою, чекайте наступної можливості, вибачте.
  3. Якщо ви закріпили наступне місце, ЗАБУДАЙТЕ ВІДПОВІДЬ ЗА 6 годин :
    • Якщо ви не можете відповісти, видаліть зарезервоване місце.
  4. ЯКЩО простір зависло більше 6 годин.
    • Голосуйте, щоб видалити зарезервований простір, я його оброблю.

Формат вашої публікації:

#[Answer #]:[Character Count] Characters, [Language Used]

{TIO MARKDOWN}

{LINE_SEPARATOR="---"}

{ADDITIONAL EXPLANATION OR INFORMATION}

Деякі конкретні нотатки (важливі для полегшення конкуренції):

  • Якщо особа перед вами включила у свій джерело нові рядки або символи, що не належать до ASCII, ви можете їх СТРІПИТИ. Це означає, що x="a\nb"стає ab, куди x[0]=a;x[1]=b;.
    • Ви повинні вказати мутацію, яку застосували до попереднього джерела.
  • Усі символи зараховуються як один символ, незважаючи на кодові сторінки або кодування мови. Будь ласка, не використовуйте кількість байтів, використовуйте підрахунок символів.

Прийнята відповідь буде 50thвідповіддю, просто тому, що; Я маю на увазі, це SE після.


Чому коментарі заборонені? Крім того, замість перевизначення байтів для символів, чому б не просто використовувати символи?
CalculatorFeline

@CalculatorFeline Я думаю, що ви можете зробити досить кульгаві та нецікаві лазівки, використовуючи коментарі, але це тільки я. Зарезервуйте перше місце і доведіть мене неправильно з коментарем, і я скасую заборону.
Чарівна восьминога урна

5
Зв'язаний метапост, що визначає належні лайки, не згадує про відсутність неіснуючого коду.
Ørjan Johansen

1
Як ви визначаєте коментар? Коментар - не дуже чітко визначений термін.
Ad Hoc Garf Hunter

1
Ви також, здається, обмінюєтесь символом та байтом термінів, що трохи заплутано. Я не дуже впевнений, чи це перші 50 символів або байт.
Ad Hoc Hunter Hunter

Відповіді:


7

1: 96 Персонажі, Хаскелл

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY:z=['`'..'z']++'A':['C'..'Y']
main=putStr$z++z

Спробуйте в Інтернеті!


Я почувався дурним, і не бачив нічого, що забороняв перший запис, починаючи з тих самих 50 символів, що і початковий рядок.

  • ['`'..'z']++'A':['C'..'Y']це вираз, що оцінює рядок цих символів, із попередньою `формою.
  • Результат узгоджений за малюнком, що робить змінну abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYрівною '`'та z50 символів.
  • main=putStr$z+z то робить фактичний вихід.

Мені подобається, як цей виклик розпочався з a-zA-Z, і тепер це вже не алфавіт. Гарний дзвінок на 1-й програмі.
Чарівний восьминога Урна

5

5:76 символів, Emojicode

🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzACD🔤😀🍪a🔤🏁🍇🍦a❌🔤🔤🔪a 0 45🍪🍉

Спробуйте в Інтернеті!


Пояснення:

🏁🍇		👴 start
  🍦 a 🔤...🔤	👴 define variable a as that string
  😀    	👴 print:
    🍪		👴 combine those strings:
      a		👴 a, and:
      🔤🏁🍇🍦a❌🔤🔤	👴 string literal. the ❌🔤 works like \"
      🔪a 0 45	👴 between indexes 0 and 45 of a
    🍪
🍉		👴 end

1
Алфавіт повільно зникає: О.
Magic Octopus Urn

Підказка щодо форматування: Використовуйте, <pre><code>а </code></pre>потім ви можете використовувати &#9;для вкладок, які вирівнюють за призначенням навіть із символами змінної ширини, як емоді. До речі, я думав над тим, як зробити королеву в Емоджікоде, а потім прокрутився вниз ...
NieDzejkob

@NieDzejkob хороша ідея, дякую.
betseg

@betseg це трохи відключено для мене в декількох місцях, але все-таки читабельніше. Радий, що вам сподобалось
NieDzejkob

@NieDzejkob кілька? з моїм шрифтом виключена лише команда рядкового літера, тому що це довго, де ще на вашому кінці?
betseg

4

2: 119 Персонажі, Javascript

alert(eval(c="'abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY'+`alert(eval(c=${JSON.stringify(c).substr(0,37)}`"))

Спробуйте в Інтернеті (використовує console.logзамість того, alertщоб виводити)

Виходячи з цього JS quine.

Стара версія (читає вихідний код):

f=_=>`abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYf=${(f+"").substr(0,48)}`;alert(f())

Виходячи з цього JS quine


Це не належна квітина, оскільки функція посилається на себе.
Кудлатий

@Shaggy Я додав дійсний
SuperStormer

1
@Shaggy Самореференційні функції дійсні за нашим визначенням.
Атако


2

3:56 Персонажі, SOGL

"alert(eval(c="'abcdefghijklmnopqrstuvwxyzACDEFGHIJ”1#Οj

Спробуйте тут!

Пояснення:

"...”      push the first 50 bytes of the previous answer
     1#Ο   wrap a quote around with that
        j  take the last letter off, as my answer has one more byte for the starting quote.

Відповідь Javascript містила в собі цитату, тому мені довелося додати стартову цитату, але оскільки це не код-гольф, це не має значення.



2

7: 137 символів, Java 8

v->{String t="⛽as=:'\"alert(eval(c=\"''abcdefghijklmnopqrstuvwxyzA";return t+("v->{String t=\""+t.replace("\"","\\\"")).substring(0,50);}

Спробуйте в Інтернеті.

Пояснення:

v->{        // Method with empty unused parameter and String return-type
  String t="⛽as=:'\"alert(eval(c=\"''abcdefghijklmnopqrstuvwxyzA";
            //  String containing the first 50 characters of the previous answer
  return t  //  Return those first 50 characters
   +"v->{String t=\""+t.replace("\"","\\\"")).substring(0,50);}
            //  Concatted with the first 50 characters of my answer
            //  with correct escape-slashes

Ага! Я подумав, що Емоджі назавжди вбив цей виклик. Хороший.
Чарівний восьминога Урна

@MagicOctopusUrn Я лише зараз помічаю ваше правило про те, " Якщо людина, перед вами, включила у свій джерело нові рядки або символи, що не належать до ASCII, ви можете викреслити їх". Для моєї відповіді це не має значення ні в якому разі, оскільки ми все одно рахуємо символи замість байтів.
Kevin Cruijssen

Це і справа не в кількості персонажів чесно, і так, я забув про це правило (до того ж забув про виклик взагалі).
Чарівний восьминога Урна

Чесно кажучи, подумайте про це, це насправді зовсім не справжній виклик?
Чарівний восьминога Урна

@MagicOctopusUrn Це якось є. Ви в основному отримуєте перші 50 символів своєї квінти. У Java лінійки зазвичай утворюються шляхом розміщення неформатованого вихідного коду в String, а потім правильно відформатувати / уникнути подвійних лапок і косої риски. Однак у базової функції Quine lambda в Java 8 вже є 88 байт ( Спробуйте в Інтернеті ), тому в Java ця проблема стає набагато коротшою, не використовуючи повну quine. Я можу уявити, що quine - найкращий підхід у більшості мов.
Кевін Круїссен

1

6: 70 символів, Emoji

⛽as=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzAC🚘👥💬⛽💬🔀👫💬0💬📥💬-1💬📥✂👫➡

Спробуйте в Інтернеті!

Здається, неможливо зробити так, щоб він не виводив зворотний новий рядок. Якщо це не в порядку, я видалю відповідь.

Пояснення:

⛽ ... 🚘	String literal
👥		Duplicate
💬⛽💬		Push ⛽ as a string
🔀		Swap the top two strings. Stack: [long literal] "⛽" [long literal]
👫		Concatenate.
💬0💬📥💬-1💬📥✂	Remove the last character
👫		Concatenate.
➡		Print.

Чи не повинен бути ⛽🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwx🚘👥💬⛽💬🔀👫💬0💬📥💬-1💬📥✂👫➡натомість? Відповідь Emojicode betseg починається не з, as=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzACа 🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxзамість цього.
Kevin Cruijssen

@KevinCruijssenIf the person before you has included newlines or non-ASCII characters in their source, you may STRIP them.
NieDzejkob

Ага, я пропустив це правило .. У такому випадку я оновлю свою відповідь.
Кевін Кройсейсен

Чому з цікавості ви їх зняли? Щоб полегшити майбутні відповіді? Оскільки ваш код ідеально працює, не знімаючи емоцій попередньої відповіді: Спробуйте його тут .
Kevin Cruijssen

@KevinCruijssen Це було півроку тому. Я не пам'ятаю.
NieDzejkob

1

12: 202 символи, Рубі

puts "21ipdgmtwkkke7ynvzpcnlzt7kl".to_i(36).to_s(7).gsub('0','>').gsub('1','+').gsub('2','-').gsub('3','<').gsub('4','[').gsub('5','.').gsub('6',']')+'puts "21ipdgmtwkkke7ynvzpcnlzt7kl".to_i(36).to_s(7'

Спробуйте в Інтернеті!


Кодує перші п’ятдесят символів попередньої відповіді в базовій сьомій

  • 0:>
  • 1: +
  • 2: -
  • 3: <
  • 4: [
  • 5:.
  • 6:]

Потім перетворює його в базу 36, щоб отримати "21ipdgmtwkkke7ynvzpcnlzt7kl"


0

9: 55 символів, желе

“"v->{String t=`"as=:'\`"alert(eval(c=\`"''abcdefg”;”“;

Спробуйте в Інтернеті!


Я видалив символ, який не є ASCII, з виводу, оскільки це дозволено, і Jelly його ігнорував.

Пояснення

Це починається з прямого рядка перших 50 символів (мінус ) попередньої відповіді, потім додається до нього символ, після ;”“чого додається початковий буквальний рядок до кінця ще раз із завершальним ;. Оскільки символу було видалено, перші 50 символів мого вихідного коду - це 49 із попередньої відповіді з передньою, що дозволяє цій програмі бути такою короткою. (Так, я розумію, що це не але чому б не гольф, якщо можете?)


0

10: 116 Персонажі, Пітон 3

print('''“"v->{String t=`"as=:'\`"alert(eval(c=\`"''abcdefgprint(\'\'\'“"v->{String t=`"as=:'\`"alert(eval(c=\`"''')

Просто друкується рядок, що складається з перших 50 символів відповіді 9, а потім перших 50 символів власного джерела. Не потрібна розумна хитрість, тому що униклі лапки ( \'\'\') з'являються після 50-го символу, і тому їх не потрібно відтворювати у висновку.

Цей метод працює практично будь-якою мовою - вам просто доведеться уникати будь-яких символів цитат, які відображаються в попередній відповіді. Відповідно, я не думаю, що в цьому виклику є багато проблем.


0

11: 723 Персонажі, Brainf ***

+[------->++<]>++.++.---------.+++++.++++++.+[--->+<]>+.-...-----.[----->++<]>++.--[++>---<]>-.---[-->+++<]>-.[->++<]>-.[--->++<]>+.[--->+<]>+++.--.---------.+++++.-------.-[--->+<]>--.---[->++++<]>.[-->+<]>+++.+++[-->+++<]>.[->+++<]>++.+[--->+<]>.--[--->+<]>--.+[-->+<]>+++.---.-[--->++<]>+.+[------>+<]>.++++.[->+++<]>++.+[--->+<]>.+++++++++++.-------.+++++++++++++.++.+[--->+<]>+.+[--->+<]>++.[--->+<]>-.[->+++<]>-.+++++++++++.[--->+<]>++++.+[--->+<]>.[--->++<]>-----.+[-->+++<]>-.++++.[->+++<]>++.[[-]<]++[------>+<]>.++[->++<]>+.-[-->+<]>.......---[-->+++<]>-.+[--->++<]>+..+[----->+<]>.++[-->+++<]>.[--->++<]>.+[--->++<]>+..+++.---..+++.-.........+.---.....+++.---......+++.---.++[->++<]>+.-[-->+<]>...---[-->+++<]>-.

Смугастий недрукований персонаж. Майже повністю генерується Brainfuck Text Generator . Можливо, так само лінуватися, правда?

ТІО

Print [print('''"v->{String t=`"as=:'\`"alert(eval(c=\`"] +[------->++<]>++.++.---------.+++++.++++++.+[--->+<]>+.-...-----------.++++++.[----->++<]>++.--[++>---<]>-.---[-->+++<]>-.[->++<]>-.[--->++<]>+.[--->+<]>+++.--.---------.+++++.-------.-[--->+<]>--.---[->++++<]>.[-->+<]>+++.+++[-->+++<]>.[->+++<]>++.+[--->+<]>.--[--->+<]>--.+[-->+<]>+++.---.-[--->++<]>+.+[------>+<]>.++++.[->+++<]>++.+[--->+<]>.+++++++++++.-------.+++++++++++++.++.+[--->+<]>+.+[--->+<]>++.[--->+<]>-.[->+++<]>-.+++++++++++.[--->+<]>++++.+[--->+<]>.[--->++<]>-----.+[-->+++<]>-.++++.[->+++<]>++.
Clear all cells to left until first empty cell [[-]<]
Print [+[------->++<]>++.++.---------.+++++.++++++.+[--->] ++[------>+<]>.++[->++<]>+.-[-->+<]>.......---[-->+++<]>-.+[--->++<]>+..+[----->+<]>.++[-->+++<]>.[--->++<]>.+[--->++<]>+..+++.---..+++.-.........+.---.....+++.---......+++.---.++[->++<]>+.-[-->+<]>...---[-->+++<]>-.

Ви, здається, друкуєте від 2-го до 51-го символів вашої відповіді Brainfuck замість перших 50 (пропускається перший >): Спробуйте це в Інтернеті. Крім того, ви можете відмовитися від персонажа, оскільки ваша відповідь Brainfuck наразі виводить його як недрукований ``.
Kevin Cruijssen

На >початку, здається, це було випадковим доповненням, і я кинув персонажа. Виходячи з інших відповідей, я думаю, що це означає, що мені потрібно надрукувати лише перші 49 символів.
Panda0nEarth
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.