Android 自定义控件实现基本象棋游戏

#####周末闲来没事, 以自定义控件的方式写了一象棋游戏, 实现了象棋基本走子吃子规则, 红黑双方轮流走棋. 先贴上apk下载地址, 感兴趣的可以下载下来玩玩(虽然不能一个人玩[滑稽])

github项目地址: https://github.com/EshelGuo/Chess

先贴一运行效果图(棋子棋盘图素在百度上找的, 所以不是很清晰):

这里写图片描述

实际上写这个象棋也就是写来玩玩, 但既然写到博客上那就不能随便贴个图贴个代码草草了事, 我就大致说下我的基本思路.

最初的设想其实很简单, 就是继承View通过 canvas.drawBitmap 这个api 分别将棋盘棋子画到画布上, 通过计算棋盘边界宽度和格子宽度, 来将Android中的坐标(左上为0,0)转化为象棋中的坐标(左下为0,0 x轴1到9, y轴1到10)来计算走子吃子, 反过来转换来进行绘制.
这里写图片描述

上图是整个象棋游戏的结构 ChessView即整个象棋游戏的自定义控件, 枚举类Color来代表红黑阵营,Type来代表 车马炮 等棋子种类 Pieces 则代表棋子 Location类来将棋子坐标和像素点坐标进行互相转换, PiecesFactory 用来初始化开局游戏棋子位置, Style类用来控制棋子棋盘样式, ResCache则对Bitmap进行了缓存, Rule类用与控制能否吃子走子逻辑以及一些样式配置, Game类代表一盘游戏, 并担当了ChessView与Rule调用的桥梁, Game类负责容纳32个棋子以及3个空位置(空位置用来标志上次走动的轨迹), Rule类种通过切换阵营来实现红黑双方轮流走子.

感兴趣的可以到github把代码拉下来看看

猜你喜欢

转载自blog.csdn.net/qq_27070117/article/details/82155662
今日推荐