连连看游戏核心算法分享
世界杯实时直播 6137 2026-08-09 14:06:12

本文主要分享连连看游戏核心算法

源码链接

https://gitee.com/bean_game/link

游戏分析

游戏消除逻辑

玩家点击两个方块,如果方块一样,且方块间的连线拐弯个数不超过2则认为可消除。

游戏消除代码处理方式:

首先把场上所有方格数据id存入二维数组,若点击的两个方块数据id相同则进行连线检测。

检测逻辑:两个方块上右下左平移到同一行或同一列,中间没有阻拦即认为连线拐弯个数不超过2。

收集两个方块上下左右可平移的位置的x、y坐标数组。

循环筛选出两数组中同x和同y的位置坐标。

如同x则判断在x轴上y1和y2之间是否存在其他方块,如不存在则判断为可消除。如同y则同理判断y轴上x1和x2之间的方块。

通过刚才检测可消除过程中得到的坐标数组可作为显示连线的坐标。

自动检测可消除方块组:

把上述的消除检测代码抽离出来,循环找出相同的方块进行消除检测,检测通过的即为可消除方块组。

游戏生成逻辑

把所有方块id数据打乱放入二维数组,检测是否存在可消除的即可。

(生成可解的棋局)循环检测二维数组进行消除,如遇到不可解时则打乱当前数据同时覆盖原有数据,直到消除所有方块,则当前棋局为可解棋局。

部分想法与疑问

该游戏如果同样的方块id数据想进行难度的控制要如果去生成与评估棋局?

想法:该游戏的核心为寻找可消除的相同方块。一般是先找到第一个方块,然后去找到相同的方块去思考是否可消除,那么是否可以把相同方块之间的距离作为评估难度的标准,比如有4个相同的方块,计算4个方块两两之间的距离然后平均得到一个值。依次类推循环所有类型的方块统计一个平均值,通过调整方块的位置来控制这个值是否就可以实现难度控制?

Copyright © 2022 98世界杯_乌拉圭世界杯 - cy078.com All Rights Reserved.