最近搞了个安卓小项目,名字叫DANGO,跟大家分享下我的实践过程,希望能帮到有需要的朋友。

一开始的想法:

就是想做个简单的围棋游戏APP,平时自己也喜欢下两盘,想搞个能随时随地跟人对战的。名字嘛就随便起了个DANGO,感觉挺可爱的。

DANGO安卓是什么?新手入门指南,快速了解DANGO安卓!

技术选型:

  • 开发语言: Java,毕竟是安卓原生,还是用Java顺手。
  • 小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区

  • IDE: Android Studio,这个没啥好说的,安卓开发标配。
  • 服务器: 本来想自己搭一个,后来觉得太麻烦,直接用的LeanCloud,省事。

DANGO安卓是什么?新手入门指南,快速了解DANGO安卓!

开发过程:

1. 界面设计:

这块儿没啥好说的,就是各种XML布局文件,拖控件,改属性。界面风格力求简洁,毕竟是下棋,要让用户专注于棋局。棋盘是用自定义View画的,用了Canvas的drawLine方法,画了一堆横线竖线,看着还挺像那么回事。

2. 核心逻辑:

这部分是重头戏。主要就是判断输赢,还有落子规则。用二维数组来模拟棋盘,每个位置存储一个值,表示黑子、白子或者空。落子的时候,先判断位置是否为空,然后判断是否符合禁手规则(围棋规则挺复杂的,我简化了一些)。判断输赢就比较麻烦了,要遍历整个棋盘,判断是否有连续的五个同色棋子。这里面各种循环嵌套,写得我头都大了。

3. 网络对战:

DANGO安卓是什么?新手入门指南,快速了解DANGO安卓!

用LeanCloud实现网络对战,主要就是用了它的实时通信功能。每个用户创建一个房间,然后就可以邀请好友加入。落子的时候,把落子的坐标发送给对方,对方在自己的棋盘上落子。为了防止作弊,服务器会验证落子的合法性。

4. AI 对战:

这个是后来加的,想着不能总跟人下,有时候也想跟电脑练练手。AI水平比较菜,就是简单的遍历棋盘,找到一个对自己最有利的位置落子。用了Minimax算法,但是深度不高,所以下出来的棋还是比较傻。

遇到的坑:

  • 线程同步: 网络请求和UI更新要在不同的线程中进行,不然会ANR。刚开始没注意,老是崩溃,后来才发现是线程的问题。
  • DANGO安卓是什么?新手入门指南,快速了解DANGO安卓!

  • 内存泄漏: 安卓的内存泄漏防不胜防。用了LeakCanary来检测,发现了不少问题,比如Context持有时间过长,Bitmap没有及时回收等等。
  • 适配问题: 不同手机屏幕大小不一样,分辨率也不一样,适配起来很麻烦。用了ConstraintLayout和百分比布局,勉强解决了大部分问题。

DANGO安卓版基本实现了围棋的基本功能,能跟人对战,也能跟AI下棋。虽然还有很多不足,比如AI水平太低,界面不够美观等等,但是作为一个个人项目,我已经很满意了。以后有时间再慢慢完善。

免责声明:喜欢请购买正版授权并合法使用,此软件只适用于测试试用版本。来源于转载自各大媒体和网络。 此仅供爱好者测试及研究之用,版权归发行公司所有。任何组织或个人不得传播或用于任何商业用途,否则一切后果由该组织及个人承担!我方将不承担任何法律及连带责任。 对使用本测试版本后产生的任何不良影响,我方不承担任何法律及连带责任。 请自觉于下载后24小时内删除。如果喜欢本游戏,请购买正版授权并合法使用。 本站内容侵犯了原著者的合法权益,可联系我们进行处理。