- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言扫雷小程序概要设计
C语言扫雷小程序概要设计2011-12-06 xu_ke@bupt.edu.cn1.数据结构设计使用三个二维数组(可以改成动态分配大小的数组,这里固定大小)int Bomb[10][10] = {0};//地雷分布矩阵int Count[10][10] = {0};//周边地雷计数矩阵char Display[10][10] = {0};//显示字符的矩阵1.1地雷分布矩阵BombBomb[10][10]表示格子的哪个位置上有雷,如下图矩阵,Bomb[3][3] == 1和Bomb[4][4]==1则说明这两个位置有雷。可以使用随机数函数生成随机数x和y,然后在Bomb[x][y]的位置上布雷。00000000000000000000000000000000010000000000100000000000000000000000000000000000000000000000000000001.2周边地雷计数矩阵CountCount[10][10]表示每个格子周围的地雷总数,根据Bomb数组可以计算出Count数组的取值。下面是(1)中Bomb矩阵对应的Count矩阵00000000000000000000001110000000112100000012110000000111000000000000000000000000000000000000000000001.3显示矩阵DisplayDisplay[10][10]表示格子的每个位置上应该显示什么符号,这是一个字符二维数组,根据每次挖开的位置,以及Count数组和Bomb数组计算得出。例如,可以定义几个字符作为该数组的取值:‘#’表示格子未翻开时的显示‘1’~’8’表示翻开格子后没有雷,字符显示的周边雷数‘*’表示翻开格子后有雷的显示‘’(空格)表示翻开格子后周边没有雷时的显示‘!’表示该位置被标识的显示2.主要函数设计2.1 void displayGrids()功能:在屏幕上显示当前的格子矩阵设计:voiddisplayGrids(){二层循环,遍历Display数组{printf(Display[i][j]);如果一行结束printf(“\r\n”);}}2.2 void initBomb()功能:初始化Bomb矩阵,随机布雷设计voidinitBomb(){while(i雷的总数){随机生成 x, y如果x,y的位置已经有雷continue;Bomb[x][y] = 1;i++;}}2.3 void initCount()功能:根据Bomb矩阵,初始化Count矩阵设计:voidinitCount(){二层循环,遍历Bomb[][]{如果Bomb[][] 的(i, j)位置有雷{for( (m, n) 是 (i, j) 周围的8个格子){Count[m][n] ++;}}}}2.4 void initDisplay()功能:初始化显示矩阵设计:数组初始化成‘#’2.5 void init()功能:发起各矩阵的初始化,在开始时调用设计:voidinit(){initBomb();initCount();initDisplay();}2.6 void digGrid(int x, int y)功能:挖开一个指定坐标的格子参数:x 矩阵的行坐标y 矩阵的列坐标voiddigGrid(int x, int y){如果Bomb[x][y]位置有雷Display[x][y] = ‘*’否则{如果Count[x][y]是0递归的翻开(x,y)周围的格子否则根据Count[x][y]的取值给Display[x][y]赋值}}2.7 void signGrid(int x, int y)功能:标识一个指定坐标的格子参数:x 矩阵的行坐标y 矩阵的列坐标2.8 intcheckGameState()功能:检查所有的格子,看游戏是否结束返回值:1表示成功结束2表示失败结束0表示游戏继续自己设计2.9 void main()功能:主函数设计:void main(){初始化各矩阵init()显示格子矩阵displayGrids()循环等待用户输入{提示用户输入操作字符;switch(输入的操作字符){case 挖雷操作: 提示,输入坐标x, y;digGrid(x, y);break;case 标识操作……case 退出操作……}显示矩阵displayGrids()获得状态checkGameState()如果成功结束则打印提示信息,退出如果失败结束则打印提示信息,退出如果未结束则继续循环}}
您可能关注的文档
- B2B平台如何寻找潜在客户.docx
- B2B模式的的优缺点及应用.doc
- B2B指的是商家对商家的电子商务.docx
- B8AA研究生的人生规划——好文值得品味.doc
- BEC词汇之职业名称节选.doc
- Bidzaso法语表达谢意和答谢的句子.doc
- BigBang谢耳朵经典台词.doc
- BIND在win2003下的安装及配置.doc
- Binutils与GCC配置选项简介.docx
- BAT战场之影业篇互联网对电影行业是推动而非颠覆.docx
- 安徽省智学联考2024-2025学年高一下学期7月期末考试政治试卷(含答案).docx
- 安徽省智学联考2024-2025学年高一下学期7月期末考试语文试卷(含答案).docx
- 黑龙江省哈尔滨师范大学附属中学2024-2025学年高二下学期期末考试政治试题(含答案).pdf
- 【中国汽车芯片标准检测认证联盟】2025汽车安全芯片应用领域白皮书.pdf
- 黑龙江省哈尔滨市2024-2025学年高二下学期期末质量检测政治试题(含答案).docx
- 福州市八县(市,区)协作校2024-2025学年第二学期期末联考语文试题及答案.pdf
- 安徽省智学联考2024-2025学年高一下学期7月期末考试数学试卷_扫描版.docx
- 黑龙江省哈尔滨师范大学附属中学2024-2025学年高一下学期7月期末英语试题.pdf
- 黑龙江省哈尔滨师范大学附属中学2024-2025学年高二下学期期末考试数学试题(含答案).docx
- 辽宁省抚顺市六校协作体2024-2025学年高一下学期7月期末考试政治试卷(含答案).docx
最近下载
- 《无人机艺术摄影》课件——项目5 无人机拍摄视频.ppt VIP
- HD21.2 S3-1997+A1-2002 额定电压450/750V及以下热塑性绝缘电缆 第2部分:试验方法(中文).pdf VIP
- 基于体卫融合的儿童青少年运动指南(2024) .pdf VIP
- GB_T 18920-2020 城市污水再生利用城市杂用水水质.pdf VIP
- 陀螺仪减震装置及无人机.pdf VIP
- 12J003室外工程(标准图集).docx
- 项目管理办公室PMO实践指南.docx VIP
- 最新医疗器械分类标准目录.pptx VIP
- 风电场项目风机及附属设备吊装工程(混塔风机吊装施工方案).pptx VIP
- DLT 5265_水电水利工程混凝土搅拌楼安全操作规程.pdf VIP
文档评论(0)