前几周虽然有个人作业和结对作业,但我们小组依然至少每周集合2次,每次两小时。但由于我们已经进入编写代码的阶段,因此集合的主要任务即是互相督促,在集合的2小时内集中完成团队项目的任务。而代码则按照之前的“代码架构”进行具体实现,可以讨论的内容主要是具体的技术问题。
后端
目前SessionManager、UserDB、MapChecker、GambleChecker和PlayerChecker主体部分大致已经完成(不保证功能完全正确,这需要在后续的整体调试中确认),已经进入到编写单元测试的阶段。SkillsChecker由于是附加内容,因此可以在整体可以运行之后,再另行编写。GodActor的编写正在进行。
单元测试中主要用的特殊技术是“断言”(Assert),如果使用JUnit进行单元测试,则必须使用断言。如果自行编写单元测试,可以不使用,但是使用起来较为方便。
断言的语法如下:
assert expression : "Error Message";
expression是一个值为布尔型的表达式,后面的字符串则是抛出的错误信息,在断言语句中,默认expression的值为真,如果运行到此处,expression的值为假,那么程序将异常退出,并且显示后面的Error Message。
例如:
int i = 100; i = i + 1; assert i==100 : "i is not 100";
该程序段运行的结果就是
Exception in thread "functionName" java.lang.AssertionError: Error Message
at className1.functionName1(className.java:xx)
at className2.functionName2(className.java:xx)
第一行为报错,告诉程序员程序异常,冒号后方为程序员在断言中编辑的错误信息。
第二行 和 第三行为异常位置,这会告诉程序员在哪一个类的哪一个函数中出现了异常,如果是嵌套调用,则会从内至外依次显示,直到错误所在的最外层。括号里是报错的具体行数(xx为数字)。
需要注意的是,在发布版里面不应该出现断言,因此IDEA提供了很方便的功能——启用/关闭断言,默认是关闭状态,编译可以通过,但是断言语句不会执行。进行如下操作启用断言。
点击图中“PlayerCheckerTest”(此处显示的是你目前的类名),下拉菜单选择“Edit Configurations”,弹出下方的对话框。
在图中红线栏中输入“-ea”即可。
在开发时启用,发布时关闭,就免去了删除断言语句的麻烦。
前端
前端方面,由于此前编写的登陆、注册页面与游戏风格不符,因此两位前端人员换用游戏专用的phaser框架,重新编写前端界面。
phaser官网:http://www.phaser.io/
调研
调研方面,游戏的调研与其他项目不同,需要玩家玩过游戏之后才能给出反馈,因此游戏设计人员联系上了桌游社的同学,使用游戏的桌游版本,在桌游社同学之间进行调研。目前正在顺利进行中。