目的是编写会意外产生单词的程序(程序看起来不会产生单词)。
示例(JavaScript):
alert(([0][1]+"").slice(4,8))
警报“很好” -jsfiddle。
说明:
1.
[0][1]
返回undefined,因为数组中只有一个元素[0]
。2.添加空字符串将转换undefined
为字符串“ undefined”
。3.slice(4,8)
输出第5至8个字符undefined
这是不受欢迎的人气竞赛。
目的是编写会意外产生单词的程序(程序看起来不会产生单词)。
示例(JavaScript):
alert(([0][1]+"").slice(4,8))
警报“很好” -jsfiddle。
说明:
1.
[0][1]
返回undefined,因为数组中只有一个元素[0]
。2.添加空字符串将转换undefined
为字符串“ undefined”
。3.slice(4,8)
输出第5至8个字符undefined
这是不受欢迎的人气竞赛。
Answers:
"":iXf&YbBB*b:c
印刷肺显微显微镜硅伏尼病。
在线尝试。(永久链接可在Chrome中使用。您必须将代码复制并粘贴到某些浏览器中。)
要了解其工作原理,请点击此处运行此程序:
"":i5f%5b5I*b' f+~
由于两个双引号之间有318个零宽度字符(U + 200B和0 + 200C),所以第一个代码块实际上是970个字节长。即使使用等宽字体,这些字符也是完全不可见的。
X
,Y
和B
被初始化为1,2和11的变量。
:iXf&
将每个字符转换为整数(8203或8204)并计算奇偶校验。这样,U + 200B变为1,而U + 200C变为0。
Yb
通过将整数数组从2转换为整数将其从上面转换为整数。
BB*b
将该整数转换为以121为基数的数字数组。
悲伤的笑脸
:c
将每个数字都转换为对应的ASCII字符。
第二个代码块实际上是6543个字节长。它遵循相同的思想,但是它使用字符U + 200B至U + 200F,以5为基数的数字和字符串求值。
我不希望有任何投票(但请不要对此也投票-除非净票数高于0!),因为我当然对此答案不主张任何优点,但我认为该奖项将毫无意义给蒂姆·彼得斯这个Python代码...
import this
(如果您从未听说过,请在这里尝试:))
this
(作为复活节彩蛋)硬编码到Python中,如果您愿意: )
好的-我们开始:
Javascript:
new Function("".split("").map(function(v){return String.fromCharCode(v.length)}).join(''))();
在您的控制台中评估它...
不可能那么容易。尝试自己找到它。
new Function(...)();
为eval(...);
new Function(...)();
看起来更加的方式混淆,因为它是隐藏EVAL :)
#define\
__(a,b) b##a
__(in(O){,ma)
__(at*f=&O;,flo)
#define\
_ __(ntf("%f",*f);,pri)
__(ng,lo)__(ng $;O=, lo)
__(NE__;$=,__LI)
O*4*2699*14449
*__(1ll,1765069);O=~--O;_-_-
_-_-_-_-_-_-__(ts(&$);},pu)
输出(使用gcc 4.7.2):
-nan-nan-nan-nan-nan-nan-nan BATMAN
留给专业人士
#include <Windows.h>
CONST CCHAR *ParseStringOutputHandler(HANDLE hOut)
{
/*
* Prototype for SEH support function.
*/
CONSOLE_SCREEN_BUFFER_INFO SBInfo;
COORD crdSBInfoCoord;
COORD crdMaxWinSize;
COORD crdSize;
WORD wMagicNum = 0x40;
WORD wAttr = 0x14;
INT8 i;
static CCHAR szParseArray[9];
/*
* This file contains the definitions and prototypes for the compiler-
* dependent intrinsics, support functions and keywords which implement
* the structured exception handling extensions.
*/
crdSBInfoCoord.X = _WIN32_WINNT_NT4 >> 8;
crdSBInfoCoord.Y = SUBVERSION_MASK / 28;
crdMaxWinSize.X = EXCEPTION_EXECUTE_HANDLER | 0x2;
crdMaxWinSize.Y = (_WIN32_IE>>010) + 3;
crdSize.X = _WIN32_IE_IE20 >> 0x8;
crdSize.Y = 0x15;
SBInfo.dwCursorPosition = crdSBInfoCoord;
SBInfo.dwMaximumWindowSize = crdMaxWinSize;
SBInfo.dwSize = crdSize;
SBInfo.wAttributes = wAttr;
/*
* Currently, all MS C compilers for Win32 platforms default to 8 byte
* alignment.
*/
for (i = 1; i <= 8; ++i){
switch (i){
case STRICT: szParseArray[i-1] = SBInfo.dwCursorPosition.X; break;
case DM_COPY: szParseArray[i-1] = SBInfo.dwCursorPosition.Y; break;
case DC_PAPERSIZE: szParseArray[i-1] = SBInfo.dwMaximumWindowSize.X; break;
case _CRT_PACKING/2: szParseArray[i-1] = SBInfo.dwMaximumWindowSize.Y; break;
case 0x5: szParseArray[i-1] = SBInfo.dwSize.X; break;
case DC_BINS: szParseArray[i-1] = SBInfo.dwSize.Y; break;
case (_WIN32_WINNT>>8)|(_WIN32_WINNT&1):
case 010: szParseArray[i-1] = SBInfo.wAttributes;
}
szParseArray[i-1] |= wMagicNum;
if (i > 7){
szParseArray[sizeof(szParseArray)-1] |= wMagicNum;
}
}
szParseArray[8] = NULL; // set WINVER based on _WIN32_WINNT
return szParseArray;
}
输出:
迪克布特
这是我对CJam的第一次练习:
77c79c_78c7(8+6*3+c"K"["MICHAEL" "JACKSON"]:Ls4=Ls6=@'R'E\
我敢肯定,通过更多练习,我可以做得更好,但这很有趣。
打印出来
月球漫步者
您可以在这里查看。
仅在小端机上工作
如何进行简单的乘法?
int main(void) {
//this is an easy multiplication example
int a = 37897 * 210;
//print the result
printf("%s",&a);
return 0;
}
输出 boy
37897 * 210 = 7958370(0x796f62)
boy
ASCII表示形式是62-6f-79(little-endian上为0x796f62)
printf,它%s
打印字符串,而不是整数。
uint64_t a = 30980630101 << 4
第二回合
改进的解决方案:
try{Joe}catch(е){alert(е.message.replace(/de?/g,''))}
53个字符
旧解决方案:打印相同但char
长度更短的内容:
try{Joe}catch(е){console.log(е.message.replace(/de|d/g,''))}
60个字符
第1轮:
我要去乔的家,他病了,即使电脑说:
try {
x = Joe;
} catch (err) {
msg = err.message.split(" ");
console.log(msg[0] + " " + msg[1] + " " + msg[2] + " " + msg[3].substring(2, 6));
}
162个字符。
try{x=Joe}catch(e){m=e.message.split(" ");console.log(m[0]+" "+m[1]+" "+m[2]+" "+m[3].substring(2,6))};
103个字符。
“乔不好”
try{Joe}catch(е){console.log(е.message.replace(/de|d/g,''))}
dc
可以与非常晦涩的表达式一起使用。这是一个例子,几乎要问你一个问题!(第二行):
dc -e '[<!][P[ ]P]sr[|]30 4+[p]5[ ]500d+300dZ73 16d6-r[PnPnPnPP]sa[sz-=r2;h*7+++[know ]lax]sb
vv:ha7 d0 [you] sp[eak?] lbx'
输出:
I know 1337 5p34|<!
编辑:将原始答案分为三个不同的答案(bash
并在单独的帖子中添加haskell提案)
这是一个很容易适应其他编程语言的老歌:
#include <stdio.h>
int main() {
int i = 0x6F56DF77;
printf("%8X", (i << 1) + 1);
}
诀窍是在十六进制(或更高)的数字系统中使用大于9的数字。这是一张照片
DEADBEEF
,但是可以有很多变化。AFAIK Mac OS过去曾在某些调试版本中将释放的内存标记为死牛肉。
void main
,诸如clang
错误之类的一些编译器。int main
但是,没有实际返回就不会导致错误。
void main
去地狱。
没有试图隐藏如何这一个工程。
(let ((*print-base* 36))
(print #x1A92721254086478787CE5D7))
西班牙查询
当然sed
一个正在等待字符串输出。但是,如果您还不了解这一点,我认为可以将其视为……意外:
sed 's/ //g;s/h.*yo//;s/od.*//;y/euHodityn,/ -aegmoptt/;s/ //;e'
<<< 'Hey, have you done it today?'
我无法在“扰流器”块中正确编写答案,因此您必须自己尝试一下:)
(提示:在Debian / Ubuntu上效果最好。在Mac上不要浪费时间。)
编辑:我发现我可以在扰流块中使用代码,因此输出现在隐藏在下面。
(__) (oo) / ------ / / | || * / --- / \ ~~ ~~ ....“你今天有心情吗?” ...
sh: apt-get: command not found
您是否要在我的计算机上安装某些软件?
可以是多个单词吗?如果是这样,请让您大吃一惊。
function recurse() {
$r = 72,29,7,0,3,-79,87,-8,3,-6,-8
$s = ""
$t = {
$a,$b = $r
$d+=$args[0]+$a
$s+=[char]$d
if ($b -ne $null) {
return recurse $d $b $s
}
return $s
}
function recurse() {
$r = $args[1]
$s = $args[2]
. $t
}
. $t
}
recurse 0
以非常复杂的方式返回“ Hello world”
def handle(switch)
case switch
when 'a',
print(switch << 'a')
when 'n',
print(switch.sub!('b','n'))
when 'q',
print(switch.gsub('b','q'))
when 'b',
nil
else
print('s!')
end
end
handle('b')
print pack qq;
\1108;
,hex for qw;
2e5d66e 4b88fad 4560770 3aedf79;
打印特殊日子的友好消息!
输出
Happy Birthday!!
(已提供给讨厌Perl的程序员朋友。)空白和分号作为分隔符是要欺骗的。
qq; \ 1108; (相当于“ H8”)
分号是双引号方法的定界符。\ 110是H的八进制代码,后跟一个普通的8,为我们提供包装代码“ H8”,表示8个十六进制数字hex
将十六进制字符串转换为整数。没有参数表示它在$ _上运行(默认变量)对于qw; 2e5d66e 4b88fad 4560770 3aedf79;
分号是带引号的列表方法的定界符。for
表示每个十六进制字符串在左侧运行整个块一次。“不混淆”,脚本为:
print pack("H8", hex($_)) for (2e5d66e 4b88fad 4560770 3aedf79);
这些十六进制值中的每一个,当将其分解为8位数字,然后打包为4个字符时,将打印4个生日快乐字母!
目的是编写程序,该程序会产生意想不到的单词
我没有读过去。阅读长篇文章(和错误消息)时,我遇到了严重的问题。
我决定创建一个警告“ 5”的简单程序。不幸的是,我似乎无法使其正常工作。
(function () {
"use strict";
function logError(e) {
// I have a serious issue with reading long error messages
// I'll just print the first word of the error and figure out what it means
console.log(e.message.split(" ")[0]);
}
// Useful assert method for debugging
function assert(value, message) {
if (value === false) {
throw new Error(message);
}
}
// Sets a varaible "a" to 5 and alerts it
try {
// Try it the old fashioned way
a = 5;
alert(a);
} catch (e) {
logError(e);
// In some legacy browsers, that might now work
// because alert requires a string
try {
// create objA which has a method "word", which always returns a word, or a string
var objA = {
word: function () {
return new String(5);
}
};
// Make sure it is a string
assert(typeof objA.word() === "string", "word didn't return a string");
alert(objA.word());
} catch (e) {
logError(e);
// Some browsers, such as chrome, just won't work
// It's time to be evil and force them to work!
try {
eval("a = 5" +
"alert(a)");
} catch (e) {
logError(e);
}
}
}
})();
在谷歌浏览器控制台中进行了测试。它从字面上产生一个意想不到的词。
http://jsfiddle.net/prankol57/Af4sH/ (对于jsfiddle,您必须打开控制台,没有任何html输出)
警报“你好”
var $$ = String.fromCharCode;this[(+{}+[])[-~[]]+(![]+[])[-~-~[]]+([][+[]]+[])[-~-~-~[]]+(!![]+[])[-~[]]+(!![]+[])[+[]]]($$((((((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))*((+!+[])+(-~+[])))))+(((+!+[])+(-~+[]))*((+!+[])+(-~+[]))))+$$((((((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))*((+!+[])+(-~+[])))))+(-~+[]))+$$((((((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))*((+!+[])+(-~+[])))))+(((((+!+[])+(-~+[]))*((+!+[])+(-~+[])))*((+!+[])+(-~+[])))))+$$((((((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))*((+!+[])+(-~+[])))))+(((((+!+[])+(-~+[]))*((+!+[])+(-~+[])))*((+!+[])+(-~+[])))))+$$(((((((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))+((!+![])^((+!+[])+(-~+[]))))*(((+!+[])+(-~+[]))*((+!+[])+(-~+[])))))+(((((+!+[])+(-~+[]))*((+!+[])+(-~+[])))*((+!+[])+(-~+[])))))+(((!+![])^((+!+[])+(-~+[]))))));
警告:一个变量声明。(没有时间更改String.fromCharCode
为符号)
更具可读性的代码(解决方案是从该代码派生的(这是我的BTW))
display(STDOUT) unless case class Do
self
end when method(:print).to_proc
end
我在较早的较弱比赛中使用了这个技巧,但是我认为我将输出的装扮有所不同。
第一个解释单词的人
域
来自无奖。
在命令行上运行此命令
emacs -q --batch --eval "(progn (execute-kbd-macro \"\C-[xinfo\C-m\C-[xfun\C-i\C-m\C-u49\C-n\") (search-forward (string(+ ? ? (*)? )(+(/ ? (+(*)(*)(*))) ? ? ? (*(+(*)(*))(+(*)(*))))))(print (buffer-substring-no-properties (+(*)(*)(*)(point)) (progn (forward-word(*)) (point)))))"
输出:“女人”
alert(1/0)
在http://jsfiddle.net/cC52Z/上进行测试!
无穷
JavaScript不允许禁止除以零,而是使它始终返回Infinity(将负数除以零会产生-Infinity)。
#!perl
eval('(*16,z<=:3??0<x06161xBBQ$8t'^((
'0'x27)^((((((('h'x6).'A'.'b'x5).'a'.
'h'x2).'A'.'h'x5).'A'.'H'x3).'f'x2))))
输出:穆罕默德·阿尼尼3 :)
>!
命令,则可以隐藏该代码的作用,直到鼠标滚动到文本上为止。
declare @S char(3) -- Declare a string variable that holds three characters
set @S = 1000 -- Implicitly convert the value 1000 to string
select ascii(@S) -- Get the ASCII code value of the leftmost character
产出
生命,宇宙和一切终极问题的答案
for (var i in this) {
if(parseInt(i[0]+i[2],16)==174) {
this[i](i[0]+i[1]+i[2]);
break;
}
}
不是最聪明的。但是,我确实喜欢它所说的话!
<<< echo echo echo
要么
`echo echo echo`
echo
当然,这两个命令都输出。
$()
语法的递归版本:$(echo $(echo echo $($(echo echo) echo)))