C# 黑白棋网络对战游戏 设计(3)
基于.net平台开发的网络对战的黑白棋游戏
3系统分析与设计
3.1 系统总体分析
网络游戏是目前互联网提供的主要内容之一。系统支持对战功能外,还需要提供游戏大厅与房间、战绩排名等功能。使玩家通过对战平台,能在Internet上与其它的玩家进行多人游戏模式,提供了一个玩家之间交流经验、聊天交友的好地方。客户端和服务器端的通信。在服务器端,程序需要不断的监听客户端是否有连接请求,已保证多个客户端的连接,服务器通过套接字识别客户端;而客户端只需要指定哪个服务器即可。一旦双方建立连接并创建了对应的套接字,就可以互相传输数据了。
游戏客户端使该游戏的玩家能够通过客户端登入到该游戏大厅,然后玩家的客户端直接与服务器交互。所以,首先需要启动服务器,进行服务器的配置,进行正确的服务器配置和数据库连接并测试成功后,开启服务器。接下来,在客户端,该玩家能够通过登陆界面进入或者注册账号,然后直接与系统服务器交互,进行数据传输。本系统支持的活动列表如下:
(1) 开启服务器; (2) 用户注册; (3) 用户登陆系统;
(4) 用户与系统交互,进行数据传输; (5) 用户战绩记录; (6) 用户进行游戏;
3.2 模块介绍 3.2.1 模块结构图
黑白棋网络对战游戏系统以局域网内的用户为应用对象,经过各方面需求分析,该系统主要由服务器端和客户端两部分构成,各功能模块如图3-1所示。
基于.net平台开发的网络对战的黑白棋游戏
图3-1黑白棋网络对战游戏系统功能模块图
3.2.2服务器端功能模块介绍
开启服务器功能模块:开启服务器,使服务器处在正常工作状态,随时等待响应客户端的连接和发送等请求。
停止服务器功能模块:停止服务器,停止一切数据的接受与发送。
配置服务器功能模块:此功能模块具体实现的功能有限制同时游戏的人数上限和限制同时开出游戏桌数的上限,以保证服务器能够正常运行。
关闭服务器功能模块:关闭服务器。
3.2.3 客户端功能模块介绍
注册功能模块:为用户提供注册功能,注册了账号的用户方可登录游戏大厅进行游戏。
登录功能模块:系统可以验证用户信息,以注册的用户可以通过登录模块进入游戏大厅。
文字传送功能模块:为用户提供简单的文字交流平台。
游戏功能模块:本系统核心模块,用户通过该模块与其他用户进行对弈。 战绩记录功能模块:记录各用户的胜负场次。
基于.net平台开发的网络对战的黑白棋游戏
3.3 设计原理
3.3.1服务器端原理与设计
根据要求,服务器需要提供游戏室,游戏室内可以根据需要开辟多个小房间,每个小房间内提供一个游戏桌,游戏桌两边各有一个座位,分别用编号0和1表示,0代表黑方,1代表白方。每个小房间内最多只允许两个玩家。
玩家进入游戏室后,应该可以看到各个小房间的游戏桌两边是否有人的情况,而且可以决定是否坐到某个座位上。坐到座位上后,才能看到游戏桌上的棋盘。玩家也可以随时离开座位返回游戏室,但视为败方。
服务器启动服务后,需要创建一个线程专门用于监听玩家的连接请求。
在监听线程中,服务器一旦接受一个连接,就创建一个与该玩家对应的线程,用于接收该玩家发送的信息,并根据该玩家发送的信息提供相应的服务。有多少个玩家连接,就创建多少个对应的线程。玩家退出游戏室时,其对应的线程自动终止。
玩家越多需要创建的线程越多。因此服务器限制进入游戏室的玩家数量为100人。 在与每个玩家对应的线程中,服务器收到对应玩家发送的字符串信息后,需要解析字符串的含义,并决定服务器需要执行的操作。字符串分为命令部分和参数部分,命令部分和参数部分之间以及参数部分的参数之间均以逗号分隔。 客户端发送给服务器的命令有:
Login:玩家请求进入游戏室。服务器接受连接后,检查游戏室总人数,如果人数已满,调用“Sorry”命令,否则回送“Tables”命令,并在参数中指明各小房间游戏桌的就座情况,每桌有两个座,第一座表示黑方,第二座表示白方,每座的0表示无人,1表示有人。
Logout:玩家退出游戏室。服务器收到此命令后,清除该玩家对应的信息,结束与该玩家对应的线程。
SitDown:玩家坐到某个小房间的游戏桌座位上,服务器接收到此命令后,将该玩家的昵称、TcpClient对象、桌号、座位号保存到对应的数组中,并将该玩家入座的信息同时告诉该游戏桌的两个玩家。另外,由于座位数已经发生变化,所以还需要将各桌是否有人的情况同时发送给连接到服务器的所有玩家。
GetUp:玩家离开小房间的游戏桌座位,回到游戏室。服务器收到此信息后,需要停
基于.net平台开发的网络对战的黑白棋游戏
止向该桌发送棋子位置及颜色信息,并进行离座处理。同时由于坐到座位上的人数已经发生变化,还要将各桌是否有人的情况发送给连接到服务器的所有玩家。
Start:表示玩家已经单击【开始】按钮,此时服务器需要检测另一方是否也单击了【开始】按钮,如果是,就开始游戏。
3.3.2客户端原理与设计
客户端与服务器连接成功后,需要创建一个接收线程,用于接收服务器发送的信息。在接收线程中,客户端收到服务器发送的字符串信息后,需要解析字符串的含义,并决定需要的操作。
另外,客户端还需要根据服务器发送的命令,及时更新客户端程序的运行界面。 客户端从服务器接收的信息主要有:
Sorry:服务器游戏室人员已满。客户端接收到此命令后,直接结束接收线程,并退出整个客户端程序。
Tables:各小房间的游戏桌情况。客户端接收到此信息后,需要计算对应的桌数,并以CheckBox的形式显示出各桌是否有人的情况,供玩家选择座位。
Sitdown:玩家坐到某个小房间的游戏桌上。客户端接收到此信息后,需要判断是自己还是对家,并在窗体中显示相应信息。
GetUp:玩家离开小房间的游戏桌,回到游戏室。客户端收到此信息后,需要判断是对家离座了还是自己离座后,如果对家离座,显示一个对话框;如果是自己离座,除了设置对应的标志外,不做其他任何处理。
Lost:对家与服务器失去联系。由于游戏无法继续进行,直接从游戏桌返回游戏室即可。
StopServer:服务器停止服务,程序要立即结束。
…… 此处隐藏:891字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高中教育]电子线路高频非线性部分2.1
- [高中教育]中班美术活动——我的小手
- [高中教育]常用三极管参数大全
- [高中教育]计算机常见故障及解决办法
- [高中教育]风机基础环水平度控制方法探讨
- [高中教育]机械安全工程(专升本)阶段性作业3
- [高中教育]2009年安徽省高考语文考试说明刍议
- [高中教育]unit5 let's eat公开课教案设
- [高中教育]计算机网络原理课后习题答案
- [高中教育]2016-2022年中国新能源市场研究与投资
- [高中教育]2015-2020年中国会议行业市场评估及投
- [高中教育]经销商大会峰会主持人串词开场白
- [高中教育]2014新版北师大数学三年级上册小熊购物
- [高中教育]七年级第一学期体育与健康全套教案
- [高中教育]第三章:国际金融市场
- [高中教育]六年级下册数学单元测试-2.比例 北师大
- [高中教育]2016年上海海事大学法学院624刑法之《
- [高中教育]中国碳化钙产业竞争现状及未来五年投资
- [高中教育]网络时代,我们怎么玩
- [高中教育]圆锥曲线——高中数学基础知识与典型例
- 高集医院世界艾滋病宣传日活动方案
- 苏教版六年级英语上册期末试卷含答案
- 全民枪战生化英雄模式幽灵怎么玩 生化
- 灿烂的宋元文化一导学案
- 第2章货币资金与应收款项
- 北师大版八年级下册数学第三章《分式》
- 浅析高分子材料成型加工技术
- 华南理工大学2013年度共青团先进集体及
- 教师资格科目二小学教案模板(共合集)
- 工程扩建可研报告
- 中华人民共和国海事局2014年度招录公务
- 提高农村小学生作文能力的教学尝试
- 徒手心肺复苏术操作步骤
- 毛概试题库7-15章
- 2014-2015学年度(上)初中班主任工作计
- 企业驾驶员安全生产责任书
- 第07章 不等式测试题-2016年高考文科数
- 医疗器械经营企业工作程序
- 考研英语必背36篇_彩版_精华
- 初中9月13-15假期作业 (1)




