在HTML5全栈开发中用十几行代码做贪吃蛇

  教你如何在HTML5全栈开发中用十几行代码做出贪吃蛇,直接上源码:

<!DOCTYPE
html>
<html>
<body>
<canvas id="myCanvas" width="240"
height="240" style="border:1px solid #d3d3d3;">
Your browser does not
support the HTML5 canvas tag.
</canvas>
<script>
var
ctx=document.getElementById("myCanvas").getContext("2d"),r =
[{x:10,y:9},{x:10,y:8}],co=40,e=null;
ctx.shadowBlur=20,ctx.shadowColor="black";
setInterval(function(){
if(check(r[0],0)
|| r[0].x < 0 || r[0].x >= 24 || r[0].y < 0 || r[0].y >=
24)return;e!=null&&((co==40&&r[0].x==e.x&&r[0].y+1==e.y)||(co==38&&r[0].x==e.x&&r[0].y-1==e.y)||(co==37&&r[0].x-1==e.x&&r[0].y==e.y)||(co==39&&r[0].x+1==e.x&&r[0].y==e.y))?(r.unshift(e),e=null,r.unshift(r.pop())):(r.unshift(r.pop()));
(co==40
||
co==38)?(r[0].x=r[1].x,r[0].y=r[1].y+(co==40?1:-1)):(r[0].x=r[1].x+(co==39?1:-1),r[0].y=r[1].y);
ctx.clearRect(0,0,240,240);
if(e)ctx.fillRect(e.x*10,e.y*10,10,10);
for(var
i=0;i<r.length;i++)ctx.fillRect(r[i].x*10,r[i].y*10,10,10);
while(e==null
|| check(e))e={y:(Math.random()*24 >>>0),x:(Math.random()*24
>>>0)};
if(check(r[0],0) || r[0].x < 0 || r[0].x >= 24 ||
r[0].y < 0 || r[0].y >= 24)alert("game over\nYou get ["+(r.length-2)+"]");
},100);
document.onkeyup = function(event){co=event.keyCode>=37
&& event.keyCode<=40 && (Math.abs(event.keyCode-co) !=
2)?event.keyCode:co;}
function check(e,j){ for(var
i=0;i<r.length;i++)if(j!=i && r[i].x==e.x &&
r[i].y==e.y)return true; return
false;}
</script>
</body>
</html>

时间: 2024-10-24 05:24:58

在HTML5全栈开发中用十几行代码做贪吃蛇的相关文章

为什么要使用HTML5全栈开发去开发app

这里我极力推荐公司开发人员专研HTML5全栈开发技术,并用于开发app应用软件.为什么呢?按道理,html5现在还没有被广泛使用,不必太看重.然而,事实并非如此,html5拥有着很多开发优点,它代表着未来app开发趋势,使用Html5开发app更有前景. 一:简单.清晰的代码 如果你对于简答,优雅,容易阅读的代码有所偏好的话,html5绝对是一个为app开发量身定做的东西.Html5 app开发,应用代码可以简单清晰且富于描述的应用代码.符合语义学的代码允许你分开样式和内容. 二:存储得当 HT

GameBuilder开发游戏应用系列之100行代码实现贪吃蛇

在线预览:http://osgames.duapp.com/apprun.html?appid=osgames1-801422234293697 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-801422234293697 微信扫描: 运行截图: 除了重力感应游戏,GameBuilder开发传统的游戏也毫不逊色,作为一个怀旧的人,总是对这类游戏情有独钟. 贪吃蛇主要靠一个[UICanvas]来实现,前面一片博客GameB

HTML5全栈开发应用程序的优点

HTML5全栈开发代表着未来app开发趋势优点都在这啦!这里我极力推荐公司开发人员专研HTML5全栈开发技术,并用于开发app应用软件.为什么呢?按道理,html5现在还没有被广泛使用,不必太看重.然而,事实并非如此,html5拥有着很多开发优点,它代表着未来app开发趋势,使用Html5开发app更有前景. 1.网络标准 HTML5本身是由W3C推荐出来的,它的开发是通过谷歌.苹果,诺基亚.中国移动等几百家公司一起酝酿的技术,这个技术最大的好处在于它是一个公开的技术.换句话说,每一个公开的标准

MEAN全栈开发 之 用户认证篇

作者:Soaring_Tiger http://blog.csdn.net/Soaring_Tiger/article/details/51418209 本篇将覆盖以下内容(阅读本文需要有一定Express.Mongoose基础): 在 MEAN全栈开发中添加用户认证 在Express中使用Passport模块管理用户认证 在Exrpess中生成JSON Web Tokens(JWT) 实现用户注册与登录 在Angular当中使用 local storage管理用户session 1.1 在ME

JavaScript —— 下一代物联网全栈开发

作者简介:李知周,中国科学院微系统与信息技术研究所博士,物联网早期创业者,发起了开源物联网项目 Openfpgaduino,目前在国际知名投资银行从事基于大数据与机器学习的网络安全开发. 本文为<程序员>杂志原创文章,未经授权,请勿转载 关注公众号"CSDN 物联网开发"微信公众号,了解更多物联网资讯与干货 Jeff Atwood 曾提出"任何能够用 JavaScript 实现的应用,最终都必将用 JavaScript 实现"他对 JavaScript

不做全栈开发工程师

最近老是听到一个词:全栈开发工程师,英文是:Full Stack Developer.仔细分析,所谓的全栈开发工程师或许也分为两种:一种是做小公司小网站,一个人全包,什么都做,自然什么都会:另一种是大公司大网站,需要整体架构设计师,分工明细,很多人做,但需要人统筹.显然这是两种境界,初级水平是无一精通:高级是无一不精. 在十几二十年前,一个人一台电脑,搞定一个软件,一个网站.那个时候没有那么多细分,也就是客户端-服务器,或者浏览器端-服务器端,最多加上一个数据库端.我有一位老领导,一直沉浸在二十

全栈开发与敏捷

前言: 好久没有写博文了,一直在研究和实践敏捷也有三年多了,因此又有了一些感悟,希望和大家分享. 前天与一个朋友关于全栈开发与敏捷的关系,有了一点小小的争议,现在就把我的观点贴到博文里,希望看到的朋友给点建议和指教. 以下是我个人的观点: 全栈是一个理想,或者是说一个个人发展的极限挑战.能否有人做到样样精通?这是无需回答的. 敏捷强调一专多能,目的是为了平衡开发的负荷,减少开发中的瓶颈.比如,如果测试目前是瓶颈的话,那么开发人员应该放下手里的开发任务,主动去帮助测试人员.这里的帮助可能是去做测试

全栈开发必备的10款Sublime Text 插件

全栈开发必备的10款Sublime Text 插件 来源:梦想天空博客园   时间:2014-11-28 10:16:28   阅读数:673734 分享到:14 [导读] Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.Sublime Text 更妙的是它的可扩展性.所以,这里挑选了全栈开发必备的10款 Sublime Text 插件,让本已精彩的编辑器更加好用,全端开发的码农们不用去网上一个个找了,赶紧收藏起来吧. Sublime Text 具

全栈开发工程师,就是个神话~

原文地址 这篇文章很有道理,如果放在十几年以前,说全栈工程师,还可以,那时的 Web 站点的访问量不是很大,大都是一台 Web 服务器和一台数据库服务器,采用分离的结构,更有甚者,Web 服务器和数据库服务器是同一台服务器,一个工程师,就可以完成所有的工作,包括,用 Oracle 或 MySQL 建立数据库,编写 Web 的前端和后端,前端包括 HTML,CSS,JavaScript,后端则可采用 Java,PHP,.NET,更有用 Lisp 的.现在的大网站,都是由当初的小网站起步的,即便是