JavaScript (diperbarui untuk bekerja dengan semua kasus uji)
Kebenaran yang sedikit diketahui adalah bahwa sebenarnya ada empat 6, tetapi salah satu dari yang dikhianati yang lain dan polymorphed ke dalam bentuk kode untuk membasmi mereka dari digit angka dunia . Inilah enam pengkhianat itu:
x=prompt(''+
'Enter number');
alert( ( (~x[
'ind'+
'exOf']('666')))?(x
.replace(/666(.*)$/,
function (mat,g){
return '667'+g
['re'+ 'place'
](/./g,0)})):((+x+
1+'').replace(
666,667)));
Berikut ini penjelasannya. Pertama, percantik kode dan hapus hal-hal yang tidak berguna seperti ''+'string'dan ((code)):
x = prompt('Enter number');
alert(
~x['indexOf']('666')
?
x.replace(/666(.*)$/, function(mat,g) {
return '667' + g['replace'](/./g,0)
})
:
(+x+1+'').replace(666, 667)
);
Ubah notasi aneh (seperti ~indexOfdan ['replace']) menjadi yang lebih umum:
x = prompt('Enter number');
alert(
x.indexOf('666') > -1
?
x.replace(/666(.*)$/, function(mat, g) {
return '667' + g.replace(/./g, 0)
})
:
((parseInt(x) + 1) + '').replace(666, 667)
);
Dan sekarang cukup pahami bahwa algoritmenya seperti ini:
Versi lama (tidak berfungsi untuk 666666666) :
s='Enter number';x
=prompt( ''+
s);x=+x+
(-~![]);
x=(''+x).replace('666',
666+([][ +[]]+[])
[+[]]['l ength'[
'repla'+ 'ce'](
/ /g,'')]);alert(x)
Untuk memahami ini, mari kita mempercantiknya:
s = 'Enter number';
x = prompt('' + s);
x = +x + (-~![]);
x = ('' + x).replace('666',666+([][+[]]+[])[+[]]['l ength'['repla'+'ce'](/ /g,'')]);
alert(x);
Sekarang mari kita hapus hal-hal yang tidak berguna seperti '' + stringdan 'str' + 'ing', hapus svariabel yang tidak perlu , dan ubah keanehan seperti -~![]menjadi 1:
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666+"undefined"[0]['l ength'['replace'](/ /g,'')]);
alert(x);
'l ength'['replace'](/ /g,'')hanya "length":
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666+"undefined"[0].length);
alert(x);
Dan "undefined"[0]adalah "u", dan "u".lengthadalah 1:
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666 + 1);
alert(x);
Sekarang kita sudah selesai! Seharusnya cukup mudah dimengerti sekarang.