GitHub:github.com/ordinaryA/A…javascript
- 雷:emmm 就是一颗雷
- 数字:以当前格为中心的九宫格内雷的数量
- 空白:以当前格为中心的九宫格内没有雷
- 雷:emmmm 游戏结束
- 数字:显示当前数字,提示用户雷的数量
- 空白:须要以当前点击格子为中心向外递归寻找类型为数字的格子来中止递归,如图
[x,y]
,则以它为中心的另八个格子坐标为:const arr = [
//获取九宫格数据
[x - 1, y - 1], //左上
[x, y - 1], //中上
[x + 1, y - 1], //右上
[x - 1, y], //中左
[x + 1, y], //中右
[x - 1, y + 1], //左下
[x, y + 1], //中下
[x + 1, y + 1] //右下
];
复制代码
const [maxX, maxY] = this.boardSize; //棋盘的边界值
const filterArr = arr.filter(
([posX, posY]) =>
!(posX < 0 || posY < 0 || posX >= maxX || posY >= maxY)
);
复制代码
点击红色向外遍历 => 紫色箭头 => 绿色箭头(找到数字格)=> 跳过绿色箭头的递归 => 开始黑色箭头的递归java
emmmm 不要在乎画风。git
- 只有当旗子数量大于或等于点击格的数字时才判断
- 旗子误插时则分别显示三种状态:
正确的雷(正常显示) 排掉的雷(绿色背景的雷) 错排的雷(红色背景的雷)github
const bird = {
top, //鸟的top值
right, //鸟的right值
sports, //记录运动状态来更改跳跃和下坠动画
};
const pipe = {
right, //管道的right值
topPipeTop, //上管道的top值
topPipeSrc, 上管道的资源地址
bottomPipeTop, //下管道的top值
bottomPipeSrc, //下管道的资源地址
isCross, //管道是否已被小鸟经过
};
复制代码
push
一个管道对象,unshift
掉首项当小鸟经过管道时存在三种状态数组
isCross
字段,已被小鸟经过。接下来就好办了,写一个动画让背景和小鸟动起来,设置定时器让管道动起来,一切就完成啦!数据结构
首先须要定义一个二维数组来存放蛇头与蛇身的坐标dom
[~~(Math.random() * (棋盘宽度 - 蛇长 - 1) + 1),~~(Math.random() * (棋盘高度 - 蛇长 - 1) + 1)];
[[10,10],[10,11],[10,12],[10,13],[10,14]]
while
遍历出一个不属于🐍身的坐标就行了根据移动的方向使蛇的首项的当前轴坐标+1,并删除蛇集合的尾项,蛇就动起来啦!咱们须要:动画
接下来能够给贪吃蛇🐍加上一些因(花)吹(里)斯(胡)汀(哨)的功能了!this