CSDN发布时间:2018年04月11日 11:13:52
3月29日会议之后,后端进入了代码实现的阶段,而前端也开始也具体的界面设计。
此后小组集中讨论了三次,会议的主要内容即是编写代码并且解决技术问题,每次内容不多,因此集中发布。
讨论时板书图
主要解决的技术问题如下:
后端
1、Map的数据结构
MapChecker方面,地图的具体存储结构为有向图,用以下存储结构实现:
地图节点存储每个节点拥有的各项属性以及一个弧节点数组。
而弧节点则存放弧尾和权值。
上图的数据结构产生的地图示意图如下:
数据结构定义代码:
class MapUnit{
int mark; //The sign ofh a unit
MapEdge[] edg; //The connect edg
int height; //The height of the unit
int is_factor; //Judge the map status
Factor key; //Store the important thing
}
class MapEdge{
int adjedg; //The other unit sign
int distance; //The length of the edg
}
2、序列化和反序列化
某些静态的对象(比如地图、人物)可以通过文件的方式存储,需要用到时再在程序中读取。要达到这样的效果,需要写入文件和读取文件的格式完全相同,且要将文件中的内容转化成在代码中有意义的量。
我们使用了序列化的方式进行存储,读取时,对文件进行反序列化。
java本身提供了序列化和反序列化的方法,详见:http://www.runoob.com/java/java-serialization.html。
3、位图/位向量
位图不同于计算机图形学中的位图,此处的位图指的是用于存储多个布尔型变量的数据结构。
这种数据结构可以充分利用小空间存储大量数据,当有大量的布尔型变量要处理时,可以申请一个int数组,每一个元素代表一个布尔型的值,通过位运算来获取或修改布尔型的值。
4、单元测试
每个人对自己编码的部分编写单元测试,建立对应的test类,并为单元测试单独编写main函数运行测试获取结果。
前端
前端主要问题在于设计,技术方面,主要有两个问题。
1、javascript
JS描述了网页的行为,因此前端在学习HTML5、CSS的同时需要学习JS的运用。
2、Ajax
前端与服务器的交流,使用Ajax(Asynchronous JavaScript and XML),详见http://www.runoob.com/ajax/ajax-tutorial.html.
目前后端代码量在400-500行,前端设计进度为登陆、注册界面。
进度略有些慢,我们将加快进度。