report

本文介绍了中国象棋Android应用的开发情况,包括成员分工、开发环境和项目信息。游戏由四个成员合作完成,使用Android Studio开发,分工包括游戏逻辑、界面设计、启动界面和设置界面。项目利用ButterKnife和utilCode库简化开发,并实现了自定义GameBoardView,AI算法支持异步请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

中国象棋

成员信息

孟印真17343087
莫晓权17343088
梅诗博17343086
刘任浩天17343078

简介

现代大学生每天工作学习很辛苦,需要一款益智小游戏放松一下。于是我们团队开发了中国象棋供大家休闲。

开发环境

  • 操作系统:Windows
  • IDE:Android Studio

成员分工

梅诗博17343086: 游戏逻辑 GameLogic实现
莫晓权17343088:GameBoardView的自定义view,webview实现
刘任浩天17343078:splash界面,游戏主体界面
孟印真17343087:设置界面activity,fragment实现

项目信息

项目结构:activity->项目的五个活动界面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VsABs4wZ-1594947710351)(C:%5CUsers%5CMei%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1594893985009.png)]

开启app时加载本地缓存的splashactivity
在这里插入图片描述
游戏界面:mainActivity
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYd8Ie1C-1594947710360)(C:%5CUsers%5CMei%5CDesktop%5CScreenshot_2020-07-16-18-00-44-141_com.hzy.chines.jpg)]
设置界面,settingActivity(加载了settingFragment之后的)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ULIV86Ei-1594947710363)(C:%5CUsers%5CMei%5CDesktop%5CScreenshot_2020-07-16-18-00-48-829_com.hzy.chines.jpg)]

设置界面弹出框(非activity)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EZcKF8ud-1594947710364)(C:%5CUsers%5CMei%5CDesktop%5CScreenshot_2020-07-16-18-00-55-367_com.hzy.chines.jpg)]

关于信息,aboutActivity
在这里插入图片描述

关于界面的跳转,webviewActivity

在这里插入图片描述

fragment目录主要是前面设置界面的内容

view目录,GameBoardView是自定义的游戏view

game目录是游戏逻辑处理,游戏配置

xqwlight是游戏内容,例如象棋状态,每个子位置的记录。包含第三方的象棋AI算法。

项目使用的库:

butterKnife:ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。

utilCode:utilCode是一个小众的第三方库,其中封装了activity的一些常见api,例如startActivity。SpUtils封装了Sp的存取操作,可以让项目开发变快,节约一些重复开发的工作。

首先是GameBoardView的自定义:

首先重写了onMeasure过程:根据配置信息,做到动态的改变棋盘格子的宽高
在这里插入图片描述

接着重写了onTouchEvent方法:做到检测按压抬起手势时候记录点击位置,根据两次点击位置进行逻辑处理。例如棋子的移动,无效移动等。具体逻辑交由GameLogic类来实现。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fT8CQJ75-1594947710368)(C:%5CUsers%5CMei%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1594894950438.png)]

同时,封装了一些绘制选中特性的方法(drawSelect):

在这里插入图片描述

游戏逻辑类(GameLogic):

​ GameLogic在每一次棋局开始是更新设置信息,例如游戏难度,是否让子,开始移动的顺序等。

​ 根据本地缓存的信息判断是否加载上次棋局或者开始新棋局->维护一个多维数组,记录棋子状态->根据view传进的棋子移动信息判断->是否有效移动->是否吃掉棋子,移除相关棋子信息->是否吃掉将帅,结束游戏

​ 如果是AI移动,则取消判断,直接更新UI

​ 同时,支持悔棋操作将棋局状态回退一步。重开操作,清空现有状态。

AI算法类(第三方):

​ 传入其制定的记录棋局状态的数据结构,返回下一步状态(即AI的移动操作)。这是一个异步请求,获得返回值之前,mainActivity界面中央出现加载的动画。

设置类:

​ 在设置界面更新设置后,通知SP进行更新操作。

WebView类:

​ 界面上方包含进度条,主题即web界面
​ webview的一些配置代码如图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2m1XQHEC-1594947710370)(C:%5CUsers%5CMei%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1594895963898.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值