这个作业属于哪个课程 | https://bbs.csdn.net/forums/fzuSoftwareEngineering2021?category=0&typeId=17222 |
---|---|
这个作业要求在哪里 | https://bbs.csdn.net/topics/601189945 |
个人学号 | 031902244 |
结对成员学号 | 031902234 |
结对小伙伴的作业博客链接 | |
GitHub 仓库地址 | https://github.com/paidayueer/bobing |
视频演示链接 |
GitHub 仓库地址和 commit 记录
- GitHub 仓库地址
https://github.com/paidayueer/bobing
- commit 记录
PSP 表格
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 5 |
· Estimate | · 估计这个任务需要多少时间 | 10 | 5 |
Development | 开发 | ||
· Analysis | · 需求分析 (包括学习新技术) | 500 | 450 |
· Design Spec | · 生成设计文档 | ||
· Design Review | · 设计复审 (和同事审核设计文档) | ||
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | ||
· Design | · 具体设计 | ||
· Coding | · 具体编码 | 500 | 700 |
· Code Review | · 代码复审 | ||
· Test | · 测试(自我测试,修改代码,提交修改) | ||
Reporting | 报告 | ||
· Test Report | · 测试报告 | ||
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 200 | 180 |
合计 |
学习进度条
第 N 周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
1 | 711 | 711 | 21 | 21 | 1.熟悉 JS 语言的基本语法 2.了解与着手编写微信小程序开发的基本组件和布局方式 |
2 | 298 | 1009 | 10 | 31 | 1.学习了全局变量的定义与使用 2.对函数的编写更加熟练 |
结对小伙伴
- 姓名:蔡晶晶
- 学号:031902234
- 作业博客地址:
- 编程工作过程
重点与难点功能及编程思考
-
掷骰子
该功能一开始我想要制作摇一摇效果,但是查找资料后我认为我学习与掌握得还不够熟练,于是转而实现一个点击事件产生随机的骰子点数。
产生随机数的函数先前并没有使用过,只记得有 random() 这么一个随机数产生函数,但尝试着写了一下后发现它只能生成 0-1 之间的随机小数,于是去查找能够生成 [m,n] 范围内的随机整数。这里以产生第一个骰子点数的函数为例,关键代码如下:
randomNum: function () {
// 产生一个 [1,6] 区间内的随机整数
this.setData({
num1: parseInt(Math.random()*6,10)+1
})
})
2. 根据骰子点数变更图片显示
在每一次掷骰子之后都需要根据六个骰子的点数进而显示出不同的图片,并根据显示出的点数来判断是否中奖以及中的是什么奖。
图片变更只需要在随机数生成的函数中在生成随机数后立即更改图片路径即可,关键代码如下:
// 当第一个骰子掷出点数 1 时,更改图片路径为 1 点的骰子图片
if(this.data.num1==1){
this.setData({
image1: '../../images/one_image.png',
one_count:this.data.one_count+1
})
}
3. 结果判定
在上一点的关键代码中,我们可以看到有一条计数的语句
one_count:this.data.one_count+1
这条语句就是用来进行结果判断的基础,在掷骰子之后即六个随机数生成以后,统计每个点数的个数,用来判断当前是否中奖及中奖等级。这里以 “秀才” 为例,关键代码如下:
// 结果查询函数
check: function () {
if(this.data.four_count==1){
getApp().globalData.xiucai_sum = getApp().globalData.xiucai_sum + 1;
wx.showModal({
title: '您的结果是',
content: '恭喜你获得秀才——一秀',
})
}
})
4.历史中奖记录
在上一条中,同样发现还有一条语句
getApp().globalData.xiucai_sum = getApp().globalData.xiucai_sum + 1;
这里我使用了全局变量来统计每次中奖的等级与次数。使用全局变量时,搜索到的教程基本都是使用 ‘app.globalData.x' 语句来进行全局变量的读取与修改操作,但不知道是我使用的方法有问题还是微信小程序开发已经不支持该种方式,调试器会一直报错,不让我这么使用。于是我只能再查找是否还有其他方法,这时我发现还有一种方法即为上面显示的代码,这时候才能够正常进行全局变量的读取与修改操作。
成功统计次数后,需要进行的就是在每次点进 “历史中奖记录” 界面后把次数显示出来,这里我使用了生命周期函数中的 “监听页面显示” 函数,关键代码如下:
// 显示各类奖项的中奖次数
onShow: function () {
this.setData({
num1:getApp().globalData.zhuangyuan_sum,
num2:getApp().globalData.bangyan_sum,
num3:getApp().globalData.tanhua_sum,
num4:getApp().globalData.jinshi_sum,
num5:getApp().globalData.juren_sum,
num6:getApp().globalData.xiucai_sum
})
}