项目11:Windows程序的功能设计——“扫雷”游戏
(完整word版)JAVA课程设计--扫雷游戏

合肥学院计算机科学与技术系课程设计报告2009~2010学年第二学期课程Java语言与应用课程设计名称扫雷游戏学生姓名胡远远学号0604031005专业班级07网络工程一班指导教师许强张贯虹2010年09月1.设计内容及要求1.1 扫雷游戏的基本要求Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。
本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。
具体要求如下:(1)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。
(2)用户要揭开某个方块,可单击它。
若所揭方块下有雷,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。
(3) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。
用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。
(4)扫雷胜利后,显示游戏胜利。
(5) 用户可以右击空格,可以选择标记为“旗帜”、“问号”或者返回成空格。
1.2 需实现的主要功能(1)用户点击笑脸实现复位操作。
调用repaint()和validate()函数对界面进行重置以及刷新操作(2)可以显示用户完全扫雷成功所花时间。
文本框TF记录扫雷成功所花的时间(3)在失败和胜利后跳出失败或胜利的文本框JoptionPane 该类用来调出对话框并提示胜利2.需求分析2.1 扫雷棋盘的布局设计系统的整体布局为:CardLayout布局, 采用了文本框、按钮、面板、框架…等组件,菜单主要有run按钮笑脸和哭脸,按钮的功能是重新开始新的游戏。
2.2 雷区的设计MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener 和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。
扫雷游戏毕业设计论文

济源职业技术学院毕业设计(论文)题目基于Qt的扫雷游戏设计系别信息工程系专业计算机应用技术班级计应1002班姓名常慧珍学号********指导教师李攀日期二零一二年九月基于Qt的扫雷游戏设计总计:毕业设计(论文)25 页图表10 幅摘要扫雷游戏是一款经典的小游戏,这款游戏不仅可以让人们充分享受娱乐的目的,而且可以通过这款小游戏开发人的逻辑推理能力和判断能力。
本次毕业设计我们以Qt4.6为开发环境,设计并开发了基于Qt的扫雷游戏。
扫雷游戏主要研究以下两个方面:第一是初始化问题,包括随机产生本局游戏中的雷数,雷的分布对于每个小区域如何获得周围地区分布的雷数等等。
第二就是对鼠标事件的处理,即在游戏过程中对鼠标事件应如何做出反应。
本论文以Qt作为开发软件,首先使用信号与槽的方法实现菜单、工具栏的功能,其次又以MousePressEvent鼠标事件发出信息来了解使用者的意图,进而做出相对应的动作,再次介绍了清除地雷区方块的方法,通过递归程序的编写,在程序代码上会变得相当简洁。
最后利用布局管理组(Layouts)进行整体布局。
使用C++语言设计完成了扫雷游戏的初始化界面,实现了扫雷游戏的计时、重新开始、难度设置、排行榜、帮助等功能。
还增加了游戏在成败时弹出对话框等功能。
总的来说本次设计在功能上已经基本达到预期的要求。
但还有一些不足,比如扫雷游戏设计还可以添加一些背景音乐、背景图片、视频等功能,更能增加人们的娱乐性。
关键词:扫雷游戏;Qt;C++ABSTRACTMinesweeper game is a classic game, the game can not only allow people to fully enjoy the entertainment purposes, and by this small game development logical reasoning ability and judgment. The graduation project to Qt4.6 development environment, design and development of Qt-based game of Minesweeper.The minesweeper game the following two aspects:The first is the initialization problems, including randomly generated number of Council Game Ray Ray distribution for each small area how to get around the geographical distribution of Ray.The second is the processing of mouse events, mouse events in the course of the game how to react.In this thesis, QT signals and slots as the development of software, the first to use the method to achieve the functionality of the menus, toolbars, followed Youyi mousePressEvent mouse events issued information to understand the user's intent, and then make a corresponding action, again introduced a clear Minefields box by recursive program code will become quite simple. Finally, the the layout management group (Layouts) overall layout.Completed minesweeping games initialization interface design, to achieve a mine-sweeping game of timing, start again, difficulty settings, rankings, help functions using the C language. Game in the success or failure of the pop-up dialog box. Overall, the design function has basically reached the expected requirements. But there are some disadvantages, such as minesweeping game design can also add some background music, background image, video, and can help increase people's entertainment.Keywords: Minesweeper game; Qt; C++目录摘要 (I)ABSTRACT .......................................................................................................................... I I 第1章绪论 ..................................................................................................................... - 1 -1.1 研究背景 ........................................................................................................... - 1 -1.2 研究原因 ........................................................................................................... - 1 -1.3 研究意义 ........................................................................................................... - 1 -第2章Qt简介 ................................................................................................................ - 2 -2.1 Qt特征 ............................................................................................................... - 2 -2.2 Qt核心编程技术 ............................................................................................... - 2 -2.2.1 元对象系统............................................................................................ - 2 -2.2.2 信号和槽机制........................................................................................ - 3 -2.2.3 QObject类 .............................................................................................. - 3 -2.2.4 对象树.................................................................................................... - 3 -2.2.5 事件........................................................................................................ - 3 -2.2.6 QApplication类...................................................................................... - 3 -2.2.7 QWidget类............................................................................................. - 4 -2.2.8 基本布局(QLayout) ............................................................................... - 4 -2.3 C++面向对象程序设计..................................................................................... - 4 -2.4 Qt程序用到的类 ............................................................................................... - 5 -2.5 Qt应用程序实现 ............................................................................................... - 5 -2.6 本章小结 ........................................................................................................... - 6 -第3章扫雷游戏设计 ..................................................................................................... - 8 -3.1 扫雷游戏功能需求分析 ................................................................................... - 8 -3.2 扫雷游戏整体框架介绍 ................................................................................... - 8 -3.3 扫雷游戏主要功能的实现 ............................................................................... - 9 -3.3.1 菜单栏的实现........................................................................................ - 9 -3.3.2 菜单栏的功能...................................................................................... - 11 -3.3.3 鼠标事件的实现.................................................................................. - 11 -3.3.4 完成扫雷游戏逻辑的设计.................................................................. - 12 -3.3.5 扫雷游戏状态分类.............................................................................. - 12 -3.3.6 初始化界面功能实现.......................................................................... - 13 -3.3.7 雷区的随机布置.................................................................................. - 13 -3.4 清除未靠近地雷的方块 ................................................................................. - 14 -3.5 游戏的判断 ..................................................................................................... - 15 -3.5.1 游戏成功.............................................................................................. - 15 -3.5.2 游戏失败.............................................................................................. - 15 -3.6 游戏测试结果 ................................................................................................. - 16 -结论 ............................................................................................................................. - 17 -致谢 ............................................................................................................................. - 18 -参考文献 ................................................................................................................... - 19 -第1章绪论1.1 研究背景随着计算机与网络的普及,人们生活水平的提高,电脑游戏越来越成为人们生活中不可或缺的一部分,在人们繁忙的工作之余,给人带去欢乐。
扫雷小游戏(C开发环境使用Unity引擎开发)

扫雷小游戏(C开发环境使用Unity引擎开发)扫雷(Minesweeper)是一款经典的单人益智游戏,旨在通过揭开区域中的方块,避免踩中地雷并推断出地雷的位置。
本文将介绍扫雷小游戏的开发过程,使用C开发环境和Unity引擎进行实现。
第一步:项目准备在开始开发之前,需要准备好所需的开发工具和资源。
首先,下载并安装C开发环境和Unity引擎。
确保你已经熟悉这些工具的基本使用方法,并熟悉C语言编程。
第二步:项目设置在Unity中创建一个新项目,并设置好项目的名称和保存路径。
接下来,创建一个新的场景,并将场景设置为游戏的主场景。
同时,将摄像机设置为适当的视角来显示游戏界面。
第三步:创建地图扫雷游戏的核心是一个方块地图,其中包含一些地雷和数字。
在Unity中,可以创建一个正方形的网格来代表地图。
可以使用脚本来随机放置地雷,并计算每个方块周围的地雷数量。
第四步:游戏逻辑编写C语言脚本来实现游戏的逻辑。
首先,需要处理玩家点击方块的事件。
如果玩家点击到地雷方块,游戏失败,显示失败界面。
否则,根据点击到的方块周围的地雷数量显示对应的数字。
若玩家点击到数字为0的方块,则自动揭开周围的方块。
当所有非地雷方块都被揭开时,游戏成功,显示成功界面。
第五步:用户界面设计并创建游戏的用户界面。
包括游戏开始界面、失败界面、成功界面以及游戏进行中的界面。
在界面上显示剩余地雷数量和游戏计时器。
第六步:音效和动画通过添加音效和动画来增强游戏的交互性和趣味性。
例如,当玩家点击到地雷时,播放爆炸声音和特效动画。
第七步:游戏测试和调试在完成游戏开发后,进行测试和调试,确保游戏的各项功能都能正常运行。
根据测试结果修复代码中的bug和错误,以确保游戏的稳定性和流畅性。
第八步:发布游戏当游戏开发和测试都完成后,可以将游戏发布到目标平台上,供玩家下载和游玩。
在发布过程中,确保提供适当的游戏介绍和说明,以便玩家了解游戏规则和操作方法。
通过以上步骤,可以使用C开发环境和Unity引擎成功开发一个扫雷小游戏。
扫雷游戏论文

目录第1章引言 (3)1.1课题背景及意义 (3)1.2关于本课题 (3)第2章开发环境及相关技术的介绍 (4)2.1开发环境 (4)2.2C#的由来 (4)2.3C#的特点 (4)2.3.1简洁易用的语法 (4)2.3.2自动的资源回收机制 (5)2.3.3与WEB的紧密结合 (5)2.3.4完整的安全性与错误处理 (5)2.3.5支持跨平台 (5)2.3.6与XML的融合 (6)开发平台 (6)第3章需求分析 (7)3.1可行性分析 (7)3.1.1目的 (7)3.1.2经济可行性 (7)3.1.3技术可行性 (7)3.2界面分析 (8)3.2.1主界面分析 (8)3.2.2界面美化分析 (8)3.3运行过程分析 (8)第4章概要设计 (9)4.1功能性设计 (9)4.2流程设计 (10)第5章详细设计 (12)5.1主窗体的构建 (12)5.1.1扫雷游戏工程的构建 (12)5.1.2自动适应屏幕的界面 (12)5.1.3自动适应窗体的控件 (13)5.2雷区的设置 (15)5.2.1雷区的生成 (15)5.2.2第一次点击雷块的处理 (16)5.2.3提示数字颜色设定 (17)5.3游戏难度设置 (17)5.4文件的读取 (19)5.4.1开局时的文件读取 (19)5.4.2对数据的处理 (20)5.5事件的处理 (22)5.5.1鼠标左键按下相应 (22)5.5.2鼠标右键按下相应 (23)5.5.3鼠标中键或左右键同时按下相应 (24)5.6递归算法 (27)5.6.1递归算法简介 (27)5.6.2游戏中的递归算法 (27)5.7文件的加密及解密 (29)5.7.1文件的解密 (29)5.7.2文件的加密 (30)5.8自定义控件的创建及使用 (31)5.8.1自定义控件的定义及使用 (31)5.8.2自定义外观的菜单 (32)5.8.3第三方控件的使用 (33)第6章测试与运行 (35)6.1游戏的测试 (35)6.2游戏的运行 (36)6.3游戏的部署及安装 (37)第7章设计与总结 (38)第8章致谢 (39)第9章参考文献 (40)第1章引言1.1课题背景及意义当前随着计算机的深入普及,越来越多的人有了个人电脑,人们运用计算机完成许多重要的工作,计算机在人们的日常生活中扮演着越来越重要的角色。
扫雷游戏设计毕业论文(一)2024

扫雷游戏设计毕业论文(一)引言概述:随着计算机技术的发展,电子游戏逐渐成为人们娱乐和休闲的一种主要方式。
扫雷游戏作为一种趣味益智的电子游戏,拥有广泛的用户群体。
本文将详细介绍扫雷游戏的设计,从游戏的规则、界面设计、算法优化、用户体验和可扩展性等方面进行阐述。
通过本文的研究和分析,可以更好地理解扫雷游戏的设计原理和优化方法。
正文:1. 游戏规则设计1.1. 游戏背景和目的1.2. 棋盘和雷区的构建1.3. 难度级别设定1.4. 雷的分布算法1.5. 游戏结束条件2. 界面设计2.1. 游戏主界面设计2.2. 按钮和图标设计2.3. 游戏界面布局与交互设计2.4. 游戏状态显示设计2.5. 图形元素和颜色选择3. 算法优化3.1. 点击扩散算法3.2. 自动揭开空白区域算法3.3. 雷区标记和标记取消算法3.4. 游戏计时算法3.5. 最佳成绩记录算法4. 用户体验4.1. 游戏难度与挑战性4.2. 游戏操作流畅性4.3. 游戏音效和音乐设计4.4. 游戏提示和帮助功能4.5. 社交分享和竞争性体验5. 可扩展性设计5.1. 不同模式的扫雷游戏设计5.2. 不同尺寸的棋盘和雷区设计5.3. 不同风格的图形和界面设计5.4. 多平台兼容性设计5.5. 扩展功能和扩展包设计总结:通过本文对扫雷游戏设计的研究,我们深入了解了游戏规则设计、界面设计、算法优化、用户体验和可扩展性等方面。
扫雷游戏设计的关键在于规则的设定,界面的美观和易用性,以及算法的优化。
同时,用户体验和可扩展性也是设计的重要考虑因素。
通过本文的分析,我们可以更好地理解扫雷游戏设计的原理和方法,并提出改进措施。
期望本文能为扫雷游戏设计的进一步研究和发展提供参考。
扫雷小游戏项目计划书

扫雷小游戏项目计划书目标:开发一款经典的扫雷小游戏,让玩家在休闲时间享受挑战和乐趣。
一、项目背景扫雷是一款经典的计算机游戏,最初在Windows操作系统中内置,后来成为了一种流行的休闲游戏。
玩家需要通过推理和运气来找出棋盘上的地雷位置,避免触发地雷,同时尽可能多地揭开没有地雷的区域。
扫雷游戏简单易上手,却充满挑战和乐趣,深受玩家喜爱。
二、目标受众本项目的目标受众为喜欢挑战的玩家群体,特别是喜欢解谜和策略游戏的玩家。
扫雷游戏适合各个年龄层的玩家,无需复杂的操作和技能,只需要一颗聪明的头脑和一点运气。
三、项目描述本项目旨在开发一款经典的扫雷小游戏,保留原版游戏的规则和玩法,同时加入一些新的元素和功能,使游戏更具趣味性和挑战性。
游戏将分为初级、中级和高级难度,供玩家选择挑战不同难度的关卡。
四、项目计划1. 需求分析- 确定游戏的基本规则和玩法- 设计游戏界面和地图布局- 添加计时器和计分系统- 提供不同难度的关卡供玩家选择2. 技术选型- 使用HTML、CSS和JavaScript等前端技术进行开发- 选择合适的游戏引擎和开发工具- 确保游戏在各种平台上流畅运行3. 开发阶段- 设计游戏界面和地图布局,制作游戏素材- 编写游戏逻辑和算法,实现地雷生成和点击功能- 添加计时器和计分系统,提高游戏体验- 调试和优化游戏,确保游戏稳定运行4. 测试阶段- 进行游戏的功能测试和用户体验测试- 发现并解决游戏中存在的bug和问题- 优化游戏性能,改进用户界面5. 发布阶段- 将游戏发布到各大应用商店和游戏平台- 宣传推广游戏,吸引玩家下载和试玩- 根据玩家反馈和需求,不断更新和改进游戏五、项目预算- 开发成本:包括人员工资、软件工具和资源购买费用等- 测试费用:包括测试人员的费用和相关设备的使用费用- 推广费用:包括广告费用和宣传推广的费用- 运营成本:包括服务器维护费用和更新改进的费用六、风险评估- 技术风险:游戏开发可能面临技术难题和挑战,需要及时解决- 竞争风险:市场上已经存在很多扫雷游戏,需要找到自己的特色和优势- 财务风险:游戏开发成本较高,需要有效控制和管理七、项目收益- 玩家支付:提供一些付费功能和道具,吸引玩家消费- 广告收入:在游戏中加入广告,获得广告商的费用- 授权收入:将游戏授权给其他平台或厂商,获得授权费用八、项目总结扫雷小游戏是一款经典的休闲游戏,具有很高的挑战性和趣味性,适合各个年龄层的玩家。
项目11:Windows程序的功能设计——“扫雷”游戏.pdf

项目11:Windows程序的功能设计——“扫雷”游戏一、教学内容及要求能力培养:1、理解基于Windows的应用程序的基本概念2、掌握Windows窗体和控件的常用属性。
3、掌握一些常用的Windows窗体控件的使用。
4、学会创建较为复杂的Windows应用程序。
核心技能点:1、Windows 窗体应用程序中窗体、控件、事件的基本概念。
2、Windows 窗体控件的共同特性。
3、常用的Windows 窗体控件。
扩展技能点:1、Windows窗体和控件的常用属性2、Windows窗体的设计和创建3、各种控件的综合应用教学内容:1、项目介绍。
任务1:“扫雷”游戏(5分钟)2、案例演示:程序流程任务2:讲解程序设计流程。
(15分钟)3、案例演示:主要功能实现任务3:讲解主要功能的实现方法。
(30分钟)4、课内实践:任务4:利用C#/WinForms编程,编写一个小游戏“扫雷”。
(130分钟)(1) 游戏功能和Window中的扫雷功能相同。
(2) 程序界面显示当前剩余地雷数和用时。
点击中间的按钮可以重新开始游戏。
(3) 左键点击每一个小方框,如果没有地雷,则显示其上下左右及对角线共8个小方框中的地雷数。
1代表上下左右及斜角合计有一颗雷,依次类推,2则有2颗,3则有3颗,如果其周围没有雷(0),则不显示,并将和其相临(上下左右及对角线共8个小方框)中地雷数为0的方框都显示出来。
如果该方框是地雷,则游戏结束,并显示所有雷的位置。
在确定是炸弹的方格上点右键出现一个旗子,表示你认为这是一个雷,上方显示的地雷数减1。
在有旗子的方框中再点击将出现问号,表示你不确定这里有没有炸弹。
再点击将取消标志。
(4) 在游戏菜单中,可以设置雷区的大小及地雷的数量。
(5) 具体功能,可以参考Windows的扫雷游戏二、教学重点、难点及解决办法教学重点:1、Windows 窗体控件的共同特性2、常用的Windows 窗体控件教学难点:1、Windows窗体的设计和创建2、各种控件的综合应用教学方法:基于CDIO的课程改革,应用了CDIO教育模式。
实现一个简单的扫雷游戏

实现一个简单的扫雷游戏扫雷游戏是一款休闲益智游戏,其中的任务是在不触雷的情况下扫开所有的方块。
虽然游戏看起来简单,但是其实现却需要进行复杂的逻辑设计和算法优化。
在这篇文章中,我将会介绍如何实现一个简单的扫雷游戏。
一、游戏规则在扫雷游戏中,游戏区域是由一个二维矩阵组成的。
每个方块要么是地雷,要么是数字,要么是空白。
玩家需要在不触雷的情况下扫开所有的空白方块,从而获得胜利。
当玩家点击一个方块时,会出现以下三种情况:1. 如果点击的是地雷,游戏结束,玩家失败。
2. 如果点击的是数字,该数字表示周围八个方块中地雷的数量。
玩家需要根据数字来判断周围是否存在地雷。
3. 如果点击的是空白方块,该方块以及周围的空白方块都会被扫开。
如果周围存在数字,则显示数字;如果周围不存在数字,则继续向外扩展,直到遇到数字或边界为止。
二、游戏逻辑在实现扫雷游戏时,需要先考虑游戏的逻辑设计。
首先,需要生成一个二维矩阵作为游戏区域。
其次,需要在随机位置上放置地雷。
最后,需要对每个空白方块进行递归扫描,以确定周围的数字和空白方块。
具体的实现步骤如下:1. 生成游戏区域游戏区域可以用一个二维数组来表示,其中每个元素可以是地雷、数字、空白等状态。
在本例中,我们选择将地雷用-1来表示,数字用0~8来表示,空白用None来表示。
根据游戏难度的不同,可以设置不同的行列数和地雷数量。
2. 随机放置地雷放置地雷的方法有很多种,其中比较简单的方法是使用Python的random库来实现。
在随机放置地雷时,需要注意地雷不能重复出现。
此外,我们需要遍历每个方块来统计周围的地雷数量。
如果该方块本身不是地雷,则需要检查该方块周围的八个方块是否是地雷。
3. 递归扫描空白方块当玩家点击了一个空白方块时,游戏需要递归扫描周围的空白方块,直到遇到数字或边界为止。
为了避免重复扫描相同的方块,我们需要使用一个set来记录已经扫描过的方块。
在每次扫描完一个方块后,需要检查该方块周围的八个方块是否也是空白方块,如果是则递归扫描该方块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目11:Windows程序的功能设计——“扫雷”游戏一、教学内容及要求能力培养:1、理解基于Windows的应用程序的基本概念2、掌握Windows窗体和控件的常用属性。
3、掌握一些常用的Windows窗体控件的使用。
4、学会创建较为复杂的Windows应用程序。
核心技能点:1、Windows 窗体应用程序中窗体、控件、事件的基本概念。
2、Windows 窗体控件的共同特性。
3、常用的Windows 窗体控件。
扩展技能点:1、Windows窗体和控件的常用属性2、Windows窗体的设计和创建3、各种控件的综合应用教学内容:1、项目介绍。
任务1:“扫雷”游戏(5分钟)2、案例演示:程序流程任务2:讲解程序设计流程。
(15分钟)3、案例演示:主要功能实现任务3:讲解主要功能的实现方法。
(30分钟)4、课内实践:任务4:利用C#/WinForms编程,编写一个小游戏“扫雷”。
(130分钟)(1) 游戏功能和Window中的扫雷功能相同。
(2) 程序界面显示当前剩余地雷数和用时。
点击中间的按钮可以重新开始游戏。
(3) 左键点击每一个小方框,如果没有地雷,则显示其上下左右及对角线共8个小方框中的地雷数。
1代表上下左右及斜角合计有一颗雷,依次类推,2则有2颗,3则有3颗,如果其周围没有雷(0),则不显示,并将和其相临(上下左右及对角线共8个小方框)中地雷数为0的方框都显示出来。
如果该方框是地雷,则游戏结束,并显示所有雷的位置。
在确定是炸弹的方格上点右键出现一个旗子,表示你认为这是一个雷,上方显示的地雷数减1。
在有旗子的方框中再点击将出现问号,表示你不确定这里有没有炸弹。
再点击将取消标志。
(4) 在游戏菜单中,可以设置雷区的大小及地雷的数量。
(5) 具体功能,可以参考Windows的扫雷游戏二、教学重点、难点及解决办法教学重点:1、Windows 窗体控件的共同特性2、常用的Windows 窗体控件教学难点:1、Windows窗体的设计和创建2、各种控件的综合应用教学方法:基于CDIO的课程改革,应用了CDIO教育模式。
以“做中学”为出发点,实施“知识讲解案例化、课内课外协作化、实战演练一体化”的教学模式。
由传统的教师引导课堂转变为以学生为主体,课本中的知识点讲解转变为“项目”主导,将传统的课堂模式转变为了以实际经验为核心。
三、教学设计1、教学进程工程化将教学内容按CDIO理念,以项目为核心,并结合课程内容设计了四个环节的内容,包括构思环节、设计环节、实现环节、运作环节,同时,在课程的教学过程中,主要采用“做中学”的教学理念来实现“教学做”一体化。
以项目为载体,将抽象的知识融入到项目中,通过项目的学习将知识点分解,将“工程”教学思想体现在教学中,进而提高学生的学习效果。
2、教学设计递进化根据“工程化”的思想,教学模式的设计呈递进化趋势,每一个教学项目的实现将分成四个部分来完成:任务的明确,实施方案的编写,项目的实施和项目的评价3、实践设计层次化在项目的实施过程中,主要组织层次化教学。
在教学中,采取“基础实验”“综合实验”,“综合性课程设计”的设计。
4、课程考核工程化考核以过程考核和工程验收测试相结合的方式进行。
本门课程采取的是形成性考核方式,考试成绩由本门课程学习期间的多项过程成绩组合而成5、知识讲解案例化根据CDIO的思想,对知识点采取案例化教学法,6、课内课外协作化7、实战演练一体化为了让学生对所学课程加深理论知识,并能够将相关知识结合到实际应用中,学生需要自选一个相关主题进行综合项目的开发,提高综合应用能力。
在这个环节中,学生是主体,教师主要负责引导和监控,学生需要在这个阶段发挥自身能力,以团队的形式完成项目,并由此锻炼学生的团队合作意识。
四、教学过程1、项目介绍。
任务1:“扫雷”游戏(5分钟)(1)程序开始界面如图所示。
第一个文本框(左)显示当前剩余地雷数,第二个文本框显示用时。
点击中间的按钮可以重新开始游戏。
(2)左键点击每一个小方框,如果没有地雷,则显示其上下左右及对角线共8个小方框中的地雷数。
1代表上下左右及斜角合计有一颗雷,依次类推,2则有2颗,3则有3颗,如果其周围没有雷(0),则不显示,并将和其相临(上下左右及对角线共8个小方框)中地雷数为0的方框都显示出来。
如果该方框是地雷,则游戏结束,并显示所有雷的位置。
在确定是炸弹的方格上点右键出现一个旗子,表示你认为这是一个雷,上方显示的地雷数减1。
在有旗子的方框中再点击将出现问号,表示你不确定这里有没有炸弹。
再点击将取消标志。
(3)在游戏菜单中,可以设置雷区的大小及地雷的数量。
(4)具体功能,可以参考Windows的扫雷游戏2、案例演示:程序流程任务2:讲解程序设计流程。
(15分钟)3、案例演示:主要功能实现任务3:讲解主要功能的实现方法。
(30分钟)(1)请自行准备几张图片:地雷、炸开的地雷、旗子、笑脸、哭脸(2)雷区可以用Button二维数组;Button[,] butMine = new Button[N, N];N表示行总数和列总数(3)为记录地雷的分布及相关信息。
可以设置一个结构。
struct MineInfo{public int row;//行号public int col;//列号public int data;//1表示有地雷,0表示没有地雷public int num;//其上下左右及对角线的地雷数//鼠标右击了几次:0,1,2,对应的按钮在空白->旗子->问号之间切换,-1表示已显示了数字public int style;,}//这里的0,1,2,-1等取值可以考虑使用枚举更好一点。
定义一个MineInfo的数组存储每个方框的地雷信息。
MineInfo [,] mineInfo = new Button[N, N];(4)初始化地雷的分布及相关信息:用一个二重循环,内循环语句为:mineInfo [i, j] = new MineInfo ()mineInfo [i, j].row = i;mineInfo [i, j].col = j;mineInfo [i, j].data = 0;mineInfo [i, j].style =0;(5)布雷。
Random r = new Random();while (count < NUM) //NUM为地雷总数,count为当前已布雷数,初始为0{int row = r.Next(0, N);int col = r.Next(0, N);if (mineInfo [row, col].data== 0){mineInfo [row, col].data = 1;count++;}}在布完雷后,需要计算出每个方框其上下左右及对角线的地雷数,即为mineInfo [row, col].num赋值;(6)在窗体上布局地雷(按钮)。
可以使用一个容器控件:Panel来容纳地雷按钮,由于雷区大小和雷数是变化的,所以按钮需要动态添加。
首先:清空Panel中的所有子容器:panel1.Controls.Clear();然后,使用循环生成每一个:butMine,并设置所正确的位置,和相关信息:butMine[i, j] = new Button();//实例化每一个按钮int w=panel1.Size.Width / N;//panel的宽度int h= panel1.Size.Height / N;//panel的高度int x = panel1.Location.X;//panel的位置(x轴),示例,通过该属性可以得到一个控件的坐标int y = panel1.Location.Y;//panel的位置(y轴)butMine[i, j].Size = new Size(w, h);//按钮的尺寸butMine[i, j].Location = new Point(i * w, j * h);//按钮的位置(以panel的x,y坐标为参照) butMine[i, j].FlatStyle = FlatStyle.Standard;//按钮的外观butMine[i, j].Tag = mineInfo[i, j];//把地雷信息添加到按钮的Tag属性中。
//添加按钮的鼠标单击事件的响应函数为But_MouseDownbutMine[i, j].MouseDown += new MouseEventHandler(But_MouseDown);panel1.Controls.Add(butMine[i, j]);//把按钮添加到Panel中(7)在But_MouseDown (object sender, MouseEventArgs e)中完成游戏主要操作。
可以通过:e.Button == MouseButtons.Right知道是按了右键;同样:e.Button == MouseButtons.Left是按了左键。
1)当按了右键,且style==0,表示第一次右击,显示旗子2)当按了右键,且style==1,表示第二次右击,显示问号3)当按了右键,且style==2,表示第三次右击,回到空白状态4)当按了左键,且style==0,如果是地雷,显示地雷爆炸。
并:but.MouseDown -= new MouseEventHandler(But_MouseDown); //删除单击事件处理程序(but为获取的被点击的按钮)游戏结束!如果不是地雷:则在按钮上显示周围有几颗雷,通过以下程序设置按钮形态:but.FlatStyle = FlatStyle.Flat;but.FlatAppearance.MouseDownBackColor = but.FlatAppearance.MouseOverBackColor = but.BackColor; but.FlatAppearance.BorderColor = Color.White;but.MouseDown -= new MouseEventHandler(Form1_MouseDown); //删除单击事件处理程序同时,如果其周围地雷数为0,按钮上不显示数字,但需依次激发周围8个按钮的鼠标单击事件。
以将周围所有四周没有地雷的按钮翻出来。
这可以通过按钮的PerformClick();方法完成。
(注:周围、四周是指其上下左右及对角线共8个小方框)4、课内实践:任务4:利用C#/WinForms编程,编写一个小游戏“扫雷”。
(130分钟)(1) 游戏功能和Window中的扫雷功能相同。
(2) 程序界面显示当前剩余地雷数和用时。
点击中间的按钮可以重新开始游戏。
(3) 左键点击每一个小方框,如果没有地雷,则显示其上下左右及对角线共8个小方框中的地雷数。