




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
青岛理工大学琴岛学院设 计 报 告课题名称:网络五子棋系统学 院:青岛理工大学琴岛学院专业班级:计算机科学与技术10-2学 号:20100301031学 生:王莹指导教师:侯世中青岛理工大学琴岛学院教务处2013年01月04日学 生王莹指导教师侯世中课题名称网络五子棋系统设计时间2012/12/24-2013/1/4设计地点 8教205设计目的1、通过本次课程设计,熟练掌握开发语言C#和开发环境.NET2、加深对C#软件的理解,训练编写程序的良好习惯3、培养良好的程序设计风格(模块划分、接口设计、函数和变量命名规则)和习惯(程序备份、版本更新与控制),提高软件测试、调试的能力与技巧4、提高团队的合作精神设计内容: 一、项目背景进入21世纪,随着计算机网络技术和Internet的不断发展,网络游戏越来越受到广大群众的喜爱,它不仅丰富了人们的业余生活,也增强了人们的思维能力,提高了智力,人们的娱乐方式也随之发生了深刻的变革。由于我对五子棋游戏和网络编程非常感兴趣,所以我的设计报告的题目选为“网络五子棋系统”。 网络五子棋作为网络游戏的代表,以其简单的游戏规则,深刻的智慧深受广大人们的喜爱。同时网络技术使得这一古老的游戏散发出新的活力,更加促进了人类文化的传承。网络五子棋适用面广,老少皆宜,是一种对提高人们智力,提高人们创新能力有着极好帮助的游戏。因此网络五子棋得以迅速的传播。当前网络上流传的五子棋游戏功能并不尽善尽美,其中最主要的问题就是网络对战不能够一起实现,所以我们决定开发一个能够进行网络对战的五子棋系统。二、设计目的 为了更深入地理解TCP协议的具体应用编程技巧,本设计使用功能强大的VS2010开发工具和C#开发语言,开发出一个拥有自己特色的五子棋程序,其中VS2010是一个能开放代码的开发工具,基本C#的扩展平台。就该五子棋程序来讲,它只是一个框架和一组服务,用于通过插件,组件,控件构建开发环境。通过本次课程设计,希望可以熟练掌握开发语言C#和开发环境.NET。从而加深对软件工程以及C#的理解,训练编写程序的良好习惯,培养良好的程序设计风格(模块划分、接口设计、函数和变量命名规则)和习惯(程序备份、版本更新与控制),提高软件测试、调试的能力与技巧,提高我们的团队合作精神。三、设计网络五子棋系统是根据C/S结构(Client/Server结构)设计的,是大家熟知的客户机和服务器结构,它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,对应的优点就是客户端响应速度快。C/S模式的结构拓扑图如下:图 1 C/S模式的结构拓扑图(一)总体设计1、系统总体设计思想本系统的功能是能够实现一个在网络上供客户进行对战的五子棋网络游戏,客户只要登陆到服务器上,并且服务器处于启动状态,就能选择任何其它用户已创建好的游戏或自行创建一个游戏桌,进行五子棋对战游戏。在C/S 模式游戏中,Server 一般提供所有用户的全局信息,并能提供客户之间的信息转发,客户之间的通讯必须通过Server进行。因为在多个客户能够连接到同一台Server上,所以Server必须用Thread 负责每个用户的通讯和消息处理。 服务端程序通过一个Thread 监听客户端的连接,一旦客户连接,为该客户建立连接并启动一个特定的客户thread,利用该连接不断从客户读取数据,实现客户和服务器或者客户与客户之间的信息的交互。2、游戏功能要求 (1)服务器可以同时服务多张游戏桌,每桌允许两个玩家通过Internet对弈。(2)允许玩家自由选择坐在哪一桌的哪一方。如果两个玩家坐在同一桌,双方应能看到对方的状态。两个玩家均单击开始按钮后,游戏才开始。(3)每当玩家走完一步棋子后,棋盘会重新的绘制,并且在游戏室界面上显示该那方下棋,当检测到相当颜色的棋子已经相邻出现的个数达到了五个或者三个,即游戏结束。(4)同一桌的玩家可以聊天。3、系统设计总结构图和流程图图2 系统总体结构图图3 系统总流程图4、服务器端基本的Socket通信服务器端主要需要确定端口,同时绑定端口进行监听,一旦又从客户端发来的连接请求就建立连接并收发信息。其基本处理流程如下图:初始化监听Socket接受新的客户端连接 收发数据 关闭连接图4 SOCKET通信服务器处理流程5、 客户器端 客户端的Socket通信模型与服务器端相似,同样都是初始化Socket之后通过Socket来建立连接,收发数据。区别在于客户端是发送连接请求,而服务器端是接收连接请求。如下图:初始化监听Socket建立连接 收发数据 关闭连接图5 SOCKET通信客户端处理流程图(二)详细设计1、规则(1)下棋规则 在一方落子之前,另一方必须等待。为实现这一功能必须使双方的棋盘交替处于激活(true)状态。在双方网络未连接成功以前,双方的棋盘均处于禁止(False)状态,不接受落子操作。一旦,网络连接成功,持黑子的一方率先激活本方棋盘。此时,黑方棋盘可以接受落子操作。用户用鼠标在棋盘的相应位置上点击左键,程序捕获鼠标在棋盘上的点击位置,并计算出所处行列,在相应位置上显示一枚黑色棋子。自此,黑方操作结束,棋盘再次被禁止。然后,将落子的行列信息传送给白方。白方接收到黑方的落子信息后,先在本方棋盘的相应位置上显示一枚黑色棋子。然后,再激活本方棋盘进行落子操作。落子后,禁止本方棋盘,在发送棋子信息给黑方。双方重复上述操作直到此局结束为止。(2)胜负规则胜负分为两种,第一种,率先在棋盘上形成横向、竖向或斜向上连续的相同颜色的五个棋子的一方为胜。第二种,一方逃跑或因网络出现异常断开,则另一方获胜。2、客户端设计 2.1登录页面设计 如下图:图6 登录界面(1)设置功能用户名设置和服务器IP地址设置,本机IP地址可自动获取。用户根据自己的需要填写用户的昵称,并且填写服务器的IP地址,如果本机是服务器则不需要填写服务器IP地址,直接点击登陆按钮即可登录,若本机不是服务器需要填写相应的服务器IP地址。(2)登录功能 在服务器框内输入服务器端IP地址,以及本人昵称,点击登录按钮。此时客户端开始检测是否可以与服务器端连接。如果可以,则进入游戏室,同时向客户端发送用户信息,得到信息后,服务器端开始循环检测该用户是否坐到某游戏桌上, 获取每桌玩家情况及昵称字符串。每桌格式:在哪桌有人SitDown,选择的黑子还是白子。服务器端检测到信息后,会将信息显示出来。并发送到游戏大厅下边的信息框里。如果不可以,则会显示连接失败。 2.2游戏室界面设计如下图:图7 游戏室界面 (1)切换功能实现三子棋与五子棋的切换功能,并在窗口的标题处显示玩家玩的是三子棋还是五子棋,当进入游戏室时,默认的是三子棋。当处于一桌的两个用户登录成功,从游戏大厅进入到游戏室时,若一方从三子棋切换到五子棋,另一方不需要切换,默认切换。(2)开始功能点击开始按钮以后,开始游戏,同时在LisBox1信息框里显示该哪方下棋。开始下棋以后,会有事件判断下棋位置是否有棋。如果该位置没有棋,则可以点击鼠标左键,从而将棋子下在该位置。随后服务器端事件来获取与方格的第i,j交叉点向四个方向的连子数,此过程每下一个棋子就会执行一次,依次是水平,垂直,左上右下,左下右上,从四个方向上判断游戏是否胜利的算法。(3)退出功能游戏结束,退出游戏用户退出游戏。然后关闭客户端窗体,此时触发PlayingPlaying_FormClosing事件关闭窗体。(4)聊天功能在下棋的过程中,在说话框里可以输入文字,点击发送,发送到服务器。然后通过服务器调用Service类发送到指定用户。(5)音乐播放功能音乐播放功能里包含两个功能,即打开和播放功能,打开按钮可以打开本地的音乐文件,点击播放即可播放音乐。(6)帮助功能提供给玩家一些需要的帮助,例如:下棋的规则和游戏胜负规则。 3、服务器端设计 3.1界面设计 如下图:图8 服务器界面设计(1)启动服务功能点击启动服务按钮,服务器端就会不断的监听用户端的接口,并且予以响应并且在显示框中显示相关的信息,如连接信息、玩家信息、开始信息、退出信息等。(2)停止服务功能点击暂停服务按钮,就会在显示框中显示“开始停止服务,并依次使用户退出!”。(3)限制功能限制功能分为两部分:人数限制和桌数限制。服务器端对于游戏室的人数的限制范围为1300,服务器对于游戏室最多同时开出的桌数的限制范围为1100。用户可根据此数据填写限制信息,但必须要保证数据在此范围内。四、总结经过两个星期的的努力我们组的网络五子棋系统完成了,并在测试的过程中达到了预期的目标。整个设计的过程可以说是一个艰难而又充实的学习过程,许多的知识都是第一次开始接触和学习。如socket的基本知识,以及线程方面等知识。我们的网络五子棋还有很多不足之处,诸如界面设计不够亮丽,还有预想的几个功能,我们参照QQ游戏的内容,觉的我们的游戏还缺少悔棋功能、重新开始功能、并且,我觉得如果在聊天功能中再添加一个常用语功能和表情功能,可以使界面变的更加的友好、方便。虽然有好几个功能我们没有实现,但是在游戏中添加背景音乐的功能我们实现了,这也是我们这次课程设计的主要创新点。因为我们懂得东西有限,还没有能力去把不足进行改善,所以,希望在以后能解决此类问题的时候再去更加完美的去完善这个网络五子棋系统。在这次的毕业设计中,我学到了很多东西,不仅是知识的积累与运用、更是感受了软件设计的整个过程,采用合理的系统架构,使程序员编写代码更加有条理,更加符合软件工程的标准,这才是最重要的。我开始发现其实软件开发并不是纯数学。正相反,数学只占了很小的一部分,它其实是一种哲学,一种有着数学美感的哲学。在这个过程中积累的经验对我来说也是相当宝贵的,我把设计过程中出现的问题,及解决的方案都记录了下来,这也是一份很重要的资料,对我将来的工作一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桂林医学院《传统民居与乡土建筑》2024-2025学年第一学期期末试卷
- 2025年物联网工程技术高级考试题集与答案详解
- 2024年青海社区《网格员》典型题题库(含答案)
- 2025年煤气工程师应聘必-备知识面试模拟题及答案详解
- 班班通课件显示录播
- 渤海船舶职业学院 《时装摄影》2024-2025学年第一学期期末试卷
- 衡水健康科技职业学院《材料生物学》2024-2025学年第一学期期末试卷
- 2025年高级火电运行值班员面试指南与常见问题解答
- 2025年生物制药行业工程师中级考试题库及备考攻略
- 2025年灌溉工程管理基础题库及答案初级版
- 危险性较大的分部分项工程安全监理实施细则
- 《企业的可持续发展》课件
- 咨询服务承揽合同范本
- 施工期间交通导行方案
- 《森林疗养基地建设技术导则》(T-CSF 001-2019)
- 《酒店客户关系管理 》课件-项目三 酒店客户关系管理制度
- 2024年中考英语试题分类汇编
- 2025版高考化学一轮复习第九章有机化合物1甲烷乙烯苯煤石油天然气的综合利用强化训练1含解析新人教版
- 《肿瘤溶解综合征》课件
- 电瓶车以租代购协议书范文范本
- 人教版(2024新版)七年级上册数学第四章 整式的加减 单元测试卷(含答案)
评论
0/150
提交评论