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

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


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

望勿 误人子弟 !

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

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

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

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

【游戏算法之连连看】我最开始想到的连连看的 消除算法。。。。。【补充】_第1张图片

消除路劲如下:

【游戏算法之连连看】我最开始想到的连连看的 消除算法。。。。。【补充】_第2张图片

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

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



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

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

【游戏算法之连连看】我最开始想到的连连看的 消除算法。。。。。【补充】_第3张图片

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

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

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

看图示:

【游戏算法之连连看】我最开始想到的连连看的 消除算法。。。。。【补充】_第4张图片


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

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

下一篇补上;谢谢


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




你可能感兴趣的:(游戏,编程,C++,算法,解决方案)