软工课设06_第24组_week 14

*#文档名:软工课设06_第24组_week 14
#编写人:尹鸿伟
#校对:杨彦军
#编写时间:2020年11月30日13:10:08



历代版本框架回顾

  经过长达6个星期的迭代开发,我们的黄金点游戏总共迭代出了三个版本,由一开始的控制台程序,到简单的GUI界面程序,再到C/S框架的app应用。
第一版程序
  第一代程序:第一代程序是一个console程序,在这里我们划分了两个类,Player类用来获取每个玩家输入,GameBoard类作为游戏的裁判用来计算G值和得分,并用matplotlib来可视化每轮结果。
第二版程序
  第二代程序:第二代程序在第一代的基础上增加了简单的GUI界面,两个类的职责并无改变。由于未考虑后期开发,我们直接在原来的类里添加了图形化代码。
第三代程序
  第三代程序:在设计第三代程序时,我们小组选择向C/S架构改进。我们将软件架构设计为三层,第一层界面层作为GUI,负责与玩家交互,第二层数据层负责储存和处理游戏数据,第三层网络层负责客户端与服务器的数据沟通。网络层通过socket实现局域网通信。我们将客户端和服务器打包在一个程序中,方便软件的安装。

游戏流程

游戏流程图
  由于我们将客户端和服务器二合一,所以二者的操作流程有些不同。上图中绿色代表玩家(客户端)的操作流程,蓝色代表房主(服务器)的操作流程。
  如果在开始界面选择了“创建房间”,则为房主(服务器),房主需要输入玩家数量,并将自己的IP地址告诉其他玩家们。如果选择了“加入游戏”,则作为玩家(客户端),需要输入房主提供的IP地址,进入游戏后房主和玩家的界面则是相同的,输入自己的数字后,等待服务器返回结果,依然保留了matplotlib的可视化展示功能。
游戏流程顺序图
上图从程序运行层面展示了客户端与服务器的交互流程

运行展示

选择模式
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

存在问题

  • 如果客户端或者服务器意外关闭,整个游戏将结束运行,无法重连继续。
  • 还有很多地方没有做异常处理,比如网络层的异常向GUI穿透、无法判断客户端输入的IP地址是否有效等。
  • 目前每一层都定义在一个文件里,我们应该把它们封装为模块,以方便复用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值