纯js 连连看,多套图片连连看

本文介绍了作者如何利用JavaScript开发连连看游戏的过程,重点在于解决判断连接线段不超过3、死锁检测以及图片分配等难点。作者通过逻辑分析,实现了直线连接、转折点连接以及死锁时的自动解锁功能,并分享了游戏的在线试玩链接。
摘要由CSDN通过智能技术生成

自己数学知识学得不多,复杂的算法对数学要求高。近来先锻炼自己的逻辑思维,琢磨这自己写个小游戏,选择了连连看。


连连看的实现有几个难点,一个一个来分析,解决。

1、判断连接的线段数不能超过3,即连线有2个转折点

我用一个数组来保存连连看图片列表,值0 表示图片已消去,大于0 表示第几张图片,游戏图片区域是8*8个格子的,数组长度设置成 10*10 ,因为连连看连线可以在游戏图片区域外。

首先判断2个图片是否可以一条直线相连,这是最简单,2个图片相同,且连线路径都没有其他图片,就相连可以消去

再判断 线段数为2的情况,即连线有1个转折点:先找到转折点,如:(x1,y1) (x2,y2) 的转折点为:(x1,y2) (x2,y1) 

判断转折点的图片已消去,且转折点 与点击的2个点都可以连接的时,这2点就可以通过此转折点连接。


稍麻烦的是连线有2个转折点的情况:先找出点击的2个点上下左右4个方向的空白点,分别保存到一个数组。遍历2个数组,只要一个数组中的任意一点和另外一个数组中的任意一点可以连接,那么点击的2个点和这2个数组中可相连的2个点可以有2个转折点相连。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值