1、算法环境:
这是一个判断元素匹配的算法。
假设三个相同元素连在一起可以消除,且不可以斜向消除。
2、思路:
通过二维数组的循环遍历得到一个 x * y 的矩形。
x轴从左到右递增,y轴从上到下递增。
以第一个选中的元素为起点开始遍历。
创建一个二维数组用来表示元素位置(items[ , ]),
创建Item类,定义X、Y、Type(元素种类)。
创建三个List用来存储相同元素:横向遍历到的所有相同元素,纵向遍历到的所有相同元素,
以及该算法返回的最终可消除元素(即横向List+纵向List)。
3、下面是代码:
` /// <summary>
/// 匹配算法
/// </summary>
/// <param name="sweet">选中的元素</param>
/// <param name="newX">该元素的X轴坐标</param>
/// <param name="newY">该元素的Y轴坐标</param>
/// <returns></returns>
public List<GameItems> MatchItems(GameItems item, int itemX, int itemY)
{
//横向遍历到的所有相同元素
List<GameItems> matchRowItems = new List<GameItems>();
//纵向遍历到的所有相同元素
List<GameItems> matchLineItems = new List<GameItems>();
//最终可消除元素