设计文档

  • 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#大作业】你画我猜——设计文档相关推荐

  1. 虚拟现实大作业——VR游乐园之需求分析文档

    虚拟现实大作业--VR游乐园之需求分析文档 一. 引言 1.1 编写的目的 本文编写的目的是为VR游乐园项目的开发提供: (1).软件要求:在Unity中,使用设备连接工具steamVR.VRTK电脑 ...

  2. Python数据分析大作业 4000+字 图文分析文档 销售分析

    资源地址:Python数据分析大作业 4000+字 图文分析文档 销售分析 +完整python代码 数据来自某商场,具体商业数据保密 资源地址:Python数据分析大作业 4000+字 图文分析文档 ...

  3. 团队编程项目作业2-象棋游戏设计文档

    http://www.cnblogs.com/Ggao 转载于:https://www.cnblogs.com/1501193636anqila/p/7732876.html

  4. HTML5期末大作业:网站——美丽家乡(含HTML+CSS+JS源码及课程设计文档)

    HTML5期末大作业:网站--美丽家乡(含源码及课程设计文档) 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多?没有合适的模板?等 ...

  5. 网页设计作业 HTML5期末大作业:旅游网站设计——蓝色的地方旅游门户(9页) HTML+CSS+JavaScript

    HTML5期末大作业:旅游网站设计--蓝色的地方旅游门户(9页) HTML+CSS+JavaScript 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. ...

  6. HTML5期末大作业:旅游网页设计——西安旅游9页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计

    HTML5期末大作业:网站--西安旅游9页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业 ...

  7. HTML5期末大作业:web网页设计与开发网站设计——爱奇艺首页(1页) HTML+CSS+JavaScript

    HTML5期末大作业:web网页设计与开发网站设计--爱奇艺首页(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网 ...

  8. HTML5期末大作业:企业网页设计——摄影店铺5页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计

    HTML5期末大作业:企业网页设计--摄影店铺5页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计 HTML+CSS+JavaScript(毕业设计) 常见网页设计作业题材有 个 ...

  9. HTML5期末大作业:宠物网站设计——布偶猫(7页)带留言板 HTML+CSS+JavaScript web结课作业的源码 web网页设计实例作业 html大学生网站开发实践作业...

    常见网页设计作业题材有 ​​个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 军 ...

  10. HTML5期末大作业:直播网站设计——仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码

    HTML5期末大作业:直播网站设计--仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码 临近期末, 你还在为HTML网页设计结课作业, ...

最新文章

  1. 玩转Vuejs--核心原理
  2. golang的channel使用
  3. django使用ckeditor富文本编辑器-转
  4. 20164317《网络对抗技术》Exp9 Web安全基础
  5. js node 打包mac应用_混搭 TypeScript + GraphQL + DI + Decorator 风格写 Node.js 应用
  6. 阿里巴巴Druid数据源,史上最强的数据源,没有之一
  7. 机器学习笔记:(时间序列中的线性回归)如何选择预测变量
  8. ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生
  9. Android动态加载技术三个关键问题详解
  10. Objective-C依然占C位,Swift和SwiftUI在iOS 15中的使用情况
  11. 字节跳动异构场景下的高可用建设实践
  12. 2.微型计算机系统的基本结构及计算机各个部件的功能
  13. 进不去系统,解决办法
  14. onmouseover|onmouseout和onmouseenter|onmouseleave的区别
  15. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_25-前后端请求响应流程小结...
  16. electron Windows和mac 的菜单栏隐藏
  17. 从架构到平台, POWER 9处理器最全解读
  18. kubernetes架构及核心概念
  19. gyb优化事项(1)
  20. c1语言学生综合测评,学生综合素质评语

热门文章

  1. 有限差分法及matlab实现,有限差分法与matlab实现
  2. java服装销售系统课程设计_毕业论文(设计)基于javaweb的服装销售管理系统的设计与实现.doc...
  3. dm7数据库单机安装步骤
  4. js头像裁剪实现——canvas+Jcrop+jQuery
  5. viper4android 6.0脉冲,【详解】v4a音效脉冲样本
  6. 用VBA制作Excel单选框和多选框
  7. 手机投屏不是全屏怎么办_手机投屏怎么满屏
  8. 测试鼠标点击速度软件编程,怎么测试鼠标自动点击速度
  9. [EXUI][原创]菜单简单创建和点击事件的触发
  10. SwiftUI Button精品组件之完美的SwiftUI抖动按钮效果(教程含源码)