一、项目介绍及典型用户和场景
这主要是一款你与电脑竞争英语单词接龙的小程序,当你开始游戏后,上方记录你的成绩和你每次接龙规定的用时,你要对电脑给出的单词进行接力,电脑也会对你给出的单词进行接力,下面这个输入框就是你每次需要输入的单词,当你未在规定的时间之内输入正确的单词时,系统自动判断你输了,此时game over,当你得分达到10分时,系统自动判断你赢了。当然目标得分可以修改,加大挑战难度。
这可以帮助那些不想记单词的人提高对单词的兴趣。
二、界面组成
这个小程序主要包括两个界面,index界面和game界面。
演示界面如下:
index界面:
game界面:
运行结果界面:
三、控件和技术
1:首先Index界面要实现的功能就是,定义了游戏的标题和游戏的规则,当我们点击开始游戏这个按钮之后,触发事件,它在那个startGame函数里面调用wx.redirectTo()这个接口,它会跳转到game界面。
2.接着game界面要实现的第一个功能就是,统计得分和显示每一次单词接龙的倒计时;
我们用score这个类和timer-wrapper这个类分别来显示分数和倒计时,timer-wrapper类里面的timerNumber用来显示圆圈里面的时间数字,我们用setInterval来刷新倒计时的数字。
3:接着实现的第二个功能就是输入功能,下面三行是键盘,每输入一个字母,他会触发writeAnswer这个事件,然后判断输入的这个字母是未定义的,还是删除键,或者是正确的字母,最后输入完成之后把输入的单词赋给answer。
全部输入完成后,按ok按钮,他会帮你进行判断输入的是否正确,它触发了responseAnswer这个事件,里面调用了answer函数。
answer函数里面,进来调用validate函数先去大词典里面搜寻单词,看看是否在里面,是的话,再看看这个单词是否在这之前出现过,如果出现过的话,则报错,重新输入;
如果前面的输入没有问题的话,更新你的单词链的长度同时得分加一,并且记录你输入的每一个单词的首尾字母并进行更新;
4.下一次轮到你输入有一个时间限制,他会调用一个startTimer函数(144行)来判断你十五秒内是否输入了正确的单词,如果15秒内还没有输入正确的单词,则调用gameOver函数(186行),系统判断游戏结束。
如果得分达到10,则系统判断你赢了。
5.接着我们要实现的第三个功能就是清晰地在这个方框内显示我们接龙的单词,我们用scroll-view这个组件来滚动单词。你要输入以上一个单词的最后一个字母开头的另外一个单词,输入正确后,单词链长度会更新,然后我们用word-item-wrapper这个类来刷新下一个单词;
四、遇到的问题及解决办法
1.有些单词存在大词典里面,但是当你输入完单词,按了ok按钮后,它会显示错误。
这应该是在大词典里面没有搜寻到单词或者是大词典里面的单词不全,现在在小程序里面没有找到错误,后续会对大词典里面的单词进行补充。
五.项目测试及上线情况
小程序基本完成,可能还有一些bug存在,没有测试出来。
小程序现在已经上线在微信平台了,如图:
六、心得体会
通过这个实验,我们每一个可能对浪漫的理解不一样,有的人觉得学习就是一种浪漫,我也是这么觉得的。
并且通过这个小程序的实验我学到更多有关如何去写一个小程序,要先从视图层开始写起,然后再从视图层里里面的每一个控件去设计它的样式和逻辑关系,能让这个小程序的每一个部分逐渐显示在我们眼前,这样才能做出一个相对完整的小程序。