您的位置:首页 > 大数据 > 人工智能

第一篇博客 flash AS3.0 做的BrainFuck编译器

2012-07-29 19:59 471 查看
如果QQ空间和人人日志不算博客的话,那我这还是第一次写这东西。居然开通博客3天内不能发,严重打击了我的心情啊。想当年我帐号被爆导致现在邮箱里还有好多垃圾邮件的时候,我都没说什么,很不爽啊。

牢骚完毕,以下是正题
==================================抑郁的分割线============================================
我学编程的启蒙是从flash开始的,某年某月的某天晚上瞬间开窍,从彼踏上程序猿的不归路。刚刚还有哥们看我flash环境特别像PS界面,其实好多人不知道flash可以写代码,我也是大学后才知道,flash下的语言是脚本,学名叫Action
Script。但是有人问我,我的东西用什么写的时候我一般会告诉他flash。目前在我的世界里大部分的程序还是flash完成的,原因是他是我的启蒙啊,感恩啊,无论如何也要支持到底啊。当然我不指望fl能弹出个光驱之类的事情,不过fl可以和VC通信,华丽的界面也可以操作硬件。顺便说下,我第一个Android软件也是flash写的。

唠叨完我和flash的感情,现在隆重推出我的最不靠谱,最无聊的flash(AS3)作品:BrainFuck编译器。对于BrainFuck不多说,不知道BF的可以Google一哈,起码在谷歌上百度一下,很详细,本编译器参考百度百科而来。这是本人特别无聊的时候写的,目前有两个BF的功能没有实现,不过现在输出个“Hello
World!”是木有问题的。

以下放出“Hello World!”代码

==================================无聊的分割线=============================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

>++++++++++++++++++++++++++++++++<

+++++++.<++++.+++++++..+++.

>>.<+++++++++++++++.<.+++.------.--------.

>>+.

“Hello World!”截图



顺便斗胆贴出flash源代码,Action Script3.0的,源文件就不放了,就几个按钮几个框。

var Arr:Array = new Array(5000);

var cArr:Array = new Array();

var Arri;

var cArri;

function ArrInit()

{

vari = 5000;

while(i)

{

Arr[--i]= '0';

}

}

getIn.addEventListener(MouseEvent.CLICK,getInClick);

function getInClick(evt)

{

cArr[cArr.length]= cInput.text;

cInput.text= "";

}

function getASCII(_Data)

{

//varString

return(String.fromCharCode(_Data));

}

Build.addEventListener(MouseEvent.CLICK,BuildClick);

function BuildClick(evt)

{

Building();

}

function Out(_Data)

{

Output.appendText(getASCII(_Data));

}

function Building()

{

varIn = Input.text;

varl = In.length;

vari = 0;

Output.text= "";

Arri= 0;

cArri= 0;

ArrInit();

while(l-i)

{//trace(In.charAt(i))

switch(In.charAt(i))

{

case'<' :

Arri--;

break;

case'>' :

Arri++;

break;

case'+' :

Arr[Arri]++;

break;

case'-' :

Arr[Arri]--;

break;

case'.' :

Out(Arr[Arri]);

break;

case',' :

Arr[Arri]= cArr[cArri].charCodeAt();

cArri++;

break;

case'[' :

break;

case']' :

break;

}

trace(Arr[Arri]);

i++;

}

varstr="!"

trace(str.charCodeAt());

}

希望高手批评指导。感谢您光临本人博客,感谢您阅读本人第一篇博客,下次我放个稍有技术含量的东西。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: