《《面向对象程序设计》大作业.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》大作业.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计大作业 面向对象程序设计 大作业 项目名称基于C#的一款扫雷游戏班级7B1551 组员李豪雄曹启李宁 一、开发环境 开发环境:vs2022 开发语言:C# 二、系统功能设计 1.创建项目功能实现 创建项目,找图片素材 2.界面设计 介绍关于扫雷游戏界面的设计 提出希望在对应级别(初级、中级、高级、自定义)的按钮的显示勾,以表示目前的游戏等级。 3.雷区绘制 界面中雷区的绘制方法 4.菜单操作 有两个时候需要对它进行操作,一个是加载上次游戏设置的时候,一个是在游戏过程中进行设置的时候,设计菜单中的相关方法 5.内部实现 内部埋雷,放雷,标旗子,标问号的方法 6整体完善 写游戏的胜
2、利条件,自定义游戏的初始化及相关调试任务 三、实现 1、创建项目功能实现 玩过扫雷的读者应该知道,扫雷需要用到三种图片素材地雷、红旗、问号。当右击一个方块的时候,会插上红旗,表示游戏者认为该方块内有地雷;再次右 击该方块,会变成问号,表示不确定该方块内是否有地雷;第三次右击该方块,问号消失,恢复到初始的状态。我们前往Iconfinder寻找合适的图标,并且通过Photoshop或者Illustrator的处理得到我们所需要的图标。文章中含有下载地址的图标资源可以使用右键目标另存为进行下载。 通过一定的搜索以及图片的处理,得到了下面一组素材图标,下载地址:Doubbt、Flag、Mine。 除了
3、这些素材以外,我们还需要找一个图标,使得整个程序看上去更加正式一点,这里使用图标如下,注意程序图标的后缀为ico,下载地址:favicon 接下来,我们打开Visual Studio 2022开始创建工程,界面如下: 创建好的项目如下图所示。 我们需要对这个窗口的几项属性进行修改,首先通过Text属性将它的标题修改为“Minesweeper”;通过FormBorderStyle属性将它的大小设置为“FixedSingle”,即为不可调节窗口大小;通过MaximizeBox属性将它的最大化按钮设置为“False”,即最大化按钮失效;通过Name属性将它的名称修改为“Form_Main”,修改这个
4、属性主要用于后面书写代码的方便;通 过BackColor属性将它的背景修改为“White”。如下图所示: 我们可以顺便修改一下这个窗口的代码文件的名称。在右上方找到解决方案资源管理器,右击Form_1.cs重命名Form_Main.cs,程序会自动将下面包含的文件名也都改成一致的名称。如图所示: 接下来我们需要修改一下程序的图标,将刚才下载的favicon文件放到Minesweeper/Minesweeper文件夹下,同时将三个图标资源放到Minesweeper/Minesweeper/Resources文件夹下(Resources文件夹需要自己新建),如下图所示: 在属性栏中找到Icon属性
5、,并且定位到favicon.ico文件,如下图所示: 此时,我们按下快捷键Ctrl + S对整个工程进行保存,并且按下快捷键Ctrl + F5运行查看我们的程序,效果如下: 2、界面设计 这一节我们主要介绍关于扫雷游戏界面的设计,此处我们借鉴经典扫雷界面的设计方法,首先需要创建一个菜单栏。具体方法在左边找到工具箱窗口,展开其中的菜单和工具栏,找到MenuStrip选项,如图所示: 只需要双击该条目就可以在窗口中新建一个菜单栏,如图所示: 对于这个控件(我们习惯上将窗口中的东西称作为控件),我们还是需要修改它的一些属性,对于个人习惯而言,我习惯于修改它的Name属性,这样编程的时候不至于将很多控
6、件混淆。我们将它的Name属性修改为“MenuStrip_Main”。单击“请在此键入”,输入“Game(&G)”,其中&G整体会显示成G这个字母下面加一个下划线,这样在用户使用的时候就可以通过按下字母G来访问这个按键了。(当然,顶层菜单还需要按下Alt键,例如Alt + G键。)输入以后的界面如图所示: 使用同样的方法,创建如下图所示的一个菜单栏: 注意到,图中的分割线,只需要输入一个减号,即“”,再按下回车键即可得到。 我们一次介绍一下各个选项的功能,以便读者对它们有一个基本的了解。菜单一共有两组,一个为游戏(Game),一个为帮助(Help):其中游戏菜单下分别包含了新游戏(New Ga
7、me)、初级(Beginner)、中级(Intermediate)、高级(Expert)、设置(Setting)、标记(Mark)、音效(Audio)、排行榜(Rank)、退出(Exit);而帮助菜单下仅包含关于(About)。 其中新游戏用来开始一场新的游戏;初级、中级、高级,用于选择不同的游戏难度;设置用于自定义扫雷区域的大小以及地雷的数目;标记用于设置是否启用红旗、问号这一类的标记;音效用于设置是否启用音效;排行榜用于对游戏时间进行排名(仅记录初级、中级、高级的结果,对于自定义游戏的 结果不进行记录);退出用于退出游戏。最后,关于用来显示游戏的一些关于信息。 对于初级、中级、高级、标记、音效这几个菜单,我们需要在它的前面显示它的状态,即是否被选中,如果选中了就会在它的前面出现一个勾,如果没有选中,则没有,这是我们以后需要实现的功能,在此先进行说明。 至此,我们的菜单栏就制作完成了。接下来我们需要制作一个用来记录地雷数目以及用时的功能。我们选择工具箱中容器的TableLayoutPanel,双击该项目,会在窗口中创建一个TableLayoutPanel控件。同样我们先将它的Name属性修改为“TableLayoutPanel_Main”。展开它的Size属性,将Height属性修改为48。同时修改它的Dock属性,选择Bottom,如图所示:
限制150内