软工课设06_第24组_week 8

#文档名:软工课设06_第24组_week 8
#编写人:杨彦军
#校对:尹鸿伟
#编写时间:2020年10月19日09:32:20



项目目标

  • 游戏规则:N个同学(N通常大于10),每人写一个0~100之间的有理数(不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。
  • 采用单机方式实现,需要为用户提供便利的输入界面。
  • 该游戏每次至少可以运行10轮以上,并能够保留各轮比赛结果。

项目成员

姓名学号
尹鸿伟2018141461316
杨彦军2018141461237

开发环境

基于本周开发时间和难度考虑,我们小组决定首先开发出一个控制台界面的单机demo程序。
为方便地调用matplotlib等第三方库进行游戏结果展示,我们小组决定使用python 3.8.5作为开发环境。
考虑到项目后期的迭代开发,我们项目的开发方向为面向对象开发

代码规范

  我们项目由我们两人共同开发,为方便代码交流,我们规定小组代码规范如下:

  1. 在代码文件编写文件头(包含文件名、源代码功能、修改人、修改日期、修改内容等)。每人每次编写、修改源代码后,需及时修改文件头信息。
  2. 代码中的函数、变量定义使用全称或易理解的缩写。
  3. 代码中的函数要编写函数功能注释,一些关键循环、判断语句编写功能注释。
  4. 代码中待完成的功能利用 # TODO(author): content. 注释。

数据定义

名称类型功能
GameBoardclass游戏中的裁判类,负责游戏结果的计算、记录
Playerclass游戏中的玩家类,负责获取玩家的输入等
playerslist在GameBoard类中存储实例化的Player类
g_numslist在GameBoard类中存储每一次游戏的g number
player_status字典{int: list}在GameBoard类中存储所有用户的成绩和输入
idstring在Player类中存储玩家姓名

程序流程

在这里插入图片描述

下一阶段开发计划

  1. 第8周:完成程序demo版本。
  2. 第9周:完成第8周课堂拓展的需求。

存在问题

  1. 如果满足得分条件的玩家有两个或多个,是否还得N分?
    目前我们仅从开发难度出发,不考虑游戏规则合理性,如果有多个玩家符合得分条件,则都得N分。
  2. 每轮游戏得分是N分,但扣分只有2分,游戏策划是否合理?
    后期可以考虑动态调整扣分。

项目展望

  • 玩家输入数字时,控制台显示密文输入。
  • 游戏结束后可以生成一个.csv的日志文件,记录玩家每一轮结果。
  • 后期加入GUI,B/S模式支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值