Це зупиниться? (Копи)


94

Це нитка копів. Нитка грабіжників тут .

Ваше завдання полягає в тому, щоб зробити програму, яка працює вічно, не зупиняючи 1 , якщо тільки вона не отримує конкретного вводу або вводу 2 . Якщо він отримує цей вхід, він повинен припинитись протягом обмеженої кількості часу 3 . Це , тому найкоротша відповідь, яку грабіжник не зламав протягом тижня після публікації, виграє. Після того, як минув тиждень, будь-ласка, позначте свою відповідь безпечною і покажіть вкладення, що зупиняється (в а > ! spoiler quote). Якщо грабіжник зламає вашу заяву, будь-ласка, позначте її як тріщину і покажіть введення, що зупиняється (в а > ! spoiler quote).

Подані матеріали бажано виконувати в режимі TIO . Подані в TIO матеріали не підлягають виконанню або складаються, але, будь ласка, додайте інструкції щодо їх завантаження / запуску.

Будь ласка, зробіть свої дані детермінованими та рівномірними для всіх циклів. Докладніше див. У цьому мета-публікації .

Будь ласка, не «застосовуйте RSA» або щось середнє для грабіжників. Використовуйте незрозумілі мови та функції, не нудне шифрування та хешування. Я не можу дотримуватись цього за допомогою правил, але ви можете очікувати проливних скорочень, якщо все, що ви робите, - це sha(input) === "abcd1234".


1 Якщо припустити, що комп'ютер не закривається, не зламається, не поглинеться сонцем, не перегріється у тепловій загибелі Всесвіту або потрапить у тайм-аут TIO 60-х років.

2 Програма повинна зупинитися принаймні на одному вході. Поки він назавжди зациклюється на одному вході і зупиняється на іншому, він працює.

3 Це має бути <60 секунд, щоб код можна було перевірити на TIO.


Шукаєте подані невдалі матеріали?

fetch("https://api.stackexchange.com/2.2/questions/135363/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>


1
@LuisMendo припускаючи, що нескінченна пам'ять чудово
програміст5000

1
@ programmer5000 Дякую за уточнення. Ви повинні включити все це в текст виклику. Не очікується, що відповіді прочитають усі коментарі
Луїс Мендо

6
Чи можемо ми обмежити вхід, скажімо, цілим числом? Грабіжник може передати якийсь неправильний або неправильний вхід, щоб негайно припинити програму. Мені або доведеться робити ретельну перевірку введення чи використовувати мову, яка може сприймати довільні помилки.
xnor

3
@xnor Я думаю, що вам належить зробити перевірку вводу.
Стівен

1
@StepHen Це працює, якщо неправильно введений вхід все ще може розбиратися інтерпретатором. Якщо я ввожу незаконний рядок, Rпомилки негайно, навіть не ввівши функцію, щоб зламати. Я заперечую, що це не вважається фактично припиненим функцією.
JAD

Відповіді:


55

Malbolge, 128 байт, розламаний KBRON111

(=&r:#o=~l4jz7g5vttbrpp^nllZjhhVfddRb`O;:('JYX#VV~jS{Ql>jMKK9IGcFaD_X]\[ZYXWVsN6L4J\[kYEhVBeScba%_M]]~IYG3Eyx5432+rpp-n+l)j'h%B0

Веселіться!

(Так, я навчився Малболге саме для цього. Так, пройшов безглуздо довгий час, щоб нарешті почати працювати. І так, це цілком вартувало цього.)

Загорнутий, так що ви можете побачити його в повній, е-е, "славі":

(=&r:#o=~l4jz7g5vttbrpp^nllZjhhV
fddRb`O;:('JYX#VV~jS{Ql>jMKK9IGc
FaD_X]\[ZYXWVsN6L4J\[kYEhVBeScba
%_M]]~IYG3Eyx5432+rpp-n+l)j'h%B0

Я використовував цей перекладач, щоб перевірити його; Я не впевнений, чи це має значення, але я подумав, що зазначу про всяк випадок.


2
Ось перекладач TIO використовує btw.
Денніс

2
ой, "Повеселитися" - гарне доповнення
Євгеній Новиков

26
Ти дурень. Мальбодж - середній.
Draco18s

1
Мене штампують ... Найдальший у мене: з 13 входів до зупинки, лише перший і третій мають будь-який вплив. Після ретельної зворотної інженерії, я виявив , що перший вхід повинен бути 6і третім є одним з чотирьох: !, #, /і -. Але, здається, комбінація не зупиняє. Я викладаю це, можливо, хтось розумніший знайде рішення. Якщо хто хоче, я завтра напишу, як я потрапив до цих даних. EDIT: Тепер, коли я замислююся над цим, у моїй програмі, яку я написав для зворотної інженерії, це може бути помилка, і перший вхід може бути чимось іншим, ніж 6. Третій персонаж все ще стоїть.
Grzegorz Puławski


23

JavaScript (ES6), 17 байт, тріщини

x=>{for(;x==x;);}

У TIO, оскільки я не знаю, як зробити читання Node.js на TIO, просто дотримуйтесь вхід у виклик функції. Це очевидно для тих, хто це знає, а не для тих, хто цього не знає.

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

Відповідь:

Відповідь NaN, так як в JavaScript, NaN != NaN.


2
Тріснув . Приємне використання мовної дивацтва!
програміст5000

3
Б'юсь об заклад :) Мені подобається, як ви були настільки впевнені, що я вибрав те, що ви відредагували це для мене: P
Стівен

12
NaN == NaNfalse у багатьох мовах, окрім JavaScript. Я б не назвав це "диваком мови".
Наюкі

9
Я вважаю, NaN != NaNє особливістю чисел з плаваючою комою
підземний

1
@undergroundmonorail: Це правильно. Відношення між двома номерами IEEE з плаваючою точкою може бути вище, рівним, внизу або не упорядкованим . Результат порівняння є не упорядкованим, якщо один або обидва операнди є будь-яким видом NaN. (Двоєчна плаваюча точка IEEE 754 має багато бітових шаблонів NaN : все, що стосується експонента all-one та ненульової мантіси - це NaN, незалежно від біта знака. Існують деякі правила, за якими переходить у "корисний вантаж" NaN, і для розмноження , що з допомогою таких операцій , як +або max(), але більшість людей не хвилює: P)
Пітер Кордес

14

JS (ES6), 67 байт ( тріщини )

(x,y)=>{while(x!==y||Object.is(x, y)||!isFinite(x)||!isFinite(y));}

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

Я вдячний за будь-який відгук, це одне з моїх перших дописів

(+0, -0) Так, js має мінус 0



Тепер я розумію , що мені не потрібно , щоб перевірити xі yкінцеві, але я не буду редагувати , так як він вже був зламаний. Могло бути 38 байт
Хуан Тоніна

10

Python 3.4, (40 байт) Тріщини

def f(x):
  while(x==x or not x==x):pass

4
Ласкаво просимо до PPCG!
Мартін Ендер


12
Я відчуваю, що ви повинні зберігати x==xзмінну, яку називають to_be, щоб ви могли зробити посилання на Гамлета.
Пітер Кордес

@PeterCordes Але це зробило б відповідь
нерозбірливою

@ppperry: так, я помітив це, коли подивився на тріщину. : P
Пітер Кордес

9

Javascript (НЕ node.js)

x=>{while(x+"h");}

Бажане подання не використовує кидок.

Підказка про бажану тріщину:

Бажане подання не перезаписується .toString()і не використовується Set().

Бажана тріщина:

Object.create(null)


Правильне тріщинне посилання (не моє, просто посилання на відповідь Дома Хастінга)
Stephen

Зламаний №2 Зламаний без використання throw(все-таки видає помилку, хоча)
Грант Девіс,

Знову тріснув без використання throw, я вірю справді цього разу, оскільки Грант Девіс не працював для мене. Ще TypeErrorс.
Хаумед Рахмані

2
Ви можете зробити x=>{try{for(;x+"h";)}catch(e){for(;;)}}так, що будь-які помилки призведуть до нескінченного циклу, тому відсутня помилка функції прототипу (або будь-які помилки) призведе до нескінченного циклу.
Грант Девіс

1
Цей працює лише у браузері, не впевнений, чому це робить: D
jadkik94

8

C (gcc) , 75 байтів тріщинами

#include<stdio.h>
int main(){char c[9];while(1){scanf("%8s",c);printf(c);}}

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

Я ніколи раніше не публікував у поліцейських-грабіжників. Сподіваємось, це не надто очевидно.

Рішення:

Введення "% s" робить цей сегмент за замовчуванням. Є кілька інших, які можна використовувати; всі вони є printfспецифікаторами типу "% n".
Це класична printfвразливість. Простіше кажучи, рядок формату надходить прямо з введення користувача, тому будь-які printfспецифікатори проходять через небезпеку.



8

JavaScript (в браузері), 79 байт Тріщини

x=>{try{for(;x||x!=null||x!=void 0||x===null||x===void 0;);}catch(e){for(;;);}}

Ви повинні запустити його в недавньому веб-переглядачі (як-от остання Firefox ESR, остання Firefox, остання Chromium). Запуск у старих браузерах (наприклад, Netscape 2, IE 4) не враховується.

Примітка: Зупинений браузером через тайм-аут тут не рахується.

Завжди будьте обережні, щоб не зламати браузер під час тестування цих кодів та радісно грабуючи ^ _ ^

document.all


Чи можу я використовувати setTimeout?
Евгеній Новиков

@ ЕвгенийНовиков Ви можете викликати цю функцію будь-яким параметром. Але, здається, використання setTimeoutяк параметра не працює.
tsh

ідея - зробити var key=(()=>{setTimeout(args);return null})()і тодіcrackme(key)
Евгеній Новиков

здається, що обман
Євгеній Новиков



6

Лушпиння , 5 байтів тріщинами

↑ε∞←ø

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

Трохи пояснень, оскільки ця мова ще досить нова:

←øотримує перший елемент порожнього списку: він повертає значення, яке може припускати будь-який тип, будь то конкретний тип або функція, яка потім буде застосована до вводу. створює нескінченний список, складений з копій попереднього результату (що в більшості випадків означатиме список нескінченних нулів). ↑εбере елементи з цього списку до тих пір, поки вони "малі", тобто їх абсолютне значення ≤1; у нескінченному списку нулів це ніколи не зупиниться.


@Veedrac, що насправді було моїм призначеним рішенням
Лев,

Ну, значить, тріснув!
Ведрак


5

Рубі , 31 байт ( тріщинував Ерік Думініл )

0until(3.send(gets)==5rescue p)

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

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



Гарний один до речі! Жоден метод 3.methodsповернення 5або виходу з циклу.
Ерік Думініл

Чорт! Я розкрив рішення і самостійно, але я був занадто зосереджений на тому, щоб зробити його рівним, 5щоб думати, що правильна відповідь передбачає функцію, яку він робив ...
Value Ink


5

Bash 4.2, 14 байт ( тріщини )

Спробуємо це ще раз.

let ${1,,}
yes

Це не працює в TIO, який використовує Bash 4.3. Введення здійснюється через аргументи командного рядка.

В Linux та з встановленим gcc Bash 4.2.53 можна завантажити та скласти наступним чином.

curl -sSL https://ftp.gnu.org/gnu/bash/bash-4.2.53.tar.gz | tar xz
cd bash-4.2.53
./configure
make -j

Тріснув. В основному закінчилося читання джерела.
Ведрак

4

Сітківка , 78 байтів ( тріщинами ) ( тріщинами із задуманим розчином )

^
1
+`^1(1+)
$1¶$&
s`(?<=^|¶)(1+)(?=¶)(?!.*¶\1+$)

¶(?!1+$)

^(1+)¶\1$

+`1
11

Було досить весело писати, сподіваюсь, це весело тріснути

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

Тріснуло непромисловим розчином і наміченим розчином протягом хвилини один від одного. Один розмістив перший, один прокоментував перший.

Задумане рішення:

11111 або унарне представлення n-1, де n - будь-яке досконале число




Тож чия тріщина нараховується? (Я опублікував тріщину першим, але mbomb007 прокоментував перший)
Корови кракають

@Cowsquack обидва
програміст5000

4

Node.js, 23 байти ( тріщини )

var crackme =
i=>{while({[i]:NaN}){}}

Грант Девіс рішення

{__proto__:null}

Моє рішення

{"toString":process.exit}



@GrantDavis хороша робота) Ваше рішення працює і в браузері. Я думав оточити його пробним уловом, але відмовився від цієї ідеї, щоб зробити гарний код.
Евгеній Новиков

4

Java 8, 99 байт, тріщинами

s->{try{Integer i=Integer.parseInt(s),c=i+32767;i+=32767;for(;i!=c;);}catch(Throwable t){for(;;);}}

Це лямбда типу Consumer<String>.

Безголовки:

s -> {
    try {
        Integer i = Integer.parseInt(s), c = i + Short.MAX_VALUE;
        i += Short.MAX_VALUE;
        while (i != c) ;
    } catch (Throwable t) {
        while (true) ;
    }
}

Спробуйте в Інтернеті! (зауважте, що тестова програма вийде з ладу при порожньому вході, але сама лямбда не буде!) (також використовуйте "аргументи" не "введення" на TIO, оскільки тестова програма використовує аргументи, а не STDIN)

Запропонований відповідь:

-32767; Це працює, тому що у Java зберігається два цілих типи, intі Integer. Integerце предмет, який обгортає int. Крім того , Java зберігає кеш Integerз , що боксувати -127через 127. У !=оператор перевіряє ідентичність, так що через якийсь - то чи не-бокс і авто-бокс будь-яке число , xде x + 32767знаходиться в [-127, 127]буде в кінцевому підсумку той же Integerоб'єкт з кешу, і , таким чином , i != cбуде помилковим.



4

Bash 4.2, 10 байтів ( тріщини )

let $1
yes

Це не працює в TIO, який використовує Bash 4.3. Введення здійснюється через аргументи командного рядка.

В Linux та з встановленим gcc Bash 4.2.53 можна завантажити та скласти наступним чином.

curl -sSL https://ftp.gnu.org/gnu/bash/bash-4.2.53.tar.gz | tar xz
cd bash-4.2.53
./configure
make -j

1
Тріснув. Ви повели мене по колах, думаючи, що це пов’язано з раковинкою і пов'язує мене з виправленою версією: P. Розраховуйте ненавмисну ​​тріщину як дрібну помсту;).
Ведрак

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

3

Java: 1760 ( тріщини )

Я відчуваю, що це занадто мало для цього гольфу, тому я просто заплутав назви змінних і зробив це "безладним". Власне кажучи, це настільки значить, що я збираюся розміщувати підказки з часом, просто так, що я можу побачити, що це тріснуло.

Підказка 1: теоретично це нескінченно дійсні дані, але є той, який є найбільш "правильним"


public class Main {

	public static void main(String[] a) {
		try {
			while (a.length < 2) {
				int i = 0;
			}
			boolean invalid = 1 < 0;
			char l = '_';
			char h = '-';
			char[] DATATWO = a[0].toCharArray();
			char[] DATATOW = a[1].toCharArray();
			int length = DATATOW.length;
			if (DATATWO.length != length) {
				invalid = 1 > 0;
			}
			int transmissionStartIndex = 0;
			for (int i = 0; i < length; i++) {
				if (DATATWO[i] == l && DATATOW[i] == l) {
					transmissionStartIndex = i;
					break;
				}
			}
			int DATAONE = 0, reg = 0;
			boolean read = 1 < 0, full = 0 < 1;
			int bytes_read = 0;
			for (int i = transmissionStartIndex; i < length; i++) {
				if (DATATOW[i] == l && DATATOW[i + 1] == h) {
					bytes_read++;

					if (bytes_read == 8) {
						read = DATATWO[i] == h;
					} else if (bytes_read == 9) {
						invalid = (DATATWO[i] == h || invalid);
						System.out.println(invalid);
					} else if (bytes_read == 18) {
						System.out.println(invalid);
						invalid = (DATATWO[i] == h || invalid);
						if (invalid) {
							System.out.println("i36 " + DATATWO[i] + " " + h);
						}
						full = 1 > 0;
					} else if (bytes_read < 8) {
						DATAONE += (DATATWO[i] == h ? 1 : 0) << (7 - bytes_read);
					} else if (bytes_read < 18) {
						reg += (DATATWO[i] == h ? 1 : 0) << (8 - (bytes_read - 9));
					} else if (bytes_read > 18) {
						invalid = 1 > 0;
					}
					System.out.println(a[0]);
					System.out.println(new String(new char[i]).replace("\0", " ") + "|");
					System.out.println(a[1]);
				}
			}

			while (!(Integer.toHexString(DATAONE).equals("0x2b") && (read)
					&& Integer.toHexString(reg).equals("0xa6"))) {

				System.out.println(System.currentTimeMillis());
				try {
					Thread.sleep(1);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}

		} catch (Exception e) {
			while (true) {
			}
		}

	}
}

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


Два порожні аргументи, здається, спрацьовують
Okx

Також пам’ятайте, що додаєте посилання на tio? Я думаю, що все, що вам потрібно буде зробити, - це змінити головне на Main
Okx

1
Тріснув , крім помилки.
користувач3033745

Зламана - помилка відсутня для версії.
Okx

3

Braingolf , 18 байт Тріщини

1+[#£-0!e>:$_1>|]

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

Liiiitle трохи важче, ніж останній, я почну писати справжнє після цього

Відповідь - 163


Людина, це, мабуть, єдине вціліле уявлення атм. Примітка: iне працює.
Ерік Аутгольфер

Попередження: це фактично 19 байт ( £). І чому це не -1працює? Це хитро.
Ерік Аутгольфер

@EriktheOutgolfer Це 17 символів і 18 байт.
повністюлюдський

@totallyhuman Присягаю, що я прочитав "19 байт UTF-8, 18 символів" (користувацький сценарій увімкнено) ...
Ерік Атгольфер


3

JavaScript (ES7), 41 байт ( Hacked & Cracked )

Редагувати: виправлено, щоб запобігти зриву, якщо він взагалі не вводиться (спасибі @totallyhuman за те, що помітили)


Напевно, існує кілька рішень, але очікуване відносно просте.

(x=0)=>{for(;~x/x.length**3!=-2962963;);}

Задумане рішення:

"8e7" (число в науковій нотації передається як рядок)
Тому що: ~ "8e7" / "8e7" .length ** 3 = -80000001 / 3 ** 3 = -80000001/27 = -2962963


2
Жоден вклад не працює на цьому теж, але я не хочу турбувати його так, як таке ... Якщо тільки це не призначене рішення. : P
повністюлюдський

@totallyhuman Ну, це не призначене рішення. :-)
Арнольд


2
Оновлення: запропоновано рішення тривалістю 3 байти
Євгеній Новиков

3

Bash + Utils (розтрісканий Деннісом), 74 байти

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

cp /bin/tar .
env -i PATH=$PWD I=$? /bin/bash -r -c "$1"
while :;do :;done

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

Передбачувана тріщина

tar -cf --checkpoint=1 --checkpoint-action=exec="/bin/kill $I" .



@Dennis Nice! Я розмістив свою намічену тріщину, яка була трохи складнішою.
Сизіф

3

Математика, 36 26 байт ( тріщинами )

#0[#;$IterationLimit=∞]&

Дуже короткий цикл, #0[#;∞]який буде продовжувати працювати знову і знову, поки він не зламає ваше ядро ​​... (Це $IterationLimitпросто для того, щоб ви назавжди застрягли на більшості входів).

Спробуйте це на Wolfram Sandbox! - якщо ви застрягли в нескінченному циклі, ви можете зачекати, поки час вичерпається, або ви можете натиснути квадратну піктограму "скасувати оцінку" зліва від заголовка ноутбука(unnamed) .

ПРИМІТКА : ця функція змінює ваші $IterationLimitналаштування.




3

C #, 118 байт ( тріщини )

using System;_=>{while(1>0){try{if(Nullable.GetUnderlyingType(Type.GetType(Console.ReadLine()))!=null)break;}catch{}}}

Я не очікую, що це триватиме занадто довго, але це незручніше, ніж здається.

В основному, будь-яке повне ім’я класів Nullable працює, але це незручно з'ясувати, як це виглядає нижче:
System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
Простіший спосіб знайти цю рядок - це зробити typeof(int?).FullName.



3

C, 140 байт ( тріщини )

n,i;f(){float x,y,z;for(scanf("%d %d",&n,&z,x=y=0);~((int)x-(int)(1/sqrt(y*2)));x*=(1.5-y*x*x))y=(x=z)/2,i=n-((*(int*)&x)/2),x=*(float*)&i;}

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

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



3

JavaScript (ES7), 73 байти ( Зламано !)

q=>{r=(n,i=0)=>i>1e3?n:r(n*16807%(2**31-1),i+1);while(r(q)!=627804986){}}

Не потрібні рішення: груба сила. Бажана тріщина передбачає математику.

Зауважте, що існує багато рішень (4194304) через модуль.



3

мозговий ебать , 170 байт зламано!

>>,>,>,>,>,[-----------<-<+<--<--->>>>]<++<<+<++[----->+<]>[----------------->+++++++<]>[----->>+<<]>>[-<->]<[--->++++++<]>[--->+<]+>-[-----------------<+>]<[-->-<]>+[+-]

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


Ласкаво просимо на сайт! Ви можете зберегти 11 байт, видаливши з коду нові рядки.
Сріотчілізм О'Заїк

Я забув, це був код гольфу, дякую!
Джеррі


Дійсне рішення! Я вважаю, що їх досить багато. Для тих, хто вирішує / жорстоко примушує, призначений [az].
Джеррі

Для кожного 4 символу існує рівно 1 значення останнього символу, який робить програму зупиненою. Тому є 256 ^ 4 = 4294967296 рішень, припускаючи, що ви можете вступити nulв мозковий ебать. До речі, ви можете видалити два перших >зберегти 2 байти.
користувач202729

3

JavaScript ES6 (Node.js> = 6.0) , 326 байт (безпечно)

((v,e=require('events').EventEmitter.prototype,l=_=>{while(1);},P=Proxy,p=process)=>(p.kill=p.exit,e.listeners=new P(e.listeners,{apply:(t,c,a)=>a[0]=='exit'?[]:t.apply(c,a)}),e.removeAllListeners=new P(e.removeAllListeners,{apply:(t,c,a)=>a[0]=='exit'?c:t.apply(c,a)}),p.on('exit',l),i=>{try{v(i)}catch(o){}l()}))(s=>eval(s))

Набагато спрощений, ніж мій інший виклик , я більше не намагаюся придушити підхід до рішення, що врятувало мені багато байтів. На цей раз process.kill()не вийде.

"delete process._events.exit;process.exit()"

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


Вух! Хороша робота!
програміст5000

Схоже, ти переможець, хоча я очікував набагато коротший код hehe
Piyin

3

Швидкий 3, 14 байт ( тріщинами )

while !false{}

Щоб вирішити це, поставте свій код до або після цього твердження.

  • Ваше рішення повинно:
    • зберігайте цю заяву недоторканою, не змінюючи її код
    • насправді нехай ця заява працює
      • Просто прокоментуйте це, зателефонувавши fatalError()тощо, перш ніж це не враховується.
    • змінити поведінку цього твердження, щоб не допустити його назавжди циклічного циклу
  • Рішення не передбачає збоїв у програмі.

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

@ Yimin heh, розумний, але це не змінює семантику цього твердження, що я справді шукав, коли сказав, що «змінює поведінку цього твердження»
Олександр

Ви впевнені, що рішення працює? Перекладач кричить ambiguous semanticsна мене.
Даніель

@Dopapp - це те, що я думав, що станеться в моїй попередній спробі. Чомусь законно переосмислювати нові оператори інфіксації з типовими підписами того ж типу, що і ті, що вже існують, але спроба зробити те ж саме з одинарним оператором видає помилку двозначності компіляції. Це навмисно, і я впевнений, що у мене є робоче рішення
Олександр


2

cQuents , 2 bytes ( Cracked 1 ) ( Cracked 2 )

:A

Зауважте, що це швидко вплине на ліміт виходу 128 Кб на TIO, змусивши його зупинитися, але при локальному запуску він буде циклічно назавжди, за винятком входу, який його порушує. Виявити, що введення даних має бути досить простим. Поки ти цього не зробиш,:A продовжувати стирчати трикутний язик на тебе.

Зауважте також, що це має бути справедливимA але я порушив неявні режими минулої ночі. На старих версіях перекладачаA було б добре.

Тріщини:

Порожній вхід / новий рядок на вході - це дійсна тріщина. Однак, забороняючи, що, передаючи декілька входів (розділених пробілом) програмі, ви припините її (якщо ви дасте 2) або помилку (якщо ви дасте 3 і більше).

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


Тріснув? (Помилки з порожнім входом)
Луїс Мендо


@crackers так, це дійсна тріщина. Я дам свою заяву тому, хто знайде тріщину без порожнього вводу.
Стівен

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