JScrewIt (farklı çözümler: 16117, 14747 ve 5903 karakter)
Javascript motorları aynı değildir; küçük uygulama farklılıkları tarayıcıda çalışan kodun başka bir tarayıcıda çalışmamasına neden olabilir. Mümkün olduğunca kısa sürede kodlamak için hack'lere dayanan JSFuck gibi lipogrammatik kod durumunda, uyumsuzluklar daha da büyüktür.
Örneğin, JSFuck tarafından oluşturulan kod alert("Hello World!")
Internet Explorer'da çalışmaz. Bu kabul edilebilir bir sınırlama ise, yine de boyutu 16117 22174 karaktere düşürebiliriz (cevap boyutu 30000 karakterle sınırlı olduğu için tüm kodu doğrudan ekleyemiyorum ):
http://jsfiddle.net/ep2jqsj4/1/
Internet Explorer'da da çalışan, ancak bazı eski tarayıcılarda çalışmayan bir kodun kodlanması 14747 karakter alır :
http://jsfiddle.net/bbxfqboq/
O koda sahip etmenizin uygun olup olmadığını Son olarak, şimdiki Firefox'ta çalışır o [güncelleme] ve Safari [bitiş güncelleme] sadece biz bunu yapabilirdi 5903 5911 karakterden :
http://jsfiddle.net/pkyLy0j8/1/
Bunların hepsini JScrewIt ile kodladım . Esolang'da listelenen JSFuck benzeri diğer kodlayıcıları bulabilirsiniz: http://esolangs.org/wiki/JSFuck . Hepsini denedim ve JScrewIt en iyi olanı (ve aynı zamanda tüm tarayıcılarda çalışan tek kişi) gibi göründüğünü söylemeliyim, ancak ayrıntılı olarak nasıl çalıştığını analiz etmedim.
Başka bir ilginç kodlayıcı 6chars.js'dir , bu da kısa giriş için daha büyük çıktı üretir alert("Hello World!")
, ancak giriş uzadığında karakterleri sayı olarak kodladığı için diğer kodlayıcılardan daha iyi performans gösterir. Sayılar JSFuck'ta yazmak için daha kısadır, ancak kod çözmek için ek yük gerektirir. Ne yazık ki, 6chars.js sadece Chrome'da çalışıyor ve hala aktif olarak geliştirilip geliştirilmediğini söyleyemem.
Bu tür kodlayıcıların daha fazla olup olmadığını bilmek ilginç olacaktır. Farklı kodlayıcılar tarafından kullanılan yöntemlerin bir araçta birleştirilmesi halinde, daha kısa çözümler üretmek mümkün olacaktır.
$
ve=
yanı lütfen? Aksi halde jeneratörü en iyi yapabileceğimizi sanmıyorum.