软件工程 认识实习报告.doc
《软件工程 认识实习报告.doc》由会员分享,可在线阅读,更多相关《软件工程 认识实习报告.doc(27页珍藏版)》请在三一办公上搜索。
1、计算机认识实习实验报告专业:计算机科学与技术班级: 3 姓名: 学号: 08122304 计算机工程与科学学院报告日期 2010年 7 月 13 日第一章概述1实验目的此次认识实习通过编写两人对弈军旗程序,了解程序设计的一般过程,树立良好的设计方法,巩固有关计算机软件的知识,加深专业知识的了解,扩大专业知识面,培养和提高发现问题、认识问题、分析问题及解决问题的能力,为后续有关专业课程的学习奠定基础。2背景说明1.题目名称: 军棋(两人对弈)。3实验要求 选择棋子:1键盘操作:用方向键、移动光标,Enter键选中棋子。 2鼠标操作:移动鼠标,按鼠标左键,选中棋子。 移动棋子:1键盘操作:用方向键
2、、移动光标,Enter键选落子。空格键:放弃。 2鼠标操作:鼠标左键按下时移动鼠标,放开鼠标左键击落子,右键放弃。 落子后,检测:如果不符合游戏走子规则,则重新操作。否则,棋子落定,并按游戏规则吃子。 能完成概述中的基本功能。 主界面为窗口界面,包含菜单栏。菜单中至少要有“运行”菜单,含“run”命令、“stop”命令;“帮助”菜单,含“Help” 命令、“About” 命令。Help内容是操作说明,About内容是开发者的姓名、学号、日期等。(见有关要求的说明。) 记时、记分。显示所得的分数和运行的时间。. 设置“暂停”和“恢复”功能。 实现各题功能概述所描述的功能; 实现一定的动画效果。
3、程序主界面为Windows窗口界面 “游戏”菜单中至少包含选项“开始新游戏”、“退出”;“工具”中包含“计算器”和“记事本”;“帮助”中包括“使用指南”和“关于本程序”。 所有菜单选项须符合Windows菜单命名规则,能用Alt键操作菜单。 “工具”菜单中各命令要求启动相应程序; “帮助”中“关于本程序”命令必须使用“关于对话框”实现,分两行显示姓名及学号。4实验内容编写符合吃子规则、走棋规则、棋盘布局,能够记录时间以及分数,判断胜负,可选择规则的军旗程序。军棋的子数:军棋每方共有25个子,司令、军长、军旗各一;师长、旅长、团长、营长、炸弹各二;连长、排长、工兵、地雷各三。军棋的子力:司令军长
4、师长旅长团长营长连长排长工兵,大子遇到小子,小子拿掉,大子放在原位,炸弹碰到任何子力同时拿下,这是任何规则都遵循的。 军棋棋盘:军棋棋盘包含铁路线、公路线,每方包括5个行营、23个兵站、2个大本营。兵站是子力的摆放位置;铁路线是子力的快行线,只要在直线上或弧型弯路子力走步数不限;公路线是慢行线,每次只能移动一步;行营是子力的活的保护区,在行营中的子力可以免受其他任何子力的攻击,行营里的子每次只能移动一步;大本营,其中一个必然是军旗所在位置,另一个可以摆放其他任何子力。工兵行棋比较特殊,只要在铁路线上,在没有挡路的情况下,可以飞抵棋盘上任何位置。 军棋的摆法:原则上25个子可以摆放在棋盘除行营外
5、的任何位置,但是对于一些特殊子力还有特别的限制。军棋:只能摆在两个大本营其中一个;地雷:只能摆在后两排除军旗占据一个大本营外任何11个位置;炸弹:不能摆在第一排的5个位置。军旗和地雷位置一旦固定出征后就不能够再移动。 军棋规则:针对于大本营,有进大本营子力能进能出的,也有能进不能出的;针对地雷可以分为弹簧雷(工兵飞雷雷下,工兵在;炸弹遇雷同时拿下;其他子力遇到地雷自动碰死拿下);炸弹雷(任何子力遇到雷同时拿下);针对于炸弹,有炸弹等同于其他子力按规矩行动的,也有炸弹满天飞(行子方式如同工兵)。针对行棋方式分为铁路线上只可直行或弧行弯路;可以走交叉线(棋盘上多出两道交叉线);可以拐直角弯路。总之
6、这类规则很多,甚至可以自行规定。 军棋的胜负判定:夺取敌方军棋,一般夺棋就算胜;还有的需要夺棋运到自己大本营才能获胜。 军棋的下法:按照参加的人数分:二人对弈,俗称单挑,也是我们华人儿童最先接触的军棋初版;三人对弈,俗称三国鼎立;四人对弈,俗称四国大战。还有大家很少见到的六人对弈,又称六国大战。按照棋的摆法来分有明棋、暗棋、混棋之分。 3、吃子规则:司令 军长 师长 旅长 团长 营长 连长 排长 工兵,小棋遇大棋被吃,相同棋子相遇,则同归于尽;工兵能排除地雷,其他棋子遇地雷同归于尽(可选其他棋子遇地雷皆败);炸弹与任何棋子相遇时同归于尽。4、棋盘常识:棋盘上行走路线包括公路线和铁路线,显示较细
7、的是公路线,任何棋子在公路线上只能走一步;显示为粗黑的为铁路线,铁路上没有障碍时,工兵可在铁路线上任意行走,其它棋子在铁路线上只能直走或经过弧形线,不能转直角弯。棋子落点包括结点、行营、两个大本营。行营是个安全岛,进入以后,敌方棋子不能吃行营中的棋子。大本营中的棋子(包括军棋和另一名棋子)以及“地雷”均不能移动,游戏开始后进入任何大本营的棋子不能再移动。5、布子规则:作战开始前,各玩家按照自己的规划将自己的棋子安排到自方棋盘的位置上。规定炸弹不能放在第一排(可选);地雷只能放在最后两排;军旗只能放在大本营;行营里不能放子。等所有玩家都布好阵并按下“开始”按钮后则进入战斗。 6、作战:用户可以先
8、单击选中自己的棋子,再单击对方的棋子,让双方交战,交战后服务器根据大小决定胜负,胜者留在交战发生的棋格,负者消失。各方均不能和自己同盟的一方交战。“军棋”是双方争夺的对象,一旦“军旗”被对方吃掉,则这盘棋就算输了。如果有一方被逼得无棋可走了,系统也将自动判定该方输棋。输的一方在其他方尚未决出胜负时,可以看见对面联盟方的棋子。如最后与自己结盟的一方取胜,则自己也算取胜。 7、时限:游戏各方每步棋有时间限定(默认1分钟),轮到某用户走棋时,如果在此时限后还不走棋,则取消本轮行棋资格,自动轮到下一家走,并增加超时一次,三次以上超时(不包括三次)作认输处理。8、可选规则:游戏开始前可以设置如下几条规则
9、:炸弹满天飞(即炸弹允许排在第一排,默认为不允许)、无敌地雷(默认为关闭)、夺旗限制(包括任何子都可以夺旗、司令不可以夺旗、只有工兵可以夺旗,默认为任何子均可夺旗)、时限(默认1分钟)。设置选项由桌主设置,后面加入的用户都可以在设置里看到这些规则(但不允许更改)。9、胜负判断:最后的幸存的玩家及其联盟为胜家,军棋被扛、无棋可走、超时三次以上都会被判负;如到最后游戏各方均无法继续下子(如全部同归于尽),则系统算为和局;如游戏当前剩下的各方均自认无法攻下对方的军旗,也可以选择“求和”,棋盘上还剩下的用户均同意后,该局作和局论。5参考资料1.臧玉琴,腾跃. Visual Basic界面、多媒体与操作
10、系统程序设计M. 北京:人民邮电出版社,2003第二章概要设计1总体设计1.1需求规定一、模块要求:输入项:1、地形 2、血量 3、双方位置 4、键盘对坦克操作 5、鼠标对坦克操作输出项:1、地形与背景的显示 2、血量显示 3、更改设置显示 4、坦克移动显示 5、炮弹移动显示 6、胜利消息二、功能要求:1 按规则移动棋子;2 按规则吃子;3 允许联机对战;4 设置棋局规则、单回合时间;5 判断胜负并计算分数、记录时间;6 可用鼠标和键盘进行操作;7 程序主界面为Windows窗口界面;8 提供帮助文件;9 导入导出布局;10 允许投降、申请和局;11 单机模式允许悔棋最多5步;12 操作具有音
11、效。三、性能要求:1.判断规则算法无明显延迟感;2.服务器端与客户端时间与走棋方统一。1.2基本设计概念和处理流程1.2.1基本设计概念系统分成三层设计:显示层、数据处理层、事件响应层;显示层:显示层使得用户可以对系统进行操作和控制,采用图形界面来表示数据,使用户操作时直观。将棋盘底盘与棋子位置、选中的棋子、可选棋子、当前棋局状态、应播放的音效文件、可进行的设置与操作从数据转换为图形界面,将控件的位置与显示内容转化为当前操作下的值;数据处理层:以过程及函数的形式出现,主要处理事件响应层传来的数据:两子战斗的处理、棋子移动的处理、棋盘初始化处理、胜利事件处理、投降事件处理、和局事件处理、计算棋子
12、能否到达指定位置、计算棋子位置、摆放棋子过程、移除棋子过程、交换棋子过程、棋子阵亡过程、网络通信数据处理,再将数据传回,在显示层输出;事件响应层:根据各个控件的事件和控制变量的值选择对应的数据处理方式并传输数据进行处理,主要有背景的KeyDown事件,各按钮、多选、单选的单击事件,Winsock的数据传输事件等。1.2.2处理流程(1)单机模式顶层图:符合规则不符合规则选中棋子并单击另一位置无操作/交换棋子选中棋子并单击另一位置导入布局保存布局玩家一存储器导入布局保存布局玩家二存储器准备阶段准备阶段规则判断无操作/交换棋子开战规则与时间设置选中棋子并单击另一位置不符合规则选中棋子并单击另一位置
13、玩家一玩家二战斗阶段战斗阶段规则判断移动棋子或进行战斗求和/回复求和请求/投降一方胜利一层图:N标识选中记录当前棋子判断当前棋子与记录棋子的关系两者不为同一棋子且为同方棋子两者为同一棋子或不为同方棋子标识未选中Y战斗阶段战斗阶段规则判断玩家两者为同一棋子或不为同方棋子标识未选中Y准备阶段准备阶段规则判断开战规则与时间设置移动棋子或进行战斗一方胜利是否有棋选中玩家N标识选中记录当前棋子判断当前棋子与记录棋子的关系两者不为同一棋子且为同方棋子交换棋子是否有棋选中二层图:战斗准备阶段开战战斗阶段移动棋子或进行战斗一方胜利交换棋子将记录的棋子移动到当前棋子位置将当前棋子移动到记录的棋子位置修改相应数组
14、的值(棋子对应的底盘、底盘对应的棋子)按规则比较大小小子阵亡,大子移动到小子位置1.3结构主窗体+关于对话框1.4命名规范及目录结构1 棋子图片文件名采用b_和p_加上棋子大小的方式命名2 棋子背面图片采用b_和p_加上back的方式命名3 控制变量采用is加上所控制状态的英文名的方式命名4 棋子与底盘采用控件数组统一命名1.5尚未解决的问题l 主服务器与各登陆者之间的通讯问题l 单机模式下的AI问题2系统数据结构设计2.1结构设计要点2.1.1棋盘底盘的设计数组名作用numofchs棋对应的编号chs棋号对应的棋chspos棋号的位置号position位置号对应的棋号vertex位置与位置号
15、对应数组arc位置号之间的边数组u_arc当前位置号之间的边数组floydd最短路径数组path路径数组3系统出错处理设计3.1出错信息错误名称处理方式输出出错信息文件存储出错放弃存储警告:存储出错文件读出失败放弃读取警告:读取出错网络拥堵等候传输3.2系统维护设计不需维护第四章详细设计1本地程序设计1.1显示层:1) 按顺序将棋子位置保存在顺序文件中,导入时按顺序加载图片;2) 加载主窗体时设置作弊器可用、信息发送不可用、玩家姓名标签不可见、网络选项不可用、可选择网络模式、准备按钮可用、投降与求和按钮不可用、步数设置为0,显示当前时间,导入棋子图片;3) 遮盖过程中隐藏已准备好一方的棋子;4
16、) 显示过程中显示传入参数所对应方的棋子;5) 一方胜利时显示其最终的分数;1.2数据处理层:1) 导入阵形时依次设置棋对应的编号、棋号对应的棋、棋号的位置号、位置号对应的棋号;2) 加载主窗体时初始化位置与位置号对应数组、位置号之间的边数组、当前位置号之间的边数组、最短路径数组、路径数组,是否明棋、是否网络对战、是否炸弹满天飞模式、是否开启键盘模式、是否开启作弊器、是否开始战局、是否首次准备好、双方司令是否存活、是否服务器端、是否已选中、是否已准备、双方分数、单回合时间、所用的端口号、下棋方;3) 遮盖过程:通过循环语句将所有棋子的图片换为背面,不更改实际对应值;4) 显示过程:通过循环语句
17、将所有棋子的图片换为数组中对应值的图片,不更改实际对应值;5) 交换棋子过程:把记录的棋子的纵坐标以及横坐标设置为当前棋子的纵坐标以及横坐标,再将当前棋子的纵坐标以及横坐标设置为记录的棋子的纵坐标以及横坐标;6) 判断是否到达过程:先判断是否为工兵或者炸弹满天飞模式中的炸弹,如果不是则先判断是否在一条线上,即行位置或者纵位置是否相等,如果不是且目标不为营,则将可到达标志置为0,果果在一条直线上,将路径上的距离相加(公路为1,铁路为0),如果和大于1则将可到达标志置为0,否则将可到达标志置为1;如果为工兵或者炸弹满天飞模式中的炸弹,则先将计算最短路径的数组以及记录路径的数组初始化,用Dijkst
18、ra算法计算两位置间的最短路径,如果和大于1则将可到达标志置为0,否则将可到达标志置为1;7) 战斗过程:判断记录的棋子与当前棋子的关系,如果有一方是炸弹或者两方大小相等,则调用阵亡过程使两枚棋子都阵亡;除上述情况以外如果记录的棋子大于当前棋子或者记录的棋子是工兵而且当前棋子是地雷或者满足其他大于规则的则先调用阵亡过程令当前棋子阵亡,在调用移动过程将记录的棋子移动到当前棋子的位置上;除上述情况以外如果记录的棋子小于当前棋子或者记录的棋子则调用阵亡过程使记录的棋子阵亡;8) 棋子阵亡过程:先判断死亡的棋子是否为司令,如果是,将阵亡那方的司令存活标志设为0,之后交换下棋方时调用遮盖过程后显示此方的
19、军旗。无论是否为司令,之后判断是否为地雷,如果不是则将此方可移动棋子数减一,并将其设为不可见,调用移除棋子过程,将其移动到窗体左上角;9) 移除棋子过程:将移除位置四周的路径距离减一;10) 摆放棋子过程:将移除位置四周的路径距离加一;11) 和棋过程:发出提示,初始化棋局;12) 胜利过程:发出提示,初始化棋局;13) 投降过程:发出提示,调用另一方胜利过程,初始化棋局;14) 判断行营过程:用当前位置与行营位置进行比对,判断是否为行营。1.3事件响应层1) 加载主窗体时调用初始化过程,并设置相应显示;2) 单击准备按钮时判断是否为明棋,若不是则调用遮盖过程,将已准备好的一方棋子图片换为棋子
20、背面图片,如果双方均已准备则进入开战状态;3) 单击棋子时,如果还未开战则再判断是否已经选中,如果还未选中则把选中标志置1,保存已选择的棋的位置;如果已经选中,则判断是否为己方棋子以及是否符合摆棋规则,如果符合则调用交换棋子过程将两个棋子交换,将选中标志置0;如果已经开战,再判断是否已经选中,如果还未选中则把选中标志置1,保存已选择的棋的位置;如果已经选中,则判断是否为对方棋子以及是否符合吃子规则以及是否能够到达,如果符合则调用战斗过程进行处理,将选中标志置0;4) 单击底盘时,如果选中标志为1,则先调用判断是否到达过程,如果能够到达调用移动棋子过程将棋子移动到指定位置,其他情况不作反应;5)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 认识实习报告 认识 实习 报告
链接地址:https://www.31ppt.com/p-2885097.html