日期:2016.12.9
班级:计算机科学与技术1班
学校:郑州大学
小组成员 | 任务任务 | 邮箱 |
---|---|---|
郑浩楠 | 程序逻辑设计与编写 | 8*******3@163.com |
简相杰 | 程序通信程序编写 | 2********5@qq.com |
王玥 | GUI设计与编写 | i*******e@126.com |
融合象棋是基于中国游戏产生的新型玩法,在传统中国象棋的规则基础下,融合象棋赋予了【车】、【马】、【炮】、【兵】/【卒】新的能力——两两融合的能力。
例如:【马】+【车】=【马车】。
通过棋子间的融合,融合象棋中的棋子可以同时拥有两种棋子的能力,而已经融合的棋子也可以分开,以此提高棋子的机动性,使游戏更加复杂、有趣。
融合象棋不仅能让玩家感受到与众不同的乐趣,还可以让棋牌游戏的种类更加丰富多彩。
- 良好的用户交互界面(GUI)。
- 背景音乐(Music)与音效(Sound & Effect)。
- 正确的象棋规则,可进行操作。
- 蓝牙(Bluetooth)对战。
- 全球化(Global)的可能性。
- 人工智能(AI)对战的可能性。
本阶段完成用户交互界面(GUI)的设计与编写,主要任务由王玥负责,完成菜单界面(Menu Activity),帮助界面(Help Activity),游戏界面(Game Activity)的编写。
- 完成【菜单页面】的设计与编写。
- 完成【帮助页面】的设计与编写。
- 完成【游戏页面】的设计与编写。
11月17日-11月23日
王玥:用户交互界面的设计与编写。
简相杰:程序全球化的辅助编写。
郑浩楠:游戏素材(图片与音乐)的选择与制作。
本阶段完成音乐服务(Music Service)的编写,添加背景音乐,添加音效,完成相关对话框的编写,为后期游戏运行体验做准备。
- 完成【音乐服务】的编写。
- 完成相关对话框的编写。
- 完成【音乐服务】与其他页面间的通信。
11月24日-11月30日
郑浩楠:音乐服务的编写,以及与其他页面间的通信。
王玥:相关对话框的编写。
简相杰:程序测试,准备蓝牙通信相关内容。
本阶段完成游戏逻辑(Fusion Chess)类的编写,以及游戏布局的编写(Game View),完成基本象棋逻辑和功能。
- 完成象棋逻辑类的编写。
- 完成游戏布局的编写。
- 将象棋逻辑类,游戏布局与游戏界面相结合,完成基本游戏机制。
10月31日-11月13日
郑浩楠:象棋逻辑类的编写,象棋布局的编写,将象棋逻辑类,象棋布局与游戏界面相结合。
王玥:相关对话框的编写。
简相杰:程序测试。
完成蓝牙框架类(Bluetooth Helper)的编写,试图添加人机对战功能。
- 完成蓝牙框架类的编写及其测试。
- 试图添加人机对战功能。
11月14日-11月20日
简相杰:编写蓝牙框架类。
郑浩楠:试图编写人机对战模块。
王玥:程序测试。
本阶段将蓝牙框架类与游戏界面相结合,实现蓝牙对战功能,完成程序测试,修复游戏中出现的BUG。
- 将蓝牙框架类添加至程序,实现蓝牙对战功能。
- 程序测试,修复程序中出现的BUG。
11月21日-11月27日
郑浩楠:将蓝牙框架类添加至程序,实现蓝牙对战功能。
简相杰:辅助添加蓝牙框架类。
王玥:程序测试。
在此App开发过程中我们遇到了以下一些问题:
- 使用Service实现背景音乐播放,按HOME键后台运行,背景音乐依然播放无法停止。
解决方法:在Service中添加计数器,当Activity调用onStop时减1,当调用onResume时加1,计数器大于等于0时播放,小于0时暂停播放。
- 使用大图作为Activity背景导致内存溢出(OOM)异常。
解决方法:将图片直接进行压缩,或者使用Bitmap类进行图片的压缩加载,而不是在XML文件的background属性中直接添加图片资源。
- 使用人工智能算法(博弈树)出现程序卡顿的问题。
解决方法:对博弈树进行α剪枝与β剪枝,使用吃子优先策略增加剪枝数量。
- 蓝牙通信,BluetoothSocket 连接失败
解决方法:采用BluetoothSeverSocket和BluetoothSocket(客户端-服务端)的方式代替单个BluetoothSocket方式。
- 蓝牙通信,只能接收信息,不能发送信息。
解决方法:单独开一个负责接收的线程,用android消息机制,将子线程的信息传到主线程。