实  验  报  告
实验课程:软件工程
实验名称实验二: 游戏软件面向对象分析与设计                    中国黑帮老大排名    
学号:           姓名:          班级:                      
完成日期:         
                                                           
一、 实验目的
(1) 通过(游戏)软件的分析、设计与实现过程,掌握软件构建中的面向对象思想。
(2) 掌握面向对象的分析、设计工具。
二、 需求分析
基本要求
1)单词管理:程序中用来做谜题的但崔必须放在一个数据库文件或一个磁盘文档
文件中保存。
2)猜字过程:先给用户显示猜字的数量,按照被猜单词的字母数量而定。单词都
是随机抽取的。假设谜底单词为“hello”,则在屏幕上输出(显示)“-----”。玩家输入一个(多个)字母进行猜测。如果这个字母不在单词中,系统提示玩家不对;如果猜对字母,比如玩家输入一个“l”,则屏幕上输出(显示)“- - ll -”。猜错的同时一个人模型在吊绳上一步一部的显示出来。最终画出完整的人模型位置,并提示游戏闯关失败。
设计要求
任选一个面向对象程序设计语言最充分的体现面向对象程序设计的思想。要明确指出面向对象程序设计中的类,方法以及属性的关系,作用。充分利用软件工程所学的工程思想,
分别画出程序运行过程的UML图,最完整的展现科学的工程项目的设计全过程。
设计开发工具任选。最好设计成可视化用户界面。让玩家感受到玩游戏的体验。
杨菲洋三、 游戏软件描述(简述或用游戏界面图描述)
游戏简介
Hangman直译为“上吊的人”,是一个猜单词的双人游戏。由一个玩家想出一个单词或短语,另一个玩家猜该单词或短语中的每一个字母 [1]  。第一个人抽走单词或短语,只留下相应数量的空白与下划线。
想字的玩家一般会画一个绞刑架,当猜字的玩家猜出了短语中存在的一个字母时,想字的
玩家就将这个字母存在的所有位置都填上。如果玩家猜的字母不在单词或短语中,那么想字的玩家就给绞刑架上小人添上一笔,直到7笔过后,游戏结束。
游戏软件描述
本次游戏设计我选择使用了Visual Studio 2017的C#语言类别中的WindowsFormAPP窗体应用。WinForm是·Net开发平台中对Windows Form的一种称谓。Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序。操作方便,新的数据提供程序管理:数据提供程序管理提供易于连接OLEDB和ODBC数据源的数据控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等。刚开始想法也就是利用Win Form的方便的数据库功能,即把Hangman的单词短语以及对应的提醒语句放在数据库中一条一条的显示给玩家。还有一个原因是设计这个游戏之前VS的Windows窗体应用有所接触和了解。所以这次还是选择了该软件作为工具软件。周冬雨 身高
设计简介
第一步,游戏界面提供“Start Game”按钮,系统获取到随机单词,玩家输入自己的猜测结
果,通过按“Enter”按钮完成输入。每次提示输入猜测结果时,给出猜测的准确度提示。 准确的猜测结果替换屏幕中的下划线,错误时在下方显示错误的字母并进行同步拼图。猜测完毕赢得游戏或者机会用完失败,均可以继续游戏,按“Restart”按钮,也可进入下一题。
第二步,猜短语,刚开始游戏时可以选择屏幕左边的单选按钮进行选择猜短语模式。
第三步,猜单词和短语混合,所猜内容皆不相同,弹出消息对话框,显示的可能是单词,可能是短语。如果游戏结果不理想,玩家还可以切换模式降低难度再次通关,可以继续游戏。。重复之前的步骤即可。
图1传统的Hangman游戏的运行逻辑图
游戏界面描述
设计界面效果图:
Hangman游戏设计用到的组件如下:
Windows Form(窗体)  ---3为什么路由器连不上它可以分成基础选择和容器类控件组、日期与图片控件组、日期与微调控件组和软件系统框架类控件组。
Button(按钮) ---4个当激活它时,能执行指定的功能。用户可以采用以下方法来激活按钮:用鼠标在其上单击,或者当按钮获得聚焦时按下“Return”或“Enter”键。
Panel(功能细分窗体) ---4个控件用于为其他控件提供可识别的分组。
任达华三级Label(标签) ---6个功能是定义变量或标号的类型以及名称,而变量或标号的段属性和偏移属性由该语句所处的位置确定。
Checkbox(复选框) ---1让使用者与首页上的素材发生交互作用的一种方法。其中包含CheckBox控件就是我们一般所说的复选框,通常用于某选项的打开或关闭。
Groupbox(分组框) ---1个作用是为其他控件提供可识别的分组
Textbox(文本框) ---1个应用程序主要使用它来接收使用者于输入文字信息。
RadioButton(单选按钮) ---3个在远方结局:为用户提供由两个或多个互斥选项组成的选项集。虽然单选按钮和复选框看似功能类似,却存在重要差异:当用户选择某单选按钮时,同一组中的其他单选按钮不能同时选定。相反,却可以选择任意数目的复选框。定义单选按钮组将告诉用户:“这里有一组选项,您可以从中选择一个且只能选择一个。
Picturebox(图形框) ---1可以显示来自位图、图标或者元文件,以及来自增强的元文件、JPEG 或 GIF 文件的图形。如果控件不足以显示整幅图象,则裁剪图象以适应控件的大小。
图2Hangman游戏设计界面效果
每个组件有多条属性,在这个游戏中设计中主要用的不是全部。Panel控件一律不对用户可见的。最明显的是“Start Game”按钮和“Restart”按钮的对比。开始游戏时“Restart”按钮设为不可见,用户只能看见“Start Game”按钮。当“Start Game”按钮按下去以后“Start Game”的Visible属性改为False,对用户不可见,这时“Restart”按钮变得可见,玩家成功过关了还是吊死了都可以按这个按钮继续游戏。
三个RadioButton(单选按钮)按钮标为可见,用户可以选择其中一个来进行不同难度的游戏。当然textbox按钮是比较重要的,用它类接受用户的输入并判断玩家猜字的准确度。Picturebox框的作用也是比较重要的,它最直观的表达玩家的猜字准确率。设计这部分用到了6张图片,每次换一张图显示给用户的效果是图片上在进行画画。从头到左脚的顺序显示玩家猜字的准确度。
游戏运行效果图:
图3游戏运行界面效果图
按Start Game按钮以后立马显示的Restart按钮和要猜的单词或短语的字母个数相等的下划线标志。玩家第一反应是数清下划线的个数并开始猜字。用户可以选择单个字母的输入和多个字母的一次性输入操作。输入正确和输入错误的字母分别显示在屏幕去上。跟着错误单词的递增机会数越来越少。机会次数的变更和图片的更换是同步的,即机会次数减少一个,图片上的被吊人的肢体多一个。机会次数减到0的时候显示游戏失败并且被吊的是一个完整的人模型。用户可以重新开始游戏或推出游戏。
单词和短语编辑界面
下面是单词和短语编辑界面的效果图:
图中有一个按钮用来编辑完的单词和短语的保存操作。当保存成功时会把保存成功
的标签不可见变为可见。表示用户编辑单词和短语编辑完成并保存成功。用户还可以自己添加单词或短语。我的设计方法是这个还可以用来英语单词或短语的学习软件。当你学习英语的时候先把单词或短语打进去。过了一段时间以后以复习的形式玩这个游戏,以便加强复习和简单娱乐效果。
图4Hangman单词和短语编辑界面
四、 构建软件分析模型
(1) 用例分析(基于场景的元素)
开始猜字游戏和进行游戏过程,调用系统内部以随机给出的单词或短语, 提示用户输入猜字, 每次再输入完整后自动给出正误显示结果。 在 6 次之内未猜出者提示失败,如果成功,进行提示。
图5Hangman游戏用例图
(2) 类及类关联分析(基于类的元素)