加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:35:47 所属栏目:百科 来源:网络整理
导读:??? 如果 QQ 空间和人人日志不算博客的话,那我这还是第一次写这东西。居然开通博客 3 天内不能发,严重打击了我的心情

??? 如果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());

}

?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读