作为资深**象棋爱好者,日常娱乐中对象棋盲棋对弈与训练有过一些经验体会,一直想开发一款能在智能手机上运行的**象棋盲棋训练软件,方便象棋大师级选手和业余爱好者进行日常盲棋训练。本软件系统计划在作者进行盲棋训练的经验体会和实际需求分析的基础上,确定系统的功能和性能要求,对软件系统的用户界面、布局算法、音效和动画等进行了设计,实现一个界面友好、方便高效的Android智能手机盲棋训练软件系统。本系统开发的的目的,一方面是为了进一步学习掌握Android手机移动应用开发技术(包括涉及到的服务器应用相关技术),另一方面,为**象棋盲棋爱好者进行日常盲棋训练提供一些方便与帮助。
- **象棋棋盘显示隐藏及与用户交互,实现棋盘棋子基本界面视图。
- 自由设置盲棋训练的盘数,为初学盲棋者至高手提供数量不等的训练环境。
- 己方棋步输入方式,主要利用语音识别获得口头输入,辅之以文本、屏幕点击等其它输入方式,用户可根据自己的喜好自由选择。
- 对方棋步获得方式,利用本地或者远程**象棋UCCI引擎输出棋步,输出方式为棋步的语音合成(电脑方或远程对手棋步的语音播报),辅之以文本显示为补充手段。
- 用户可根据自己的喜好自由选择电脑方或远程对手。
本系统在Windows 7操作系统 Android Studio开发环境下设计实现,涉及到的主要软件组合如下:JDK、Android SDK、Gradle及Android模拟器(用genymotion比较快)。以下是简单的安装设置步骤(用于备忘):
- 安装JDK
- 安装SDK
- Android Studio安装配置
- Android版本配置
- Genymotion注册安装
4.1 Android系统组件使用情况 4.2 主要功能类介绍
- 1.Controller 定制activity
- 2.Views 开发自定义GameView类用于下棋介面
- 3.Modules 棋局业务逻辑整合了象棋小巫师applet部分代码
- 4.命令按钮 最常用的按钮弄了两个,其余的塞入菜单之中
- 5.菜单 系统设置等不常用的功用在此
- 6.一个可Edittxt组件用来提供当前局面fen串,查询网络时显示结果信息,也可用于输入fen串显示指定局面等,类似状态栏功能 4.3 各功能类详细实现
- 1.开局欢迎动画 利用SurfaceView渐变消失的棋盘寓意下盲棋(完成,以后改为棋子棋盘先后消失而不是同时)。
- 2.棋盘界面显示 自定义View显示下盲棋时需要显示或者操作的主界面,可以随时显示或隐藏棋盘棋子(即将完成)
- 3.电脑下棋逻辑 整合网络上开源的免费引擎代码(完成),今后有时间改成 Native Code.
- 4.网络查询实现
- 5.用户注册功能等
- 训练进度储存与恢复。
- 通过Android NDK套件,使用C/C++实现算法优化、改进与提高电脑选手的棋力。
- 利用云服务器,增加远程盲棋对弈功能(1 vs N),训练之余增加娱乐性与提高实战对弈能力。
- 利用深度学习算法训练自己的语音识别系统,减少外界依赖(这个技术有点难,学习中)。
有兴趣者加入者,请联系 QQ 77156973。
- a、利用SurfaceView完成开场动画。
- b、完成了自定义棋盘view,加了一把锁,解决了棋子显示混乱问题,完成了基本功能。
- c、完成了基本界面功能,增加了音乐与音响效果。
- d、集成电脑思考功能,可以与电脑开干了。
- e、正调试集成语音识别与合成。
- a、训练进度储存与恢复
- b、摆谱功能
- c、加入棋盘摆子功能。
- d、借助云库解残棋。
- e、增加盲棋盘数功能。
- f、广而告之
- g、集成UCCI(C/C++)。
- h、增加服务器功能(用户登录、动态更新管理、1对N等)。
- i、任意棋盘识别成fen。
- j、自学习语音功能。