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

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

       牢骚完毕,以下是正题

==================================抑郁的分割线============================================

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

       唠叨完我和flash的感情,现在隆重推出我的最不靠谱,最无聊的flashAS3)作品: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());

}

 

       希望高手批评指导。感谢您光临本人博客,感谢您阅读本人第一篇博客,下次我放个稍有技术含量的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值