├── Elihuso ├── README.md ├── image │ └── image.png └── main.js ├── FiveYellowMice ├── README.md └── ccc.rb ├── GalvinGao └── lmao.js ├── Jack-Works ├── README.md ├── answer.js └── screenshot.png ├── LICENSE ├── MoTIEdsuNe ├── README.md └── _.rb ├── Nyaacinth ├── G1.lua └── README.md ├── OverflowCat ├── README.adoc ├── README_en.adoc └── x.ps1 ├── README-EN.md ├── README.md ├── bakashigure ├── _.php ├── __.php ├── image.png └── readme.md ├── benpigchu ├── _.py └── readme.md ├── dantmnf ├── @.rb └── readme.md ├── misteo ├── README.md └── misteo.bash ├── nocat └── _.php ├── satgo1546 ├── c.c └── readme.md ├── uye ├── 1.php └── 被坏坏玛丽ban了.php ├── vantis └── _.java ├── 许兴逸 ├── m.hs └── 启动.txt ├── 谓道之求 └── _.m └── 鼹鼠 ├── main.js └── readme.MD /Elihuso/README.md: -------------------------------------------------------------------------------- 1 | 2 | 其实很简单 3 | 把 `console.log('Hello, World')` 全都用 `[]()!` 表示就可以了( 4 | 5 | 0 可以在js中用 `+[]` 表示. 6 | 那么如果是 1, 则可以用 `+!+[]` 7 | 同样 2 也可以用 `!+[]+!+[]` 表示 8 | 9 | 所以剩下的就是凑数字( 10 | 11 | 于是就来了个8.36KiB的js( -------------------------------------------------------------------------------- /Elihuso/image/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvoluteHell/ThreeKeysProgramming/a4de8bca260e2ab42d1bf4971ad1e5ea51355a1e/Elihuso/image/image.png -------------------------------------------------------------------------------- /Elihuso/main.js: -------------------------------------------------------------------------------- 1 | [][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(+(!+[]+!+[]+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]]](!+[]+!+[]+!+[]+[!+[]+!+[]])+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]])()([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+([]+[])[(![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]()[+!+[]+[!+[]+!+[]]]+((!![]+[])[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[+[]]+(!![]+[])[+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[+!+[]]+[+!+[]]+[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[!+[]+!+[]+!+[]+!+[]]+[+[]]+(!![]+[])[+[]]+[+!+[]]+[!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([][[]]+[])[!+[]+!+[]]+(!![]+[])[+[]]+[!+[]+!+[]+!+[]+!+[]]+[+!+[]]+(!![]+[])[+[]]+[!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+(!![]+[])[+[]]+[!+[]+!+[]+!+[]+!+[]+!+[]]+[+!+[]])[(![]+[])[!+[]+!+[]+!+[]]+(+(!+[]+!+[]+[+!+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]]](!+[]+!+[]+!+[]+[+!+[]])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]]((!![]+[])[+[]])[([][(!![]+[])[!+[]+!+[]+!+[]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]](([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(![]+[+[]])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+!+[]+[+[]]]+![]+(![]+[+[]])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+!+[]+[+[]]])()[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[+[]])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[+!+[]+[+[]]])+[])[+!+[]])+([]+[])[(![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]()[+!+[]+[!+[]+!+[]]])()) -------------------------------------------------------------------------------- /FiveYellowMice/README.md: -------------------------------------------------------------------------------- 1 | ```Ruby 2 | c=33*3+3*3 3 | _=33*3-~23/2 4 | $><<'%c'*(32/3+3)%[3*3*2**3,-~322-222,c,c,_,22*2,32,32*2+23,_,32*3+3*3*2,c,322-222,33] 5 | ``` 6 | 7 | ## 解释 8 | 9 | `$>` 代表标准输出,其 `<<` 操作符可以直接输出字符串。同时, `'%c' % 32` 可以把一个数字转换为相应的字符。因此剩下的就只是凑其 “Hello, World!” 中每个字符的 ASCII 编码了。此时我们只使用了 `c` 这一个字母,还剩下两个字符的配额可以用来凑数字,我们随意选择了 `2` 和 `3`。 10 | 11 | 把代码的最后一行翻译成更易读的形式,则为 `STDOUT << '%c' * 13 % [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]` 。 12 | 13 | 凑数字的方式显然还有非常大的优化空间,但是凑数字的过程并不有趣,所以没有很大的功夫被花费于此。 14 | -------------------------------------------------------------------------------- /FiveYellowMice/ccc.rb: -------------------------------------------------------------------------------- 1 | c=33*3+3*3 2 | _=33*3-~23/2 3 | $><<'%c'*(32/3+3)%[3*3*2**3,-~322-222,c,c,_,22*2,32,32*2+23,_,32*3+3*3*2,c,322-222,33] 4 | -------------------------------------------------------------------------------- /GalvinGao/lmao.js: -------------------------------------------------------------------------------- 1 | _=!1+"";$=!0+"";[][_[0]+_[2]+_[1]+$[0]][([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+_[2+!0]+$[0]+$[1]+([][[]]+[])[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]]($[1]+$[2+!0]+$[0]+([][[]]+[])[0]+$[1]+([][[]]+[])[1]+(+[![]]+[][_[0]+_[2]+_[1]+$[0]])[1+[1]]+$[2+!0]+(+(2+!0+[1]))[$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([]+[])[([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+_[2+!0]+$[0]+$[1]+([][[]]+[])[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]][([][[]]+[])[1]+_[1]+((0)[([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+_[2+!0]+$[0]+$[1]+([][[]]+[])[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]]+[])[1+[1]]+$[2+!0]]](2+!0+[2])+_[1]+_[2])()([][_[0]+_[2]+_[1]+$[0]][([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+_[2+!0]+$[0]+$[1]+([][[]]+[])[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]]($[1]+$[2+!0]+$[0]+([][[]]+[])[0]+$[1]+([][[]]+[])[1]+([]+[])[_[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+$[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+_[2]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]]()[1+[2]]+($[0]+[2+2]+[2]+$[0]+[1]+[1]+[0]+$[2+!0]+_[2]+_[2]+$[0]+[1]+[2+2+!0]+[2+2+2+!0]+$[0]+[2+2]+[0]+$[0]+[1]+[2]+[2+2+2+!0]+$[0]+[1]+[2+2+!0]+[2+2+2+!0]+$[1]+_[2]+([][[]]+[])[2]+$[0]+[2+2]+[2])[_[2+!0]+(+(2+[1]+[1]))[$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([]+[])[([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+_[2+!0]+$[0]+$[1]+([][[]]+[])[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]][([][[]]+[])[1]+_[1]+((0)[([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+_[2+!0]+$[0]+$[1]+([][[]]+[])[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]]+[])[1+[1]]+$[2+!0]]](2+!0+[1])[1]+_[2]+([![]]+[][[]])[1+[0]]+$[0]]($[0])[([][$[2+!0]+([][[]]+[])[1]+$[0]+$[1]+([![]]+[][[]])[1+[0]]+$[2+!0]+_[2+!0]]()+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([![]]+[][[]])[1+[0]]+([][[]]+[])[1]](([][_[0]+_[2]+_[1]+$[0]][([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+_[2+!0]+$[0]+$[1]+([][[]]+[])[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]]($[1]+$[2+!0]+$[0]+([][[]]+[])[0]+$[1]+([][[]]+[])[1]+(![]+[0])[([![]]+[][[]])[1+[0]]+$[0]+_[1]+_[2]+([![]]+[][[]])[1+[0]]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+_[2+!0]]()[1+[0]]+![]+(![]+[0])[([![]]+[][[]])[1+[0]]+$[0]+_[1]+_[2]+([![]]+[][[]])[1+[0]]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+_[2+!0]]()[1+[0]])()[([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+_[2+!0]+$[0]+$[1]+([][[]]+[])[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+$[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]]((![]+[0])[([![]]+[][[]])[1+[0]]+$[0]+_[1]+_[2]+([![]]+[][[]])[1+[0]]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+_[2+!0]]()[1+[0]])+[])[1])+([]+[])[_[0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+([][[]]+[])[1]+$[0]+([][_[0]+_[2]+_[1]+$[0]]+[])[2+!0]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+_[2]+(!0+[][_[0]+_[2]+_[1]+$[0]])[1+[0]]+$[1]]()[1+[2]])()); -------------------------------------------------------------------------------- /Jack-Works/README.md: -------------------------------------------------------------------------------- 1 | # Explain 2 | 3 | ## Used characters 4 | 5 | - `H` 6 | - `W` 7 | - `2` 8 | 9 | ## Execute environment 10 | 11 | Chrome devtools (this solution rely on the Chrome Devtools. It cannot run as a normal JavaScript file.) 12 | 13 | ## Screenshot 14 | 15 | ![Screenshot](screenshot.png) 16 | 17 | ## Uncompressed version 18 | 19 | ```js 20 | // Note: $ + '' equals to "'function $(selector, [startNode]) { [Command Line API] }'" in Chrome Devtools. 21 | _ = $ + '' 22 | $1 = 2 / 2 23 | $3 = 2 + $1 24 | $4 = 2 + 2 25 | $6 = 2 * $3 26 | $12 = $3 * $4 27 | $18 = $12 + $6 28 | $13 = $3 * $4 + $1 29 | $29 = $13 * 2 + $3 30 | 31 | 'H' + _[$12] + _[$13] + _[$13] + _[$6] + ', W' + _[$6] + _[$18] + _[$13] + _[$29] + '!' 32 | ``` 33 | -------------------------------------------------------------------------------- /Jack-Works/answer.js: -------------------------------------------------------------------------------- 1 | _=$+"",$$=2/2;H=2+$$;$W=2+2;$=2*H;$H=H*$W;__=$H+$;W=H*$W+$$;_W=W*2+H;"H"+_[$H]+_[W]+_[W]+_[$]+", W"+_[$]+_[__]+_[W]+_[_W]+"!" 2 | -------------------------------------------------------------------------------- /Jack-Works/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvoluteHell/ThreeKeysProgramming/a4de8bca260e2ab42d1bf4971ad1e5ea51355a1e/Jack-Works/screenshot.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 InvoluteHell 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MoTIEdsuNe/README.md: -------------------------------------------------------------------------------- 1 | # 它来自于哪里,为什么是这样,怎么就工作? 2 | 1. 我也不知道为什么,我只是: 3 | - @JackWorks 提到可以用符号来解答。 4 | - @BenPigChu 提到可以用符号拼字符串。 5 | - @FiveYellowMice 提到 Ruby 可以使用 `$><<` 输出。 6 | 2. 同时: 7 | - 查询了一下 Ruby 是什么样的语言,怎么写。 8 | - 学习了一下 "%c" 格式化输出以及 *13 的写法(也就是使用数字1和3的来源)。 9 | - 插叙:本来用的 1 和 2 ,但被 @FiveYellowMice 发现 Hello, World! 中间有个空格! 10 | - 了解了一下符号编程! 11 | 3. 最后: 12 | - 简单快乐的凑数字过程~ 13 | 14 | # 致谢: 15 | - @JackWorks 16 | - @BenPigChu 17 | - FiveYellowMice -------------------------------------------------------------------------------- /MoTIEdsuNe/_.rb: -------------------------------------------------------------------------------- 1 | _=111 2 | $><<"%c"*13%[3**3*3-3*3,_-11+1,_-3,_-3,_,33+11,31+1,31*3-3-3,_,_+3,_-3,_-11,33] -------------------------------------------------------------------------------- /Nyaacinth/G1.lua: -------------------------------------------------------------------------------- 1 | __=("").char;_=1+1+1;___=_+_+1;_G[__(11 ..1+1,11 .._+1,1 ..1-1 .._+1+1,11 ..1-1,1 ..(1+1)^(1+1)^(1+1))](__(___..1+1,1 ..1-1 ..1,1 ..1-1 ..(1+1)^_,1 ..1-1 ..(1+1)^_,111,1+_.._+1,_..1+1,(1+1)^_..___,111,11 .._+1,1 ..1-1 ..(1+1)^_,1 ..1-1 ..1-1,_.._)) -------------------------------------------------------------------------------- /Nyaacinth/README.md: -------------------------------------------------------------------------------- 1 | ## 六键成码 2 | 3 | ### 使用字符串 4 | 5 | `G` 6 | 7 | `1` 8 | 9 | `char` ❌ 10 | 11 | ### 运行环境 12 | 13 | LuaJIT 2.1,该方案依赖 Lua 5.1 标准中整浮点数隐式向整数转换的特性 14 | 15 | ### 运行结果 16 | 17 | ``` 18 | $ luajit -v 19 | LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2022 Mike Pall. https://luajit.org/ 20 | $ luajit G1.lua 21 | Hello, World! 22 | $ _ 23 | ``` 24 | 25 | ### 实现方法与失败原因 26 | 27 | Lua 中所有字符串类型值的 `__index` 元方法都指向 `string`,故可用 `("").char` 形式获取到 `string.char` 函数,用以转换 ASCII 码 28 | 29 | Lua 中 `string.char(...)` 能够接受字符串形式的整数,故连接操作符(`..`)产生的字符串可在此使用 30 | 31 | Lua(5.1)中全局变量存在于一张名为 `_G` 的表之中,故可直接索引该表得到 `print` 函数 32 | 33 | Lua(在夏末的认知)中存在且仅存在 `string.char(...)` 可用于转化 ASCII 码(形如 `\111` 的字面量等方法在此处无法使用),故该方案失败 34 | 35 | ---- 36 | 37 | ### omo 38 | -------------------------------------------------------------------------------- /OverflowCat/README.adoc: -------------------------------------------------------------------------------- 1 | = PowerShell 2 | 3 | xref:README_en.adoc[English] | 简体中文 4 | 5 | image:http://telegra.ph/file/cb631e2869a7540a84b87.png[screenshot] 6 | 7 | == 代码 8 | 9 | 选择的 3 个字母:`i`、`e`、`x`。 10 | 11 | [source,powershell] 12 | ---- 13 | $i=$?+$? 14 | $e=$i+$i 15 | $xi=$x=$e+$i 16 | $xe=""+$x+$x 17 | $xx=""+$x+--$e 18 | $x=(""+$?)[$i] 19 | iex "`$ex=""``$x{$xe}"";`$xe=""``$x{$xx}""" 20 | $ii=$e+++$i 21 | $ix=$ii+$i 22 | $ei=$e*$i 23 | $x="``$x{" 24 | iex "`$e=""$x$e$ei}e$x$xi$xe}$x$xi$xe}$x$xi$ex}, $x$ii$ix}$x$xi$ex}$x$ix$i}$x$xi$xe}$x$xi$e}!""" 25 | $e 26 | ---- 27 | 28 | 压成一行时语句结尾需要有分号。 29 | 30 | [source,powershell] 31 | ---- 32 | $i=$?+$?;$e=$i+$i;$xi=$x=$e+$i;$xe=""+$x+$x;$xx=""+$x+--$e;$x=(""+$?)[$i];iex "`$ex=""``$x{$xe}"";`$xe=""``$x{$xx}""";$ii=$e+++$i;$ix=$ii+$i;$ei=$e*$i;$x="``$x{";iex "`$e=""$x$e$ei}e$x$xi$xe}$x$xi$xe}$x$xi$ex}, $x$ii$ix}$x$xi$ex}$x$ix$i}$x$xi$xe}$x$xi$e}!""";$e 33 | ---- 34 | 35 | === 环境 36 | 37 | *PowerShell 7.2.5* 38 | 39 | 需要自行安装,Windows 自带的版本较旧,没有 Unicode 转义字符。 40 | 41 | 代码可以在终端直接粘贴,或者通过 `.\x.ps1` 运行。 42 | 43 | == 原理 44 | 45 | === 选择字母 46 | 47 | PowerShell 中无法对 Char 进行加减操作,显式地进行类型转换也需要类似 `[char]65` 至少 4 个字母。footnote:[https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/converting-ascii-and-characters[Converting ASCII and Characters - Power Tips - Power Tips - IDERA Community]]所以只能考虑 eval。PowerShell 中的命令名都很长,不过 Invoke-Expression 有别名 `iex`。另外有一个可以执行字符串的操作符 `&`,但是只能是命令名,不能带参数。footnote:[https://stackoverflow.com/questions/50018274/why-does-invoke-operator-and-invoke-expression-produce-different-results-for[Why does invoke operator (&) and Invoke-Expression produce different results for the same input? - Stack Overflow]] 48 | 49 | === 第一个数字 50 | 51 | 因为不能直接出现数字了,所以需要想办法得到第一个 Int 类型的值。发现数组下标为空字符串 `''` 时可以得到数组的第一个元素,但是如果想要后面的字母的话,PowerShell 并没有提供 pop 等函数。footnote:[https://stackoverflow.com/questions/24754822/powershell-remove-item-0-from-an-array[PowerShell Remove item 0 from an array - Stack Overflow]]数字字面量也都至少需要有 `0` 出现。所以只能通过其他类型隐式转换出 Int 来。 52 | 53 | [source,powershell] 54 | ---- 55 | $i = $? + $? 56 | ---- 57 | 58 | - `$?` 表示上一条命令的返回值,在初始时和上一条命令没有出错时为 `True`。footnote:[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-7.2#section-1[$? - PowerShell Core - About - Automatic Variables]] 59 | 60 | - PowerShell 中的 `==` 是 `-eq`,需要额外的字母。 61 | 62 | - 当 Bool 类型转换为整数时,`True` 是 `1`,故 `$i` 为 `2`。footnote:[https://docs.microsoft.com/en-us/powershell/scripting/lang-spec/chapter-06?view=powershell-7.2#64-conversion-to-integer[Conversion#Conversion to integer]] 63 | 64 | 剩下的大部分操作都是在构造其他数字,代码的长度应该可以再压缩一点。 65 | 66 | === 构造 Unicode 67 | 68 | [source,powershell] 69 | ---- 70 | $x = ("" + $?)[$i] 71 | ---- 72 | 73 | - `+` 运算符的两个参数类型不一致的时候,会将第二个参数隐式转换为第一个参数的类型。故此处 `$e` 为 String `"True"`。 74 | 75 | 至此,我们有了所需的数字和字母 `u`,可以用 `"`u{x}"` 来生成一切字符了。不过,`"Hello World!"` 除了可以直接输入的 `e`、空格和 `!`,十六进制值中还需要 `c` 和 `f`。幸好这两个的编码分别为 `63` 和 `66`,没有 a-f 出现。`$e` 实际上就是: 76 | 77 | [source,powershell] 78 | ---- 79 | $e = "``u{48}e``u{6c}``u{6c}``u{6f}, ``u{57}``u{6f}``u{72}``u{6c}``u{64}!"; 80 | ---- 81 | 82 | ==== 转义字符 83 | 84 | [source,powershell] 85 | ---- 86 | iex "`$ex=""``$x{$xe}"";`$xe=""``$x{$xx}""" 87 | ---- 88 | 89 | - 字符串用双引号的好处是可以直接嵌入变量。如果要 escape 的话,需要在 `$`、`"`、``` 前面加上 ```;`"` 也可以自身重复两次 `""` 来 escape。footnote:[https://www.rlmueller.net/PowerShellEscape.htm[Escaping in PowerShell]] 90 | 91 | === 打印值 92 | 93 | PowerShell 默认打印出前一个表达式的值,所以不需要拼凑出 `"echo"` 再 `iex` 什么的。 94 | 95 | === 其他可能的方法 96 | 97 | - 变量赋值时可以直接是命令的输出。比如旧版 PowerShell 可以通过 `$ls = ls; $ls[x][x]` 拿到 ls 命令表头具体的一个 Char,或许有的命令的输出包含全部所需的字母。但是新版中大部分命令的输出不再是字符串而是对象了,两次下标拿到的仍然和原结果一样。 98 | 99 | - `$error` 是一个存放了错误信息字符串的数组。footnote:[https://www.tutorialspoint.com/what-is-use-of-error-variable-in-powershell[What is use of $error variable in PowerShell?]]不过,错误会直接输出,不符合「该程序运行后输出 Hello, World!, 有且仅有该内容,要求分毫不差」的要求。 100 | -------------------------------------------------------------------------------- /OverflowCat/README_en.adoc: -------------------------------------------------------------------------------- 1 | = A PowerShell Solution 2 | 3 | English | xref:README.adoc[简体中文] 4 | 5 | PowerShell is the \#33 most used language in Github as of 2022 Q1 according to https://madnight.github.io/githut/#/pull_requests/2022/1[GitHut's statistics]. Let's take a look at what this scripting language can do. 6 | 7 | image:http://telegra.ph/file/cb631e2869a7540a84b87.png[screenshot] 8 | 9 | == Code 10 | 11 | 3 alphanumericals chosen: `i`, `e` and `x`. 12 | 13 | [source,powershell] 14 | ---- 15 | $i=$?+$? 16 | $e=$i+$i 17 | $xi=$x=$e+$i 18 | $xe=""+$x+$x 19 | $xx=""+$x+--$e 20 | $x=(""+$?)[$i] 21 | iex "`$ex=""``$x{$xe}"";`$xe=""``$x{$xx}""" 22 | $ii=$e+++$i 23 | $ix=$ii+$i 24 | $ei=$e*$i 25 | $x="``$x{" 26 | iex "`$e=""$x$e$ei}e$x$xi$xe}$x$xi$xe}$x$xi$ex}, $x$ii$ix}$x$xi$ex}$x$ix$i}$x$xi$xe}$x$xi$e}!""" 27 | $e 28 | ---- 29 | 30 | Semicolons are necessary if the code is written in a single line. The two are equivalent. 31 | 32 | [source,powershell] 33 | ---- 34 | $i=$?+$?;$e=$i+$i;$xi=$x=$e+$i;$xe=""+$x+$x;$xx=""+$x+--$e;$x=(""+$?)[$i];iex "`$ex=""``$x{$xe}"";`$xe=""``$x{$xx}""";$ii=$e+++$i;$ix=$ii+$i;$ei=$e*$i;$x="``$x{";iex "`$e=""$x$e$ei}e$x$xi$xe}$x$xi$xe}$x$xi$ex}, $x$ii$ix}$x$xi$ex}$x$ix$i}$x$xi$xe}$x$xi$e}!""";$e 35 | ---- 36 | 37 | === Environment 38 | 39 | *PowerShell 7.2.5* 40 | 41 | Please install it manually. Since the code uses the `"`u{x}"` syntax which was added in PowerShell 6.0, it won't work on the one preinstalled on Windows. 42 | 43 | The code can be run by either pasting it into the PowerShell console or using `.\x.ps1`. 44 | 45 | == Explanation 46 | 47 | My first thought was if it is possible to directly add or subtract the ASCII value of chars like in most C-style language. However, this is not possible. The target type must be written when it comes to explicit type conversion. `[char]65` does give us the character `A`, but there are 4 different letters. And if we want to get a number, it's `[int] something`. footnote:[https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/converting-ascii-and-characters[Converting ASCII and Characters - Power Tips - Power Tips - IDERA Community]]. 48 | 49 | === Selection of the 3 characters 50 | 51 | Then I try to find the eval function. First I found the very one `Invoke-Expression`, but that is too long. Most PowerShell commands are long. That's bad for a scripting language. Then I found that the ampersand, `&`, can execute command in a string. But it works on a single _command_, without parameters.footnote:[https://stackoverflow.com/questions/50018274/why-does-invoke-operator-and-invoke-expression-produce-different-results-for[Why does invoke operator (&) and Invoke-Expression produce different results for the same input? - Stack Overflow]] Luckily, there is an alias of `Invoke-Expression`: `iex`. 52 | 53 | === The first digit 54 | 55 | Since there is no way to turn a single char into another, the only way to get a 4th character is to split a String elsewhere. In PowerShell, a character quoted by either `''` or `"` is always a string, an array of chars. There is no .pop() in Powershell,footnote:[https://stackoverflow.com/questions/24754822/powershell-remove-item-0-from-an-array[PowerShell Remove item 0 from an array - Stack Overflow]] so we need to access it by index if we want a specific character. 56 | 57 | [source,powershell] 58 | ---- 59 | $i = $? + $? 60 | ---- 61 | 62 | - $? contains the execution status of the last command. It is `True` initially or when the last command succeeded.footnote:[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-7.2#section-1[$? - PowerShell Core - About - Automatic Variables]] 63 | 64 | - The equivalent of `==` is `-eq` in Powershell; `$i==$i` won't work. 65 | 66 | - `True` is `1` when casted to an integer.footnote:[https://docs.microsoft.com/en-us/powershell/scripting/lang-spec/chapter-06?view=powershell-7.2#64-conversion-to-integer[Conversion#Conversion to integer]] 67 | 68 | - Most lines of code are aimed at getting the digits needed. There is still much room for optimization. 69 | 70 | === Composing Unicode characters 71 | 72 | [source,powershell] 73 | ---- 74 | $x = ("" + $?)[$i] 75 | ---- 76 | 77 | - An empty string plus a boolean turns into a string. 78 | 79 | Thanks to the `u` in `"True"`, we can compose any Unicode character now. The hex for hello world string contains `c` and `f`. Just get the two first. The `$e` variable is actually: 80 | 81 | [source,powershell] 82 | ---- 83 | $e = "``u{48}e``u{6c}``u{6c}``u{6f}, ``u{57}``u{6f}``u{72}``u{6c}``u{64}!"; 84 | ---- 85 | 86 | ==== Escaping 87 | 88 | [source,powershell] 89 | ---- 90 | iex "`$ex=""``$x{$xe}"";`$xe=""``$x{$xx}""" 91 | ---- 92 | 93 | - To escape ```, `$`, `"`, just add ``` in front of them or repeat the character itself.footnote:[https://www.rlmueller.net/PowerShellEscape.htm[Escaping in PowerShell]] 94 | 95 | === Printing the result 96 | 97 | PowerShell prints out the value of the previous expression by default, so there is no need to `iex "echo"` something. 98 | 99 | === Other possible approaches 100 | 101 | - The output of a command can be assigned to a variable. Maybe we can find all the needed characters in some commands' default output. 102 | 103 | - `$error` stores previous error messages and requires 3 characters. 104 | -------------------------------------------------------------------------------- /OverflowCat/x.ps1: -------------------------------------------------------------------------------- 1 | $i=$?+$?;$e=$i+$i;$xi=$x=$e+$i;$xe=""+$x+$x;$xx=""+$x+--$e;$x=(""+$?)[$i];iex "`$ex=""``$x{$xe}"";`$xe=""``$x{$xx}""";$ii=$e+++$i;$ix=$ii+$i;$ei=$e*$i;$x="``$x{";iex "`$e=""$x$e$ei}e$x$xi$xe}$x$xi$xe}$x$xi$ex}, $x$ii$ix}$x$xi$ex}$x$ix$i}$x$xi$xe}$x$xi$e}!""";$e -------------------------------------------------------------------------------- /README-EN.md: -------------------------------------------------------------------------------- 1 | # Three Keys code dancing 2 | 3 | English | [简体中文](README.md) 4 | 5 | Free of choice three keys to complate your master pices! ~~Cue Jay Chou 'ThreeKeys' challenge~~ 6 | 7 | ## Not quite a rule 8 | 9 | 1. Candidate have free of choice three [letter / number] for coding, literally **three**. 10 | 2. Beside of your favour of choice, all ASCII symbols on keyboard are free for use. 11 | 3. The goal is print out exact `Hello, World!` case senstive, no more funny stuff this time pls. 12 | 4. Winner is select by minnimum code size. (exampt screenshoot and doc) 13 | 5. No programing language limit in general, but should present in [here](https://madnight.github.io/githut/#/pull_requests/2022/1) 14 | 6. No 'import' or implement your 'import' in three keys also. 15 | 7. No compile hack, your code should run on a baby computer. 16 | 8. New Rule: The entry function name of the statically typed languages is not restricted by the first rule, such as `int main` in C language, `public static void main` in Java, etc. 17 | 18 | ## Ranking 19 | 20 | Ref to [排名](README.md#排名) 21 | 22 | ## How to 23 | 24 | - PR or come in. 25 | - Mkdir _your name_ and dump your shit in it. 26 | - Sign [here](README.md#排名) and leave comment. 27 | 28 | ## Winner winner chicken dinner 29 | 30 | Sry, mainland China pick up only. 31 | 32 | ## Time window 33 | 34 | Now! Right now! I mean this only take a few right? 35 | 36 | ## FAQ 37 | 38 | ### Can I hack compile parameter? 39 | 40 | No, behave yourself cowboy. 41 | 42 | > 7. No compile hack. Your code should run on a baby computer. 43 | 44 | ### Can I request network? 45 | 46 | Ref to the rules, yes, but do your own homework and implement it. 47 | 48 | > 3. The goal is print out exact `Hello, World!` case senstive. no more funny stuff this time pls. 49 | > 6. No `import` or implement your `import` in three keys also. 50 | > 7. No compile hack. Your code should run on a baby computer. 51 | 52 | ### Is HTML, Brainfuck acceptable? 53 | 54 | Hell no. :) 55 | 56 | ### My language was in the statistics but not in most recent, still ok? 57 | 58 | Yep, that is a prove. 59 | 60 | ### Why can't I clone? 61 | 62 | Use follow. 63 | 64 | ```bash 65 | git clone https://github.com/InvoluteHell/ThreeKeysProgramming.git --depth=1 66 | ```` 67 | 68 | ## Know more 69 | 70 | Join us on [QQ](https://jq.qq.com/?_wv=1027&k=8aBWumWU) (672372860) / [Telegram](https://t.me/+NjDljiDRrpI4NTU1), or submit issues! 71 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 三键成码 2 | 3 | [Readme in English](README-EN.md) | 简体中文 4 | 5 | 选三个键来完成你最伟大的作品!~~蹭下周杰伦 `三键成曲` 的热度~~ 6 | 7 | ## 比赛规则 8 | 9 | 1. 参赛选手自行挑选三个「字母 / 数字」来编写代码,代码中的「字母 / 数字」**只能且必须** 有这三个(大小写算两个不同的键) 10 | 2. 除此三个「字母 / 数字」外,额外允许使用普通键盘上的所有 ASCII 符号(例如 `{`, `;` 等) 11 | 3. 该程序运行后输出 `Hello, World!`, 有且仅有该内容,要求分毫不差,注意大小写和符号 12 | 4. 上传的所有文件体积最小者获胜!(结果截图、说明文档等的不算) 13 | 5. 不限编程语言,但禁止使用极小众语言;我们对极小众的定义是:[Github 语言统计](https://madnight.github.io/githut/#/pull_requests/2022/1) 上从未出现过的语言 14 | 6. 所有的依赖条件均需是在本比赛开始前就是已有的;否则请上传,作为文件内容统计的一部分! 15 | 7. 要求使用平庸的编译/执行命令、测试环境、文件名,除平庸部分外,其余部分也需要符合上述 1, 2 两条的要求 16 | 8. 新增规则:静态类型语言的入口函数名,不受 1 中的限制。例如 C 语言的 `int main`, Java 的 `public static void main` 等 17 | 18 | ## 排名 19 | 20 | **请参赛的朋友自行修改自己的排名,未添加的视为没有参赛** 21 | **Add your rank here and show off** 22 | 23 | | 排名 | 作者 | 体积 | 语言 | 留言 | 24 | | :--: | :----------------------------------------------------------: | :-------: | :--------------: | :--------------: | 25 | | 1 | [uye](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/uye/) | 33 Bytes | PHP | 狗都不写PHP | 26 | | 1 | [bakashigure](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/bakashigure) | 33 Bytes | PHP | 狗都不写PHP | 27 | | 3 | [nocat](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/nocat) | 36 Bytes | PHP | make PHP greate again!| 28 | | 4 | [MoTIEdsuNe](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/MoTIEdsuNe)| 85 Bytes | Ruby | 大概还能再压,但是懒 | 29 | | 5 | [MistEO](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/misteo) | 91 Bytes | Bash | 好耶又超过鼹鼠了 | 30 | | 5 | [satgo1546](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/satgo1546) | 91 Bytes | C | C语言你得给劲儿啊 | 31 | | 7 | [鼹鼠](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/%E9%BC%B9%E9%BC%A0) | 103 Bytes | JavaScript | 不能被玛丽这么轻松就 | 32 | | 8 | [FiveYellowMice](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/FiveYellowMice) | 111 bytes | Ruby | 大概还能再压,但是懒 | 33 | | 9 | [Jack-Works](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/Jack-Works) | 126 bytes | JavaScript | | 34 | | 10 | [benpigchu](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/benpigchu) | 140 Bytes | Python | 大概还能再压,但是懒 | 35 | | 11 | [dantmnf](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/dantmnf) | 247 Bytes | Ruby | 本来是一个字母数字都不带,随便改改( | 36 | | 12 | [OverflowCat](/OverflowCat) | 261 Bytes | PowerShell | 为什么不试试 M$ 的功率壳呢? | 37 | | 13 | [vantis](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/vantis) | 792 Bytes | Java | 能不能写出来纯看字母选得好不好 =。= | 38 | | 14 | [GalvinGao](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/GalvinGao) | 3.3 KB | JavaScript | 感谢鼹鼠( | 39 | | 15 | [Elihuso](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/Elihuso) | 8.3 KB | JavaScript | js本来就很fuck( | 40 | | - | [许兴逸](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/%E8%AE%B8%E5%85%B4%E9%80%B8) | 124Bytes | Haskell | 我import了Data.Char【 41 | | - | [谓道之求](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/%E8%B0%93%E9%81%93%E4%B9%8B%E6%B1%82) | 138 Bytes | Matlab | 过几天就符合规则了) | 42 | | - | [Nyaacinth](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/Nyaacinth) | 248 Bytes | Lua (LuaJIT) | 做不到,但是 Lua 值得有姓名! | 43 | 44 | ## 参赛方式 45 | 46 | - 加入本 Github 组织 或者 Pull Request 提交代码 47 | - 每个人自己建一个文件夹,在里面放上代码和 README, 截图等 48 | - 修改上面的 [排名](#排名),填入自己的成绩和想说的话 49 | 50 | ## 奖品 51 | 52 | ~~- 第一名:一箱好喝的咖啡 + 10 刀 Apple/Google 礼品卡~~ 53 | ~~- 参与奖:随机抽一名,一箱难喝的无糖黑咖啡~~ 54 | 55 | ~~_10 刀礼品卡由 [@守夜人](https://github.com/nvkou) 大佬赞助,感谢老板_~~ 56 | 57 | **奖品抽完了!** 58 | 59 | ## 比赛时间 60 | 61 | 就是现在! 62 | 63 | ## FAQ 64 | 65 | ### 可以通过编译参数进行一些操作么? 66 | 67 | 请参考比赛规则: 68 | 69 | > 7. 要求使用平庸的编译/执行命令、测试环境、文件名,除平庸部分外,其余部分也需要符合上述 1, 2 两条的要求 70 | 71 | 所以几乎是不可行的,但如果你可以完全符合规则也是可以的。 72 | 73 | ### 可以请求网络么? 74 | 75 | 请参考比赛规则: 76 | 77 | > 3. 该程序运行后输出 `Hello, World!`, 有且仅有该内容,要求分毫不差,注意大小写和符号 78 | > 6. 所有的依赖条件均需是在本比赛开始前就是已有的;否则请上传,作为文件内容统计的一部分! 79 | > 7. 要求使用平庸的编译/执行命令、测试环境、文件名,除平庸部分外,其余部分也需要符合上述 1, 2 两条的要求 80 | 81 | 同样几乎是不可行的,但如果你可以完全符合规则也是可以的。 82 | 83 | ### HTML, Brainfuck 可以参赛么? 84 | 85 | 不可以。 86 | 87 | - HTML 甚至不算一门编程语言,它也从未出现在 [Github 语言统计](https://madnight.github.io/githut/#/pull_requests/2022/1) 中 88 | - Brainfuck 也未出现过,而且就算允许,也无法符合比赛规则: 89 | > 参赛选手自行挑选三个「字母 / 数字」来编写代码,代码中的「字母 / 数字」**只能且必须** 有这三个 90 | 91 | ### 我使用了某个小众语言,它在往期的 Github 语言统计中出现过,但最新季度的统计中没有它,可以么? 92 | 93 | 可以,只要在任一期出现过均可。 94 | 95 | > 5. 不限编程语言,但禁止使用极小众语言;我们对极小众的定义是:[Github 语言统计](https://madnight.github.io/githut/#/pull_requests/2022/1) 上从未出现过的语言 96 | 97 | 这条规则是为了避免比赛变成「可以直接输出 HelloWorld 的小众语言发掘大赛」或者「自创语言大赛」而设立的,并不是为了对大家进行过多的限制。 98 | 99 | ### 为什么我 clone 出错? 100 | 101 | 加上 `--depth=1` 再试试 102 | 103 | ```bash 104 | git clone https://github.com/InvoluteHell/ThreeKeysProgramming.git --depth=1 105 | ``` 106 | 107 | ## 讨论 108 | 109 | 欢迎加入 [QQ 群](https://jq.qq.com/?_wv=1027&k=8aBWumWU) (672372860), [Telegram 群](https://t.me/+NjDljiDRrpI4NTU1) ,或通过 issue, discussions 讨论! 110 | -------------------------------------------------------------------------------- /bakashigure/_.php: -------------------------------------------------------------------------------- 1 | ",'ld!'; 2 | -------------------------------------------------------------------------------- /bakashigure/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvoluteHell/ThreeKeysProgramming/a4de8bca260e2ab42d1bf4971ad1e5ea51355a1e/bakashigure/image.png -------------------------------------------------------------------------------- /bakashigure/readme.md: -------------------------------------------------------------------------------- 1 | ### 原理 2 | 老版本PHP,在你虚空调用没定义的东西的时候,会当初字符串处理,利用这一点,可以比[nocat](https://github.com/InvoluteHell/ThreeKeysProgramming/tree/master/nocat)的少两位, 3 | 其实就是少了两个引号的长度。 4 | ``` 5 | (_){_<<$.};@_=$_<<$_;$><<(%%%<<(@_[@_[@_[$.]]]|@_[$_[$.]])<<($.|@_[$.]|@_[@_[$_[$.]]]|@_[@_[@_[$.]]]))<<'llo, '<<(%%%<<(@_[@_[@_[$.]]]|@_[@_[$.]]|@_[$.]|$_[$.]|$.)<<'orl'<<(@_[@_[@_[$.]]]|@_[@_[$_[$.]]]|@_[$.])<<(@_[@_[$_[$.]]]|$.)) 2 | -------------------------------------------------------------------------------- /dantmnf/readme.md: -------------------------------------------------------------------------------- 1 | ## 1. `$$` is PID of interpreter 2 | 3 | `$$/$$ = 1` 4 | 5 | ## 2. magic variables 6 | 7 | `$.` and `$_` can be reassigned. 8 | 9 | `@_` is a plain instance variable of `main`. 10 | 11 | ## 3. lambda syntax 12 | 13 | ```ruby 14 | l1 = lambda {|args| body} 15 | l2 = ->(args){body} 16 | 17 | l1.call(args) 18 | l1.(args) 19 | l2[args] 20 | 21 | l1< ->(args){l1[l2[args]]} 22 | ``` 23 | 24 | ## 4. %-literals for string: 25 | 26 | * `[` and `]` 27 | * `(` and `)` 28 | * `{` and `}` 29 | * `<` and `>` 30 | * **Any other character, as both beginning and ending delimiters.** 31 | 32 | `%%% = ''` 33 | 34 | ## 5. `String#<<` 35 | 36 | Append the string with value provided, then return the modified string (self). 37 | 38 | `String#<<(Integer)` implies `Integer#chr`. 39 | 40 | ## 6. `$>` 41 | 42 | Defaults to `$STDOUT`. 43 | 44 | `io << value` prints `value` to `io` then return `io`. 45 | 46 | ## 7. Misc 47 | 48 | Character `'l'`, `'o'`, `'r'` are kept according to the requirements. 49 | -------------------------------------------------------------------------------- /misteo/README.md: -------------------------------------------------------------------------------- 1 | # Bash 2 | 3 | 只能 bash, shell 不行,~~鬼知道为什么 shell 跑不起来~~ 4 | 5 | ```bash 6 | bash ./misteo.bash 7 | ``` 8 | 9 | 然后终端里直接输入会有字符转义问题,所以要多加几个转义符 `\`, 下面这个是可以直接复制粘贴运行的版本 10 | 11 | ```bash 12 | tr t t<<<$(tr \!-t /-t<<<:)$(tr \!-/ d-t<<<'")),'),\ $(tr /-t +-t<<<[)$(tr \!-/ d-t<<<',/)')d! 13 | ``` 14 | 15 | ## 简单解释 16 | 17 | [tr 命令](https://www.runoob.com/linux/linux-comm-tr.html) 18 | 19 | `tr \!-t /-t<<<:` 这个把 `:` 转换成 `H`, `tr ,-t --t<<编译命令的不平庸部分 = 23字节 3 | 4 | ```sh 5 | cc c.c -DD=`tr %-_ [-~<<<:?t=` 6 | # ^^^^^^^^^^^^^^^^^^^^^^^ 7 | ``` 8 | 9 | 用了gcc的多字符字符字面量,\$可作标识符,认定int为4字节,小端序。关键是滥用了内存排布,故为UB,必须在特定编译器和环境下才能正确输出。 10 | 11 | 即使豁免了main,也躲不过printf等一众函数名。C++有cerr,但#include ,emm…… 12 | 13 | 感(chāo)谢(le)@MistEO的bash tr解和@nocat的PHP异或解! 14 | -------------------------------------------------------------------------------- /uye/1.php: -------------------------------------------------------------------------------- 1 | ;~"; 2 | -------------------------------------------------------------------------------- /vantis/_.java: -------------------------------------------------------------------------------- 1 | // Jshell 中逐条执行 2 | //v 118, H 72, e 101, l 108, o 111, ',' 44, ' ' 32, w 119, r 114, d 100, '!' 21 3 | var r=""; 4 | var v='a';v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--; 5 | r=r+v; 6 | var a='a';a++;a++;a++;a++; 7 | r=r+a; 8 | a++;a++;a++;a++;a++;a++;a++; 9 | r=r+a+a; 10 | a++;a++;a++; 11 | r=r+a; 12 | v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--; 13 | r=r+v; 14 | v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--; 15 | r=r+v; 16 | v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++;v++; 17 | r=r+v+a; 18 | a++;a++;a++; 19 | r=r+a; 20 | a--;a--;a--;a--;a--;a--; 21 | r=r+a; 22 | a--;a--;a--;a--;a--;a--;a--;a--; 23 | r=r+a; 24 | v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--;v--; 25 | r=r+v; 26 | -------------------------------------------------------------------------------- /许兴逸/m.hs: -------------------------------------------------------------------------------- 1 | import Data.Char 2 | c=20*2*2+20+10 3 | chr<$>[20*2+20+10+2,c-10+1,c-2,c-2,c+1,20*2+2+2,20+10+2,c+10-1,c+1,c+2+2,c-2,c-10,22+11] 4 | -------------------------------------------------------------------------------- /许兴逸/启动.txt: -------------------------------------------------------------------------------- 1 | 你需要使用ghci,将代码复制进ghci窗口,不能直接编译执行。 -------------------------------------------------------------------------------- /谓道之求/_.m: -------------------------------------------------------------------------------- 1 | disp(char([111-11-11-11-11++1+1+1+1+1,111-11+1,111-1-1-1,111-1-1-1,111,11+11+11-1,111-11-11-1-1,111,111+1+1+1,111-1-1-1,111-11,11+11+11])) -------------------------------------------------------------------------------- /鼹鼠/main.js: -------------------------------------------------------------------------------- 1 | ((W,H=1+1,_=H+1)=>"H"+W[11+1]+W[11+H]+W[11+H]+W[H*_]+', W'+W[H*_]+W[_*_*H]+W[11+H]+W[_**_+H]+'!')($+'') -------------------------------------------------------------------------------- /鼹鼠/readme.MD: -------------------------------------------------------------------------------- 1 | 2 | ```js 3 | $+'' // 'function $(selector, [startNode]) { [Command Line API] }' 4 | "H" // 'H' 5 | ($+"")[11+1] // 'e' 6 | ($+"")[11+1+1] // 'l' 7 | ($+"")[11+1+1] // 'l' 8 | ($+"")[1+1+1+1+1+1] // 'o' 9 | ($+"")[11+11+11] // ' ' 10 | 'W' // 'W' 11 | ($+"")[1+1+1+1+1+1] // o 12 | ($+"")[11+11-1-1-1-1] // r 13 | ($+"")[11+1+1] // 'l' 14 | ($+'')[11+11+11-1-1-1-1] // 'd' 15 | ``` 16 | 17 | 指定字符 '1', 'H', 'W', --------------------------------------------------------------------------------