第一篇博客 flash AS3.0 做的BrainFuck编译器
??? 如果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()); } ? 希望高手批评指导。感谢您光临本人博客,感谢您阅读本人第一篇博客,下次我放个稍有技术含量的东西。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |