鄂教版信息技术九下综合实践我的程序我来设计ppt课件内容摘要:

始化新游戏的 开局 功能; • 规则 2)隐含的 挖雷 功能; • 规则 3)对应的 标记地雷 功能; • 规则 4)对应的 标记疑问 功能; • 规则 5)的 自动挖开 功能。 • 操作手段: 鼠标 2 “扫雷”案例:设计 开局 扫雷程序系统 输入 挖雷 标记雷题 标记疑问 自动挖开 输出 扫雷系统的顶层层次图 2 “扫雷”案例:设计 自顶向下逐步求精: • 继续分析已有功能,精化出所有子功能,确定模块间接口; • 描述精化后每个模块的处理过程; • 确定主要的数据及其数据结构; • 确定输入输出数据的内外部形式; • 界面的设计 2 “扫雷”案例:设计 界面 2 “扫雷”案例:设计 操作方式 采用键盘: • 上 ,下 ,左 ,右键用来移动光标的位置; • 回车或者空格键用来挖开光标当前指向的一个方块; • F, f 标记当前光标指向的方块有地雷; • Q, q 在光标指向方块打一个问号,表示可能有地雷; • A , a 自动挖开光标周围的方块; • ESC 退出游戏 2 “扫雷”案例:设计 主要数据 • 雷区界面数据 define ROW 16 /* 表示整个雷区的行数 */ define COL 16 /* 表示整个雷区的列数 */ define STARTX 50 /* 表示雷区在屏幕上的起始 x坐标 */ define STARTY 50 /* 表示雷区在屏幕上的起始 y坐标 */ define SIZEX 20 /* 表示一个方块的长度 */ define SIZEY 20 /* 表示一个方块的宽度 */ 2 “扫雷”案例:设计 主要数据 • 雷区内部数据 int totalMine。 /* 整个雷区所含的地雷总数 */ int table[ROW][COL]。 /* 数组 table的每个元素值记录了雷区 对应方块是否有雷: 1有雷 ,0无雷 */ int num[ROW][COL]。 /* 数组 num的每个元素值记录了雷区 对应方块周围有多少个地雷*/ int flag[ROW][COL]。 /* 数组 flag的每个元素值记录了雷区 对应方块当前的状态 */ 2 “扫雷”案例:设计 主要数据 • 方块 (i,j)的状态取值 define UNFLAG 0 /* 表示该方块还没有被打开或者标记 */ define FLAGED 1 /* 标记该方块有地雷 */ define QUESTION 20 /* 表示该方块可能有地雷 */ define EXPLOD 30 /* 踩到地雷爆炸了 */ define OPEN 40 /* 一个没有地雷的方块被打开 */ 2 “扫雷”案例:设计 主要数据 • 光标当前位置数据 int pi,pj。 /* 记录光标的当前位置,初始时光标在( 0, 0) */ int di[8]={1,1,0,1,1,1,0,1}。 int dj[8]={0,1,1,1,0,1,1,1}。 /*相对于当前方块而言, di[8]和 dj[8]分别表示了它周围八个 方块的行和列坐标偏移量。 它们与当前光标坐标配合使用, 可表示周围的方块,如( 1+pi, 0+pj) 表示当前方块的 正上方方块的坐标。 */ 2 “扫雷”案例:设计 主要数据 • 游戏状态数据 int gameRes。 /*记录游戏结束的结果状态,是输出数据的内部形式。 值为 0表示按 esc键退出游戏; 1 表示游戏失败; 1表示游戏胜利。 */ 2 “扫雷”案例:设计 —功能求精 第 1步:写出主程序的基本框架 , 确定各个内部模块的函数名和参数; 第 2步:对“图形初始化。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。