第一篇博客 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());
}
希望高手批评指导。感谢您光临本人博客,感谢您阅读本人第一篇博客,下次我放个稍有技术含量的东西。
牢骚完毕,以下是正题
==================================抑郁的分割线============================================
我学编程的启蒙是从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());
}
希望高手批评指导。感谢您光临本人博客,感谢您阅读本人第一篇博客,下次我放个稍有技术含量的东西。