文章目录
- 一、 项目介绍
- 二、项目功能
-
- 1.项目功能列表
- 2.功能实现
-
- 创建玩家对象
- 设置游戏基本信息
- 输入各玩家本轮的输入值
- 计算本轮的黄金点值
- 胜负判断
- 修改winner和loser的分值
- 记录并输出本轮信息
- 三、运行截图
- 四、阶段总结
-
-
- 阶段成果
- 不足之处
-
一、 项目介绍
- 游戏名称:黄金点游戏
- 游戏规则:N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。
- 游戏采用单机方式实现,需要为用户提供便利的输入界面。
- 该游戏每次至少可以运行10轮以上,并能够保留各轮比赛结果。
- 该游戏采用Python语言编写
二、项目功能
1.项目功能列表
功能编码 | 功能描述 |
---|---|
fun-1 | 创建玩家对象 |
fun-2 | 设置游戏基本信息 |
fun-3 | 输入各玩家本轮的输入值 |
fun-4 | 计算本轮的黄金点值 |
fun-5 | 胜负判断 |
fun-6 | 修改winner和loser的分值 |
fun-7 | 记录并输出本轮信息 |
2.功能实现
创建玩家对象
-
对象基本属性
玩家对象具有三个基本属性,name、decision和score。
name表示玩家姓名,作为区分玩家的信息;
decision表示玩家在某一轮次给出的数值,用于计算该轮次的黄金点值和判断胜负;
score表示玩家在某一轮次过后累计的分值。 -
对象方法
玩家对象具有四个行为,setDeciison,win,lose和info
setDecision用于设置玩家的decision属性;
win表示该玩家在本轮次胜出,分值增加;
lose表示该玩家在本轮次失败,分值减少;
info用于输出该玩家在本轮次过后的基本信息。
代码如下(示例):
设置游戏基本信息
- 变量N为游戏玩家数
- 变量n为游戏轮次数
- 变量time用于轮次循环
- 列表process用于保存各轮次结果
代码如下(示例):
输入各玩家本轮的输入值
- 遍历玩家列表,调用setDecision函数设置玩家本次输入值。
代码如下(示例):
计算本轮的黄金点值
- 遍历玩家列表,根据decision属性计算平均值
代码如下(示例):
胜负判断
- 遍历玩家列表,根据decision属性得出与黄金点值G相差最小和相差最大的玩家下表min和max
代码如下(示例):
修改winner和loser的分值
- 根据judge函数得到的下标,调用相应玩家对象的相应函数修改score属性。
代码如下(示例):
记录并输出本轮信息
- 将本轮各玩家基本信息以及黄金点值输出
- 将本轮各玩家基本信息以及黄金点值保存入列表process
代码如下(示例):
三、运行截图
- 设置游戏基本信息以及玩家信息
阶段成果
本次项目设计,我们利用简便的Python语言完成了主体部分的代码,并实现了基本功能。
不足之处
-
在本次项目设计中,没有添加UI设计,项目的交互性及用户体验很差;
-
该版本未对用户的输入值(包括用户姓名、游戏玩家数和轮数以及用户输入等信息)进行检查,程序健壮性不足,容易发生错误;
-
设置的列表process仅为后续新添加的功能作支撑,在当前版本中并未有实际作用。
-
本版本代码不够简介、优美,功能仍需不断优化改进。
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208213 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!