【C#大作业】你画我猜——设计文档
设计文档
- 1 系统功能说明
- 2 运行环境说明
- 3 系统概要设计
- 3.1 系统总体功能设计
- 3.2 系统接口设计
- 4 系统详细设计
- 4.1 登录界面模块设计
- 4.1.1 模块描述
- 4.1.2 模块UI
- 4.1.3 模块类设计
- 4.2 大厅界面模块设计
- 4.2.1 模块描述
- 4.2.2 模块UI
- 4.2.3 模块类设计
- 4.3 游戏房间模块设计
- 4.3.1 模块描述
- 4.3.2 模块UI
- 4.3.3 模块类设计
- 5 功能运行效果
- 5.1 登录
- 5.2 大厅
- 5.3 进入房间
- 5.4 玩家画图
- 5.5 猜题
1 系统功能说明
该系统采用C/S架构,是一种可以联机进行你画我猜的游戏程序,玩家登录后,可选择进出房间,聊天,画图,猜图等功能。
玩家首先用不可重名的用户名登录,之后会进入房间大厅,在大厅里玩家可以自由选择想进入的房间,也可以在大厅与其他玩家进行即时聊天。
进入房间后,聊天窗口会提示玩家进出房间的消息并刷新玩家列表。第一个进入房间的玩家,会默认成为画题的一方,系统会给其作画题目;之后进入的玩家都是猜画的一方,仅能知晓题目的字数。
玩家均有用户列表,退出房间,即时聊天功能。画家额外拥有刷新题目,五种不同颜色画笔以及擦除的作画功能。猜画玩家专享答题窗口,将猜测的答案发送出去后,系统会提示其正误。只要有一名玩家猜中,此回合游戏就结束,系统将对每个玩家进行弹窗通告某个用户猜对了,并且猜对的玩家成为画题人。若作画玩家中途退出,将任选一名玩家为新的作画人。
2 运行环境说明
编译环境:visual studio 2019;
采用TCP模式,C/S架构,服务端使用WCF服务库,客户端使用WPF应用(.NET Framework);
系统实现多台计算机联机画板和联机通信。
3 系统概要设计
3.1 系统总体功能设计
用户登录:
用户名不能为空,不能重复; 大厅有四个游戏房间,房间下面有对应的房间信息(房间号和、房间人数),玩家可随意进入;
大厅聊天:
用户user发送消息送到服务器,服务器遍历在线玩家列表发送给所有玩家;
房间内聊天、房间内猜题:用户user发送消息到服务器,服务端遍历该房间内玩家列表将消息发送给所有玩家;
墨迹的发送:
画板新增墨迹之后对墨迹进行打包转化成string类型发送到服务端,服务端发送给该房间内所有玩家,然后进行转化,添加到画板上;
题目的刷新:
画题人点击刷新按钮,服务端会读取题库随机返回一个题目,同时对房间内所有玩家题目部分进行相应的更新;
猜题:
猜题人猜题,服务端返回相应的提示(正确或者错误),如果正确,所有用户都会收到该用户猜对的信息,猜对的玩家成为新的画题人,其余玩家猜题,画板清空,题目刷新。
玩家退出房间:
如果是画题人退出房间,在剩余的猜题人中选取一个成为画题人并更新其面板,清空墨迹信息。房间用户收到退出提示,大厅房间信息更新;
退出系统:
如果玩家在游戏房间内退出系统,先执行退出房间,再执行退出系统,大厅消息栏提示用户退出。
3.2 系统接口设计
##服务端实现的接口:
[OperationContract(IsOneWay = true)]
void Login(string userName); //登录系统[OperationContract(IsOneWay = true)]
void Logout(string userName); //登出系统[OperationContract(IsOneWay = true)]
void Talk(string userName, string message); //大厅聊天[OperationContract(IsOneWay = true)]
void InRoom(string username, string roomname); //进入游戏房间[OperationContract(IsOneWay = true)]
void Room_Talk(string userName, string message); //房间内聊天[OperationContract(IsOneWay = true)]
void sendink(string username, string ink); //传送笔迹[OperationContract(IsOneWay = true)]
void Guess_talk(string username, string message); //猜题框消息[OperationContract(IsOneWay = true)]
void Gusee_win(string username); //猜测正确[OperationContract(IsOneWay = true)]
void change_hua(string username); //改变画题人[OperationContract(IsOneWay = true)]
void Refersh_Timu(string username); //刷新题目[OperationContract(IsOneWay = true)]
void RoomOut(string username); //用户退出房间
客户端实现的接口:
[OperationContract(IsOneWay = true)]
void ShowLogin(string loginUserName, int[] roomcount); //显示新用户登录游戏,进入大厅[OperationContract(IsOneWay = true)]
void ShowLogout(string userName); //显示用户退出游戏[OperationContract(IsOneWay = true)]void ShowTalk(string userName, string message); //在大厅发消息显示消息内容[OperationContract(IsOneWay = true)]
void InitRoomUsersInfo(string RoomUsersInfo, string ink, bool hua_or_cai, string timu); //初始化房间玩家列表[OperationContract(IsOneWay = true)]
void ShowInRoom(string username); //显示用户进入房间[OperationContract(IsOneWay = true)]
void ShowOutRoom(string userName); //显示用户退出房间[OperationContract(IsOneWay = true)]
void Showlabel(string labelname, int roomusercount); //大厅界面显示四个房间的人数[OperationContract(IsOneWay = true)]
void Show_Room_Talk(string userName, string message); //显示在房间里聊天的消息[OperationContract(IsOneWay = true)]
void Show_Room_Talk_error(string message); //显示在房间里聊天的消息[OperationContract(IsOneWay = true)]
void Show_Guess_Talk(string userName, string message, string daan); //显示猜测聊天框中的聊天消息[OperationContract(IsOneWay = true)]
void Showink(string ink); //显示墨迹信息[OperationContract(IsOneWay = true)]
void Show_Guess_win(string username); //显示用户猜中[OperationContract(IsOneWay = true)]
void Show_Refersh_Timu(string username, string Timu); //刷新题目后,在各个玩家界面显示[OperationContract(IsOneWay = true)]
void Show_Cannot_login();//提示用户不能登录[OperationContract(IsOneWay = true)]
void InitNewchutiren(string timu); //初始化新的出题人界面[OperationContract(IsOneWay = true)]
void change_hua_or_cai(bool hua, string username); //改变画题人和猜题人
4 系统详细设计
4.1 登录界面模块设计
4.1.1 模块描述
用户可以使用不同的用户名称进入游戏,若用户昵称已存在,则不能进入游戏。登录成功后“开始游戏”按钮变成不可点击状态,同时登录界面隐藏,大厅界面出现。
4.1.2 模块UI
图4-1 玩家登录界面
4.1.3 模块类设计
要实现登陆,首先需要用户名,登录成功与登录失败时控件的显示以及提示的消息
4.2 大厅界面模块设计
4.2.1 模块描述
游戏大厅有四个游戏房间,房间下方显示房间信息(房间号、实时房间人数),玩家可以在游戏大厅任意选择一个游戏房间开始游戏;
右边是聊天界面,玩家可以在这里与其他在线玩家进行即时聊天。
4.2.2 模块UI
图4.2 玩家进入大厅,右边有即时聊天窗口,玩家可任人选房间进入游戏
4.2.3 模块类设计
A. 大厅房间的实时显示
B. 大厅的即时聊天窗口的提示及互动
C. 用户点击房间并进入房间的按钮事件
D. 初始化新进房间的用户界面
E. 用户在大厅退出游戏及其提示
4.3 游戏房间模块设计
4.3.1 模块描述
房间的主要功能:玩家列表的显示、画板的实现、题库的实现、猜测聊天窗口和房间聊天窗口的交互实现。
4.3.2 模块UI
图4.3-1第一个进入房间的玩家默认作为画家,有画笔和擦除,刷新题目,即时聊天,退出房间等功能
图4.3.2 后来的玩家作为猜画人,能退出房间,即时聊天,有猜题专栏
4.3.3 模块类设计
A. 玩家列表
string[] users = RoomUsersInfo.Split('、');this.userlist.Items.Clear();for (int i = 0; i < users.Length; i++){this.userlist.Items.Add(users[i]);}
B. 房间聊天的交互式实现
C. 猜测聊天框的实现
D. 笔刷墨迹信息的交互实现
E. 题库的设计原理及实现
5 功能运行效果
5.1 登录
图5-1-1 登录注册界面
5.2 大厅
图5-2-1 玩家进入大厅通告,大厅聊天
图5-2-1 大厅玩家退出通知
5.3 进入房间
图5-3-1 第一个玩家进入房间,画笔及擦除功能,换题功能,聊天功能,退出功能
图5-3-2 后来的玩家为猜题玩家,有专享的答题窗口
5.4 玩家画图
图5.4-1画家作画
图5.4-2画家擦除
图5.4-3画家换题,并清空画布
5.5 猜题
图5.5-1 玩家猜题错误
图5.5-2 玩家猜中
图5.5-3其他玩家界面显示有玩家猜中
图5.5-4 猜中人当画家
图5.5-5 原画家退出,系统随机选一人当画家
【C#大作业】你画我猜——设计文档相关推荐
- 虚拟现实大作业——VR游乐园之需求分析文档
虚拟现实大作业--VR游乐园之需求分析文档 一. 引言 1.1 编写的目的 本文编写的目的是为VR游乐园项目的开发提供: (1).软件要求:在Unity中,使用设备连接工具steamVR.VRTK电脑 ...
- Python数据分析大作业 4000+字 图文分析文档 销售分析
资源地址:Python数据分析大作业 4000+字 图文分析文档 销售分析 +完整python代码 数据来自某商场,具体商业数据保密 资源地址:Python数据分析大作业 4000+字 图文分析文档 ...
- 团队编程项目作业2-象棋游戏设计文档
http://www.cnblogs.com/Ggao 转载于:https://www.cnblogs.com/1501193636anqila/p/7732876.html
- HTML5期末大作业:网站——美丽家乡(含HTML+CSS+JS源码及课程设计文档)
HTML5期末大作业:网站--美丽家乡(含源码及课程设计文档) 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多?没有合适的模板?等 ...
- 网页设计作业 HTML5期末大作业:旅游网站设计——蓝色的地方旅游门户(9页) HTML+CSS+JavaScript
HTML5期末大作业:旅游网站设计--蓝色的地方旅游门户(9页) HTML+CSS+JavaScript 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. ...
- HTML5期末大作业:旅游网页设计——西安旅游9页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
HTML5期末大作业:网站--西安旅游9页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业 ...
- HTML5期末大作业:web网页设计与开发网站设计——爱奇艺首页(1页) HTML+CSS+JavaScript
HTML5期末大作业:web网页设计与开发网站设计--爱奇艺首页(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网 ...
- HTML5期末大作业:企业网页设计——摄影店铺5页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
HTML5期末大作业:企业网页设计--摄影店铺5页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计 HTML+CSS+JavaScript(毕业设计) 常见网页设计作业题材有 个 ...
- HTML5期末大作业:宠物网站设计——布偶猫(7页)带留言板 HTML+CSS+JavaScript web结课作业的源码 web网页设计实例作业 html大学生网站开发实践作业...
常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 军 ...
- HTML5期末大作业:直播网站设计——仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码
HTML5期末大作业:直播网站设计--仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码 临近期末, 你还在为HTML网页设计结课作业, ...
最新文章
- 玩转Vuejs--核心原理
- golang的channel使用
- django使用ckeditor富文本编辑器-转
- 20164317《网络对抗技术》Exp9 Web安全基础
- js node 打包mac应用_混搭 TypeScript + GraphQL + DI + Decorator 风格写 Node.js 应用
- 阿里巴巴Druid数据源,史上最强的数据源,没有之一
- 机器学习笔记:(时间序列中的线性回归)如何选择预测变量
- ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生
- Android动态加载技术三个关键问题详解
- Objective-C依然占C位,Swift和SwiftUI在iOS 15中的使用情况
- 字节跳动异构场景下的高可用建设实践
- 2.微型计算机系统的基本结构及计算机各个部件的功能
- 进不去系统,解决办法
- onmouseover|onmouseout和onmouseenter|onmouseleave的区别
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_25-前后端请求响应流程小结...
- electron Windows和mac 的菜单栏隐藏
- 从架构到平台, POWER 9处理器最全解读
- kubernetes架构及核心概念
- gyb优化事项(1)
- c1语言学生综合测评,学生综合素质评语
热门文章
- 有限差分法及matlab实现,有限差分法与matlab实现
- java服装销售系统课程设计_毕业论文(设计)基于javaweb的服装销售管理系统的设计与实现.doc...
- dm7数据库单机安装步骤
- js头像裁剪实现——canvas+Jcrop+jQuery
- viper4android 6.0脉冲,【详解】v4a音效脉冲样本
- 用VBA制作Excel单选框和多选框
- 手机投屏不是全屏怎么办_手机投屏怎么满屏
- 测试鼠标点击速度软件编程,怎么测试鼠标自动点击速度
- [EXUI][原创]菜单简单创建和点击事件的触发
- SwiftUI Button精品组件之完美的SwiftUI抖动按钮效果(教程含源码)