标题:C#之雷区拓展
只看楼主
CMYK
Rank: 2
等 级:论坛游民
帖 子:67
专家分:74
注 册:2011-9-19
结帖率:46.15%
已结贴  问题点数:20 回复次数:3 
C#之雷区拓展
用C#做扫雷的时候如何实现在点击的雷区拓展如图:
麻烦大家给个思路
搜索更多相关主题的帖子: 拓展 如何 
2011-10-27 22:59
CMYK
Rank: 2
等 级:论坛游民
帖 子:67
专家分:74
注 册:2011-9-19
得分:0 
咕~~(╯﹏╰)b
又没人看么……
2011-10-28 12:37
qubo1982
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:367
专家分:1132
注 册:2009-3-18
得分:20 
这个,要看你的雷是怎么做的
给你个参考

程序代码:
void Check(Kill k)
{
    if (k.IsCheck)
        return;
    this.IsCheck = true;//这里一定要标记它已检测过的状态,不然会无限回调的
    if (k.CheckAround()//检查周围8格,如果全没雷)
    {
        ...
        //一些要做的事情,标记它不是雷,把它翻出来一类的
        foreach(Kill k1 in k.Arounds)
        {
            Check(k1);//回调这个方法检查它周围的雷
        }
    }
    else
        return;
}


[ 本帖最后由 qubo1982 于 2011-11-1 09:32 编辑 ]
2011-11-01 09:30
CMYK
Rank: 2
等 级:论坛游民
帖 子:67
专家分:74
注 册:2011-9-19
得分:0 
回复 3楼 qubo1982
        foreach(Kill k1 in k.Arounds)
        {
            Check(k1);//这个方法改变了k的值也就该变了下次循环k.Arounds的值,于是程序就只会向k.Arounds[0]这个方向拓展,不会拓展其它7个方向
    }
2011-11-06 21:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-353640-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069871 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved