dazuiniu's blog

cat /dev/dazuiniu/random

大嘴牛玩“闹残”

View Comments

在“关于我”的页面中加入了大嘴牛的邮件信息,为得让大嘴牛显得GEEK一点,只写上自己的XXX@XXX岂不是太没有创意了 ;-) 于是,就做了这么个用brainfuck语言写就的签名,但是用brainfuck语言自己一点点地写也太土了,不符合程序员三大优点之一的“懒惰”,或者活程序员所习惯的应该是让程序来做这些事情,也被称之为meta-programming,这点上好像Lisp最有发言权,一个逗号(,)组成的macro可以扩展成极其复杂的东东。

有人说什么是brainfuck语言?用中文翻译过来,这个应该叫做“闹残”语言,这个玩意说白了就是一群程序员在无聊至极中发明的语言,语言只有几个基本的运算符号,具体的详细讲解可以参见Wiki

这个程序利用C++写的,地址在这里,实现的有点quick-dirty的风格,没有仔细考虑所有的情况,应该说一定会有bug的,但不管怎么说,这个程序还是成功的满足了大嘴牛的当前的要求。

这个程序将输入得到的可见的ASCII字符串转换成一个Brainfuck源程序,然后通过运行这个源程序,该程序会输出一个字符串,而这个字符串真是前面传入的ASCII字符串。

有人说了,这不是拖裤子放屁嘛?Bingo!要的就是这个效果。;-)

实现的思路主要是按照一个一个字符的输出,输出的时候可以利用上一次输出的字符数值,关键的是这两者之间的差值应该用何种方式来填补。大嘴牛现在使用的是什么简单的方式,把差值变成10的倍数的形式,小于10的部分直接使用+或者-进行填补,但是10的倍数则利用三个cell的空间来做三重循环实现之。至于是否应该选择10,或者还是其他的数值更加优化,大嘴牛没有进行详细的考量,但是简单的思路就是这样子。

噢。最后需要感谢的是这个网址,它有网上在线的闹残语言执行器。如果大家想知道大嘴牛的邮件或者想自己试试看闹残语言的,可以利用这个网站。

Written by dazuiniu

May 15th, 2010 at 10:11 pm

Posted in all about dev

Tagged with , , , ,

  • Yousb

    典型装B男

  • dazuiniu

    装装蛮好,感觉不错。哈哈哈

blog comments powered by Disqus