先上源码,版本是ES6
13行常规(700bytes) |
shortest snake game.html |
压缩后的500bytes(当然两处document还是可以用eval压缩的) |
index.500bytes.html |
之前很火的20行代码地址(有BUG)(900bytes) |
hj7jay/article/details/51011269 |
一维数组700char
(0,0)位置的蛇身用0表示,(0,1)用1,(1,0)用10表示,以此类推
因为就13行js,
第4行 是声明
第5行 比较难理解,可以把?:运算符,拆分为4行if语句;可以参考下面的 二维数组 的版本
第9行 0|x 和 ~~x 和 x>>0 都能去除x(number)的尾数
应该算易读了
|
颜色效果
|
说明
如果自己要写的话:要注意两点
- 蛇尾应该比蛇头先消失,蛇头应该比食物先生成,
- 蛇不能走当前相反的方向
可以用长度为4的蛇进行测试
代码风格
- 省去没必要的标签
https://google.github.io/styleguide/htmlcssguide.html#Optional_Tags
- if() return只用一行
- 除了键盘响应那里用3目运算符能省3行之外,其他地方都没必要用
二维数组
以上的都是用一维数组实现的,下面的用二维数组写;要简化也能简化到17行以内900char以内(比20行的那个短就是了),不过没有必要
带注释的1100char
|
七彩的(主要是比较好看)1100char
|
原文地址:https://www.cnblogs.com/migeater/p/9306843.html
时间: 2024-10-16 04:40:31