【游戏算法之连连看】我最开始想到的连连看的 消除算法。。。。。【补充】

欢迎加入C/C++ QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 


心血来潮写了同名的一篇随笔,事后才发现其实算法只实现了一部分,很是懊恼,自己无法完整看穿问题,无法迅速发现自己的问题。遂以此文补充之。

望勿 误人子弟 !

且可以此警示自己!  【上一篇入口

先把上一篇中遗漏的方面总体记下:

以下情况上,该算法无法解决:

【1】如图中红色A和B两点,用原来的算法计算是没有通路的,但是其实A和B是可以连接消除的。


消除路劲如下:


【2】当两点位于边缘的时候:

就不上图了,只要是位于同一边的两点是可以直接消除的。



问题提出来了,下面把解决方案说说:

其实就是根据之前的算法,不仅限于矩形的范围。


扩大到图中绛色的矩形区域。

根据原来算法的【第四步】图解【遍历对边的是否通路】

改成不仅仅判断矩形的对边,而是扩展到矩形对边的延长线上,判断对应延长线上是否有通路,有则可以消除;

看图示:



由于不会使用专业画图工具,只能草草作图了,希望能看得懂。

想着想着发现这个算法已经比较臃肿了,于是想着如何优化算法;

下一篇补上;谢谢


欢迎加入C/C++ QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值