请教c#下扫雷的编程思路! 主要是自绘雷区。其次是随机产生的雷的位置的确定在codeproject上有源程序。如果你要,我可以发一份给你,你的邮箱是? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先我们在雷区上随机地放上雷,没有雷的地方被点击后就会显示一个数字表示它周围有几个雷,这是怎么实现的呢?我们可以把整个雷区看成一个二维数组a[i,j],如雷区:11 12 13 14 15 16 17 1821 22 23 24 25 26 27 2831 32 33 34 35 36 37 3841 42 43 44 45 46 47 4851 52 53 54 55 56 57 58我要知道a[34]周围有几个雷,就只有去检测a[23],a[24],a[25]a[33], a[35]a[43],a[44],a[45]这8个雷区是否放上了雷,仔细观察它们成在数学关系。抽象出来就是:a[i,j]的雷的个数就是由a[i-1,j-1],a[i-1,j],a[i-1,j+1]a[ i ,j-1], a[ i ,j+1]a[i+1,j-1],a[i+1,j],a[i+1,j+1] (如果超出边界再加以判断)这样的8个雷区决定的。扫雷程序还会自动展开已确定没有雷的雷区。如果a[3,4]周围雷数为1,a[2,3]已被标示为地雷,那么a[24],a[25],a[33],a[35],a[43],a[44],a[45]将被展开,一直波及到不可确定的雷区。这也是实现的关键。我们可以把数组的元素设定为一个类对象,它们所属的类设定这样的一个事件:在被展开时,检查周围的雷数是否与周围标示出来的雷数相等,如果相等则展开周围未标示的雷区。这样新的雷区展开又触发这个事件,就这样递归下去,一直蔓延到不可展开的雷区。相信在了解以上两个要点后,把雷区这个类编写完全(如添加是否有雷标记,是否展开标记,周围雷数等,双击,左右单击的鼠标事件等),实现扫雷程序应是十分简单的一件事。 delphi版的http://www.epoint.cn/Article_Show.asp?ArticleID=199java版的http://www.java.com.cn/showtopic.asp?TOPIC_ID=6281&Forum_ID=40vc版的http://www.copathway.com/vchelp/archive.asp?type_id=74&class_id=1&cata_id=11&article_id=1070&search_term=http://www.copathway.com/vchelp/archive.asp?type_id=74&class_id=1&cata_id=11&article_id=901&search_term= 关于信息修改 C# 回调函数 C# WPF DrawingContext 背景颜色 C# 进度条 继.Net平台之后的微软下一代应用程序开发平台Oslo 发布 怎样知道是否使用了触发器 datalist问题 Sql server2005返回Nvarchar类型值只能得到第一个字符! 关于画图的一个问题! 菜鸟问题:为什么要用静态方法? 迅驰cpu与其他cpu如何比较! 谁能提供<<ADO.NET高级编程>>电子书 中文版
后就会显示一个数字表示它周围有几个雷,这是怎么实现的
呢?我们可以把整个雷区看成一个二维数组a[i,j],如雷区:11 12 13 14 15 16 17 18
21 22 23 24 25 26 27 28
31 32 33 34 35 36 37 38
41 42 43 44 45 46 47 48
51 52 53 54 55 56 57 58我要知道a[34]周围有几个雷,就只有去检测
a[23],a[24],a[25]
a[33], a[35]
a[43],a[44],a[45]
这8个雷区是否放上了雷,仔细观察它们成在数学关系。
抽象出来就是:a[i,j]的雷的个数就是由
a[i-1,j-1],a[i-1,j],a[i-1,j+1]
a[ i ,j-1], a[ i ,j+1]
a[i+1,j-1],a[i+1,j],a[i+1,j+1]
(如果超出边界再加以判断)
这样的8个雷区决定的。扫雷程序还会自动展开已确定没有雷的雷区。如果
a[3,4]周围雷数为1,a[2,3]已被标示为地雷,那么
a[24],a[25],a[33],a[35],a[43],a[44],a[45]
将被展开,一直波及到不可确定的雷区。这也是实现的
关键。我们可以把数组的元素设定为一个类对象,它们
所属的类设定这样的一个事件:在被展开时,检查周围
的雷数是否与周围标示出来的雷数相等,如果相等则展
开周围未标示的雷区。这样新的雷区展开又触发这个事
件,就这样递归下去,一直蔓延到不可展开的雷区。
相信在了解以上两个要点后,把雷区这个类编写完全
(如添加是否有雷标记,是否展开标记,周围雷数等,双
击,左右单击的鼠标事件等),实现扫雷程序应是十分简
单的一件事。
http://www.epoint.cn/Article_Show.asp?ArticleID=199
java版的
http://www.java.com.cn/showtopic.asp?TOPIC_ID=6281&Forum_ID=40
vc版的
http://www.copathway.com/vchelp/archive.asp?type_id=74&class_id=1&cata_id=11&article_id=1070&search_term=http://www.copathway.com/vchelp/archive.asp?type_id=74&class_id=1&cata_id=11&article_id=901&search_term=