扫雷的核心思想就是递归,点击一个格子,四周八个格子都会进行检测雷的操作,直到不能检测,用的是广度搜索算法。因为不想写太长的博客,技术也有限,所以这是个简易的扫雷,可扩展性也不好,大家看看思想就好,有兴趣可以用一些架构的思想做一个高大上的扫雷,做完可以联系我交流一下。以下是代码,有注释,不解释。
注:地图的生成可以参考我上一篇博客,写的是TXT格式的存储和读取,存的就是地图信息。
using UnityEngine;
using
System.Collections;
using
UnityEngine.EventSystems;
using
System;
using
UnityEngine.UI;
///
<summary>
///
格子类
///
</summary>
public
class
Grid
{
public
bool
isLei;
//是否是雷
public
bool
isClick;
//是否点击了
public
byte
Count;
//周围有几个雷
}
public
class
Map
:
MonoBehaviour
,
IPointerClickHandler
{
[
SerializeField
](意义是在Inspect面板显示出来,但是再其他脚本无法调用)
private
Transform
gridContainer;
[
SerializeField
]
private
GameObject
gridPrefab;
public
const
int
RowCount = 10;