03 2012 档案
摘要:贪吃蛇的原型是在windows控制台下即在字符模式下利用C++编写贪吃蛇。主要实现的效果就是,用户利用'w'、's'、'a'、'd'分别表示上下左右,当蛇碰到障碍物时通不过,当碰到食物时,分数加1,同时,在另外一个地方生成新的食物,并且身体会增加一个字符的长度。在实现该原型前必须实现两项技术:字符上色,这个利用了网上的代码字符位置控制什么意思呢?主要是因为考虑到在通常情况下,在控制台下编写的程序,默认都是黑白色的,颜色单一,而且蛇和障碍物、食物之间无法被互相区分,所以加上更多的颜色,视觉上会更舒服些。字符位置控制呢,是必不可缺的。
阅读全文
摘要:前段时间写的一个二进制打字程序,之所以弄这个主要是因为我的一个同学说过要是键盘上只有两个键(0或1),那编起程序来那该多累啊。后来我觉得好玩,就随便编了一个。主要实现的效果: 用户利用数字键的'1'、'2'('1'对应二进制值'1','2'对应二进制值'0')输入7位二进制数字(不显示在屏幕上),输完后,程序将输出二进制对应的ASCII字符到屏幕上。退出时,请输入'1111110'即可。下面我就具体分析一下我的源代码:1 这段主要是判断程序过程中是否会出现异常 2 //中断 3 vo
阅读全文
摘要:最近在实现flash的播放音乐的功能,这就涉及到js和as交互的问题,因为要实现动态改变音乐文件的功能。但是在实现js传值给flash时,flash在获取值存在几率性,有时可以获得到,有时有获取不到。后来发现,其实是由于<object ...></object>所对应的flash没有加载完,在js就开始调用flash中的ExternalInterface.addCallback()所开放的方法,导致flash还没获取到值时就开始播放音乐,此时,当然播放不了。为了保证能正常传值,就必须在flash加载完后才传值,可是如何判定呢?其实只要利用flash开放的js的接口Per
阅读全文
摘要:标题有些说不明白,意思是这样的:给定一个数字,然后将其倒置,再和原来的数相加,得出的数如果不是回文数,则将新的和倒置,再和原来的数相加,以此循环,直到求出和为回文数,并输出整个过程。 这个过程有2个技术点:1. 将数字倒置;2. 判断数字是否是回文数。我这里偷了懒,利用的是将数字看作是字符串,所以实现起来,难度不大。1. 将数字倒置:1 function getPostNumber(num) {2 var postNumber = [];3 for(var i = 0; i < num.length; i++) {4 postNumber.push(num...
阅读全文
摘要:文件上传很常见,也有好些方法,不过我见过的大多是基于flash的,也有用XMLhttpResponse来提交文件的,其实大可不必这么麻烦,我这里介绍一种更具兼容性的用法,利用iframe来曲线实现无刷新页面文件上传功能,这种方法其实也很常见了。 iframe上传文件原理是这样的:首先input file控件本身是被表单包含的,表单属性必须设置为enctype="multipart/form-data",才能上传任意文件。但是仅仅有这个还不行, 因为提交表单后,它会自动刷新页面,为了不让它离开本页,我们可以在这个提交的页面上动态生成一个隐藏的iframe,但是别忘了在表单上再
阅读全文
摘要:有时候需要实现一个功能,使得数据以不同的方式显示,好像有点说不清楚,举个例子吧。比如:给定一个包含了所有课程的数据,在A页面上是一种排版方式,在B页面上是另外一种排版方式,这时候可以采用模板的方式将数据渲染到页面上。但是这就涉及到一个模板的创建和解析的问题。 我这里自定义了在html标签中嵌入变量的方式是这样的:<div>{list}</div>,等渲染到页面时,将{}所包含的变量转换为具体的值,这样就可以简单实现模板解析的过程。那如何将其中的变量转换为实际值呢?一种简易的方式是通过正则表达式,将{list}变为list,然后再对其赋值。具体方法如下:1 var tem
阅读全文
摘要:在用原生js创建dom标签后,无法多次添加子标签,感觉非常奇怪,于是查看appendChild()的用法。 通常添加子标签的方式是这样的: 1 parentElem.appendChild(subElem); 但是要注意的是: 在添加前,subElem必须存在,不一定是显示到页面内,但一定要被创建。但是出现问题的根本所在是下一条:如果subElem已经被添加了,那么,再执行添加操作时,不会再被添加,只会更改subElem的位置状态,什么意思呢?比如: 页面内只有1个div1, 此时若第一次添加新的标签div2到页面body内,则div2会排在div1的后面,与div1属于平级。如果...
阅读全文
浙公网安备 33010602011771号