Durur mu? (Polis)


94

Bu polislerin ipliği. Soyguncuların ipliği burada .

Buradaki zorluk, belirli bir giriş veya giriş 2 almazsa, 1'i durmadan çalıştıran bir program yapmaktır . Bu girişi alırsa, sınırlı bir süre 3 içinde sonlandırılmalıdır . Bu , bu yüzden bir hırsız tarafından yazılmayan en kısa cevap kazandıklarını belirttiler. Hafta geçtikten sonra, lütfen cevabınızı güvenli olarak işaretleyin ve durma girişini gösterin (a ). Bir hırsız, gönderinizi çatlatırsa, lütfen çatlamış olarak işaretleyin ve durma girişini gösterin (a ).> ! spoiler quote> ! spoiler quote

Öneriler üzerinde çalıştırılabilir ve kırılabilir olması tercih edilir TIO . TIO'da çalıştırılamaz veya kırılmaz gönderilere izin verilir, ancak lütfen bunları indirmek / çalıştırmak için talimatlar ekleyin.

Lütfen girişinizi deterministik yapın ve tüm çalıştırmalar boyunca tekdüze olun. Ayrıntılar için bu meta gönderiye bakın.

Lütfen, "RSA'yı uygulamayın" veya soyguncular için bir anlam ifade etmeyin. Sıkıcı şifreleme ve karma değil sıkıcı dilleri ve özellikleri kullanın. Bunu kurallarla uygulayamıyorum, ancak tek yapmanız gereken aldatıcı indirimler bekleyebilirsiniz sha(input) === "abcd1234".


1 Bilgisayarın kapanmadığını, kırılmayacağını, güneşe sarılmayacağını, evrenin ısı ölümünde fazla ısınmayacağını veya 60'ların TIO zaman aşımına uğradığını varsaymak.

2 Program en az bir giriş üzerinde durmalıdır . Bir girişte sonsuza dek döngüdüğü ve diğerinde durduğu sürece çalışır.

3 Bu, <60 saniye olmalıdır, böylece kod TIO'da test edilebilir.


Uncracked gönderimler mi arıyorsunuz?

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 sonsuz hafızanın iyi olduğunu varsayarak
programmer5000

1
@ programmer5000 Aydınlattığınız için teşekkürler. Bütün bunları meydan okuma metnine dahil etmelisiniz. Cevap verenlerin tüm yorumları okuması bekleniyor
Luis Mendo

6
Girişi bir tamsayı olarak sınırlayabilir miyiz? Bir hırsız, programı derhal sonlandırmak için hatalı biçimlendirilmiş veya yanlış yazılmış bir girdiden geçebilir. Çok fazla dikkatli girdi doğrulaması yapmalı ya da rastgele hatalar yakalayabilen bir dil kullanmalıydım.
xnor

3
@xnor Giriş kontrolünü yapmanız gerektiğini düşünüyorum.
Stephen

1
@StepHen Hatalı biçimlendirilmiş girdi hala tercüman tarafından ayrıştırılabilirse çalışır. Yasadışı bir dize girersem, Rhemen çatlamak için fonksiyona girmeden bile hatalar. Bunun, fonksiyonu gerçekten sonlandırma olarak sayılmadığını iddia ediyorum.
JAD

Yanıtlar:


55

Malbolge, 128 bayt, KBRON111 tarafından çatlak

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

İyi eğlenceler!

(Evet, Malbolge'ı sadece bunun için öğrendim. Evet, sonunda çalışmaya başlaması çok uzun zaman aldı. Ve evet, tamamen değdi.)

Sarılmış, böylece tam olarak, "zafer", tam olarak görebilirsiniz:

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

Kullandığım bu tercüman bunu test etmek; Önemli olup olmadığından emin değilim, ama tam olarak belirteceğimi düşündüm.


2
Bu da TIO'nun btw kullandığı tercüman.
Dennis,

2
oh, "Eğlenin" iyi bir
eklemedir

26
Sen bir pisliksin. Malbolge ortalamadır.
Draco18

1
Damgalıyım ... En son aldığım: durmadan önce 13 girişten, yalnızca üçte birinin etkisi var. Tam ters mühendislik sonra, birinci giriş olarak sahip olduğu bulunmuştur 6ve üçüncü dört biridir: !, #, /ve -. Ancak kombinasyon duruşu düzeltecek gibi görünmüyor. Buraya koydum, belki daha akıllı biri bir çözüm bulur. İsteyen olursa, yarın bu girdilere nasıl ulaştığımı göndereceğim. EDIT: Şimdi düşünüyorum, programımı tersine mühendislik yapmak için yazdığım programda bir hata olabilir ve ilk girişten başka bir şey olabilir 6. Üçüncü karakter hala duruyor.
Grzegorz Puławski

7
Çatlak tarafından KBRON111 .
Veedrac

23

JavaScript (ES6), 17 bayt, Kırık

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

TIO'da, TIO'da Node.js okuma satırını nasıl yapacağımı bilmediğimden, girdiyi işlev çağrısına yapıştırın. Bu, onu bilen herkes için değil, kimsenin bilmediği açıktır.

Çevrimiçi deneyin!

Cevap:

Cevap, NaNJavaScript’ten beri NaN != NaN.


2
Kırık . Bir dil tuhaflığının güzel kullanımı!
programmer5000

3
Bahse girerim :) Kendinden o kadar emin olmanı seviyorum, seçtiğim şey bu benim için düzenledi: P
Stephen

12
NaN == NaNJavaScript dışındaki birçok dilde yanlış. Ben buna "dil tuhaflığı" demezdim.
Nayuki

9
NaN != NaNkayan nokta sayısının bir özelliği olduğuna inanıyorum
undergroundmonorail

1
@ undergroundmonorail: Bu doğru. İki IEEE kayan nokta sayısı arasındaki ilişki yukarıda, eşit, altında veya sırasız olabilir . İşlenenlerden biri veya her ikisi de bir NaN ise karşılaştırma sonucu sıralanmaz. (IEEE 754 ikili kayan nokta birçok NaN bit desenine sahiptir: tabanda all-olanlar ve sıfır olmayan mantisleri olan herhangi bir şey, işaret bitinden bağımsız olarak bir NaN'dir. NaN, ve bunun gibi +veya max()bunlarla yapılan işlemlerle bunu yaymak için ama çoğu insan umursamıyor: P)
Peter Cordes

14

JS (ES6), 67 bayt ( Kırık )

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

Ben düşünüyorum ben görmedim kolay bir çözüm olabilir, ben pisliği yoktu.

Herhangi bir geri bildirim için teşekkür ederim, bu benim ilk gönderilerimden biri.

(+0, -0) Evet, js negatif 0 yaptı



Şimdi anlıyorum xve ysonlu olup olmadığımı kontrol etmeme gerek yok , ama zaten kırıldığından düzenleme yapmayacağım. 38 byte olabilirdi
Juan Tonina


9

Javascript (NOT node.js)

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

İstenilen gönderi atma kullanmaz.

İstenilen çatlak için ipucu:

İstenen gönderim üzerine yazmaz .toString()veya kullanmaz Set().

İstenilen çatlak:

Object.create(null)


Doğru çatlak bağlantısı (benim değil, sadece Dom Hasting'in cevabına bir bağlantı)
Stephen

Cracked # 2 Kullanmadan Cracked throw(yine de bir hata veriyor)
Grant Davis,

Kullanmadan tekrar çatladıthrow , Grant Davis'in işe yaramadığı için bu sefer gerçek olduğuna inanıyorum. Yine TypeErrorbu.
Haumed Rahmani,

2
x=>{try{for(;x+"h";)}catch(e){for(;;)}}Herhangi bir hatanın sonsuz bir döngüye neden olacağı şekilde yapabilirsiniz , böylece eksik prototip işlevi hataları (veya herhangi bir hata) sonsuz bir döngüye neden olur.
Grant Davis,

1
Bu sadece tarayıcıda çalışıyor, neden olsa da çalışmadığından emin değil: D
jadkik94

8

C (gcc) , 75 bayt Kırık

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

Çevrimiçi deneyin!

Daha önce hiç bir polis soyguncusuna göndermedim. Umarım bu çok açık değildir .

Çözüm:

Bir "% s" girişi bu segfault yapar. Kullanılabilecek birkaç tane daha var; hepsi printf"% n" gibi belirtecidir .
Klasik printfkırılganlık budur. Basitçe söylemek gerekirse, biçim dizgisi doğrudan kullanıcı girdisinden gelir, böylece herhangi bir printfbelirteç güvenli bir şekilde geçilmez.



8

JavaScript (Tarayıcıda), 79 bayt Cracked

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

En son tarayıcıda çalıştırmalısınız (en son Firefox ESR, en son Firefox, en son Chromium gibi). Eski tarayıcılarda yayın yapmak (Netscape 2, IE 4 gibi) sayılmaz.

Not: Zaman aşımı nedeniyle tarayıcı tarafından durduruldu, burada durma sayılmaz.

Bu kodları test ederken tarayıcınızı kilitlememeye her zaman dikkat edin ve mutlu soyma ^ _ ^

document.all


SetTimeout'u kullanabilir miyim?
Евгений Новиков

@ ЕвгенийНовиков Bu fonksiyonu herhangi bir parametreyle arayabilirsiniz. Ancak setTimeoutparametre çalışmadığı için kullanım gibi görünüyor .
tsh

fikir yapmak var key=(()=>{setTimeout(args);return null})()ve sonracrackme(key)
Евгений Новиков

hile gibi görünüyor
Евгений Новиков



6

Kabuğu , 5 bayt Kırık

↑ε∞←ø

Çevrimiçi deneyin!

Biraz açıklama, çünkü bu dil hala oldukça yeni:

←øboş bir listenin ilk öğesini alır: bu, herhangi bir türü varsayabilecek bir değer döndürür; bu, somut bir tür veya bir işlev olup, daha sonra girişe uygulanacaktır. önceki sonucun kopyalarından oluşan sonsuz bir liste oluşturur (çoğu durumda sonsuz sıfır listesi anlamına gelir). ↑ε“küçük” olduğu sürece bu listedeki elemanları alır, yani mutlak değerleri ≤1; sonsuz bir sıfır listesinde bu asla durmayacak.


@Veedrac bu aslında benim amacım olan çözümdü
Leo,

O zaman çatlak!
Veedrac


5

Yakut , 31 bayt ( Eric Duminil tarafından çatlak )

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

Çevrimiçi deneyin!

Bunun, sonuçta izleyen bir yeni hattın olmadığı bir ortamda çalıştırılması gerektiğini gets, aksi takdirde yeni bir satırda biten herhangi bir şeyin hata yapıp kurtarmaya başlayacağından durdurmanın (imkânsız) yapılmasının imkansız olduğunu unutmayın.



Bu arada iyi biri! Dönüşte hiçbir yöntem 3.methodsdöndürmez 5veya çıkar.
Eric Duminil

Kahretsin! Çözümü bağımsız olarak da keşfettim, ancak 5doğru cevabın yaptığı işlevi içereceğini düşünmeye eşitlemeye odaklandım ...
Value Ink


5

Bash 4.2, 14 bayt ( kırık )

Bunu tekrar deneyelim.

let ${1,,}
yes

Bu, Bash 4.3 kullanan TIO'da çalışmıyor. Giriş, komut satırı argümanları üzerinden yapılır.

Linux'ta ve gcc kurulu olduğunda Bash 4.2.53 aşağıdaki gibi indirilebilir ve oluşturulabilir.

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

Çatlak. Temelde kaynak okumak kadar sona erdi.
Veedrac

4

Retina , 78 bayt ( Kırık ) ( Amaçlanan Çözüm ile Kırık )

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

¶(?!1+$)

^(1+)¶\1$

+`1
11

Yazması çok eğlenceliydi, umarım çatlaması eğlencelidir.

Çevrimiçi deneyin!

İstenmeyen bir çözelti ve amaçlanan çözelti ile birbirinden bir dakika içinde parçalanır. Biri önce gönderildi, biri önce yorum yaptı.

Amaçlanan çözüm:

11111 veya n-1'in tekli gösterimi ki burada n herhangi bir mükemmel sayıdır




Peki kimin çatlağı önemli? (Önce çatlağı yayınladım, ancak mbomb007 önce yorum yaptı)
Kritixi Lithos

@Cowsquack ikisi de
programmer5000


4

Java 8, 99 bayt, Kırık

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

Bu türden bir lambdadır Consumer<String>.

Ungolfed:

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

Çevrimiçi deneyin! (Test programının boş girişte çarpışacağına dikkat edin, ancak lambda kendisi olmaz!) (ayrıca, test programı STDIN yerine argümanlar kullandığından, TIO'da 'argümanlar' kullanmayın)

Amaçlanan Cevap:

-32767; Bu çalışır çünkü Java'nın iki tamsayı türü vardır intve Integer. Integersarar bir nesnedir int. Ayrıca Java bir önbellek tutar Integerkutusu s -127aracılığıyla 127. !=Bu nedenle bazı un boks ve kimliklerini operatör kontrol eder, otomatik boks herhangi bir sayıda olan , aynı sona erecek ve böylece önbellekten nesne ve yanlış olacaktır.xx + 32767[-127, 127]Integeri != c



4

Bash 4.2, 10 bayt ( Kırık )

let $1
yes

Bu, Bash 4.3 kullanan TIO'da çalışmıyor. Giriş, komut satırı argümanları üzerinden yapılır.

Linux'ta ve gcc kurulu olduğunda Bash 4.2.53 aşağıdaki gibi indirilebilir ve oluşturulabilir.

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
Çatlak. Beni çembere soktun ve bunun kabuklu bir şey olduğunu düşünerek beni yamalı bir versiyona bağladın: P. İstenmeyen çatlakları küçük intikam olarak sayın;).
Veedrac

Heh, istediğim şey değildi. Eğer denemek istersen sertleştirilmiş bir versiyonunu yayınladım.
Dennis,

3

Java: 1760 ( Kırık )

Bunun golf oynamak için çok zor olduğunu hissediyorum, bu yüzden değişken isimlerini gizlice karıştırdım ve 'dağınık' hale getirdim. Aslına bakarsan o kadar demek ki zamanla ipucu göndereceğim, bu yüzden çatlamış olduğunu görebiliyorum.

İpucu 1: Bunun teorik olarak sınırsız geçerli girdileri var, ancak en 'Doğru' olanı var


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) {
			}
		}

	}
}

Çevrimiçi deneyin!


İki boş argüman işe
yarıyor

Ayrıca, bir tio bağlantısı eklemek ister misiniz? Yapmanız gereken tek şey, ana
Main'i

1
Kırık , böcek dışında.
user3033745

Çatlak - versiyona özel hata yok.
Okx

3

Braingolf , 18 bayt Kırık

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

Çevrimiçi deneyin!

Liiiitle sonuncusundan daha zor, bundan sonra gerçek bir tane yazmaya başlayacağım

Cevap 163


Dostum, bu muhtemelen hayatta kalan tek şey gönderme atm. Not: içalışmıyor.
Outgolfer Erik,

Uyarı: Bu aslında 19 bayttır ( £). Ve neden çalışmıyor -1? Bu zor.
Outgolfer Erik,

@EriktheOutgolfer 17 karakter ve 18 bayttır.
totallyhuman

@totallyhuman Yemin ederim "19 UTF-8 bayt, 18 karakter" okudum (usercript etkin) ...
Erik Outgolfer


3

JavaScript (ES7), 41 bayt ( Hacked & Cracked )

Düzenleme: hiç bir giriş yapıldığında çökmesini engellemek için düzeltildi (fark için @totallyhuman @ teşekkürler)


Muhtemelen birkaç çözüm vardır, ancak beklenen çözüm nispeten basittir.

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

Amaçlanan çözüm:

"8e7" (bilimsel gösterimde bir sayı bir dize olarak geçmiştir)
Çünkü: ~ "8e7" / "8e7". Uzunluk ** 3 = -80000001 / 3 ** 3 = -80000001/27 = -2962963


2
Bu konuda da hiçbir giriş yapılmadı, ancak bu şekilde kırılmasını zahmet etmek istemiyorum ... Tabii, bu amaçlanan çözüm değil. : P
totallyhuman

@totallyhuman Eh, amaçlanan çözüm değil . :-)
Arnauld


2
Güncelleme: 3 bayt uzun bir çözüm amaçlanmıştır
Евгений Новиков

3

Bash + Utils (Dennis tarafından Cracked), 74 bayt

Umarım ziftin tadını çıkarırsın, çünkü kullanabileceğin tek program bu.

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

Çevrimiçi deneyin!

Amaçlanan çatlak

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



@Dennis Güzel! Biraz daha karmaşık olan amaçlanan çatlağımı yayınladım.
Sisyphus

3

Mathematica, 36 26 bayt ( çatlak )

#0[#;$IterationLimit=∞]&

#0[#;∞]Çekirdeğinizi çökene kadar sürekli olarak tekrar tekrar çalışmaya devam edecek çok kısa bir döngü ... ( $IterationLimitSadece çoğu girdi için sonsuza dek sıkışıp kaldığınızdan emin olmak için).

Wolfram Sandbox'ta dene! - Sonsuz bir döngüde sıkışmışsanız, zaman aşımına uğrayana kadar bekleyebilir veya not defteri başlığının solundaki kare "değerlendirme işlemini iptal et" simgesine basabilirsiniz (unnamed).

NOT : bu işlev $IterationLimitayarlarınızı değiştirir.




3

C #, 118 bayt ( Kırık )

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

Bunun çok uzun sürmesini beklemiyorum ama göründüğünden daha garip.

Temel olarak herhangi bir Nullable sınıfının tam adı çalışır ancak aşağıdaki gibi göründüğü gibi bulmak zordur:
System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
Bu dizgiyi bulmanın daha kolay bir yolu yapmaktır typeof(int?).FullName.



3

C, 140 bayt ( Kırık )

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;}

Umarım, onu durduran amaçlanan girişlere çok fazla yakın olmayan bir giriş bile yoktur, ama görelim.

Çevrimiçi deneyin!



3

JavaScript (ES7), 73 bayt ( Kırık !)

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

İstenmeyen çözümler: kaba kuvvet. İstenilen çatlak matematik içerir.

Modulo nedeniyle birçok çözüm (4194304) olduğuna dikkat edin.



3

BrainFuck , 170 bayt kırık!

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

Çevrimiçi deneyin!


Siteye Hoşgeldiniz! Yeni satırları kodunuzdan kaldırarak 11 bayt tasarruf edebilirsiniz.
Buğday Sihirbazı,

Kod golf olduğunu unuttum, teşekkürler!
Jerry,


Geçerli bir çözüm! Sanırım onlardan bir kısmı var. Çözen / kaba çalışan herkes için, amaçlanan [az] dır.
Jerry,

Her 4 karakter için, son karakterin tam olarak 1 değeri vardır ve program durur. Bu nedenle, 256 ^ 4 = 4294967296 nul, beyninize girebileceğinizi varsayan çözümler sunar . Btw iki ilk >2 bayt kaydetmeyi kaldırabilirsiniz .
user202729

3

JavaScript ES6 (Node.js> = 6.0) , 326 bayt (Güvenli)

((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))

Çok daha basitleştirilmiş daha benim diğer meydan oldu, artık değilim bana bayt çok kaydedilmiş çözümü için bir yaklaşım karartmak teşebbüs. Bu sefer process.kill()işe yaramayacak.

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

Çevrimiçi deneyin!


Woah! İyi iş!
programcı5000

Kazanan gibisin, çok daha kısa bir kod bekliyordum, hehe
Piyin

3

Swift 3, 14 bayt ( Kırık )

while !false{}

Bunu çözmek için, kodunuzu bu ifadeden önce veya sonra girin.

  • Çözümünüz:
    • kodunu değiştirmeden bu bildirimi eksiksiz tutun
    • aslında bu ifadenin yayınlanmasına izin ver
      • Sayılmadan fatalError()önce basitçe yorumla , çağır , vb.
    • sonsuza kadar döngü yapmasını önlemek için bu ifadenin davranışını değiştirin
  • Çözüm, programın çökmesini içermiyor.

Swift'i bilmiyorum, ancak sanırım birkaç saniye sonra çıkmak için bu koddan önce bir zamanlayıcı eklemek kriterleri karşılayacaktır.

@Himin heh, zekice, ancak bu ifadenin anlamını değiştirmiyor, ki "bu ifadenin davranışını değiştiriyor" dediğimde aradığım şey buydu
Alexander

Çözümün işe yaradığından emin misiniz? Tercüman ambiguous semanticsbana bağırıyor .
Daniel,

@Dopapp önceki denememde olacağını düşündüğüm şeydi. Bazı nedenlerden dolayı, yeni infix operatörlerini önceden var olanlarla aynı tip imzalarla yeniden tanımlamak yasal, ancak aynı işlemi unary bir operatörle yapmaya çalışmak derleme zamanı belirsizlik hatası veriyor. Bu kasıtlı ve eminim çalışma çözümüm var
Alexander


2

cQuents , 2 bayt ( 1 Kırık ) ( 2 Kırık )

:A

Bunun TIO'da 128 KiB çıkış sınırına hızla çarpacağını ve durmasına neden olacağını unutmayın; ancak yerel olarak çalıştırıldığında, onu kıran giriş hariç, sonsuza kadar döngü yapacaktır. Bu girdiyi bulmak oldukça kolay olmalı. Bunu yapana kadar :A, üçgen dilini sana yapışmaya devam edecek.

Bunun sadece olması gerektiğine de dikkat edin Aama dün gece üstü kapalı modları kırdım. Eski tercüman sürümlerinde Aiyi çalışacak.

çatlaklar:

Boş giriĢ / girişteki yeni satır geçerli bir çatlak. Bununla birlikte, programa çoklu (boşlukla ayrılmış) girişleri geçerek, onu (2 verirseniz) sonlandırır veya hata verir (3 veya daha fazlasını verirseniz).

Çevrimiçi deneyin!


Çatlak? (Boş giriş ile ilgili hatalar)
Luis Mendo


crackers evet, bu geçerli bir çatlak. Olumsuz oyumu boş olmayan girdi çatlağını bulan birine vereceğim.
Stephen

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.