您的位置:首页 > 大数据 > 人工智能

Android Gomoku五子棋简析(AI 人工智能 GirdView实现,浅显易懂)

2016-11-01 14:33 711 查看

Android Gomoku五子棋简析

开发游戏,首先需要执行力,所以今天我们来简单说一下五子棋,开发思路。

思路有了,做在任何一种平台上,只是语言问题。最后会公布注释详细的可直接运行的项目源代码。(Gradle Build)

原创帖,转载请注明出处,开源思想,欢迎关注探讨Github:https://github.com/Zjinji/Gomoku

作者:尽际

目录

Android Gomoku五子棋简析
目录

学习流程
基础知识

UI设计

AI算法不会进攻但不会落远处空子

开始游戏

学习流程:

基础知识

UI设计

AI算法

开始游戏(人机对战,双人对战)

基础知识

1、Java二维数组的理解
2、Java循环的理解 for while
3、跳转语句的理解
就这么简单,那么假设,你有一定的Java基础。这样就不难解释为什么使用二维数组来设计棋盘。


UI设计

1、棋盘这次我们不使用自定义View画布来绘制了,直接使用很常见的Android原生控件GridView,布局代码如下:


<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:cacheColorHint="#00000000"
android:horizontalSpacing="0px"
android:listSelector="#00000000"
android:numColumns="14"
android:stretchMode="columnWidth"
android:verticalSpacing="0px" />


标准的五子棋棋盘是15 * 15的,在手机上15 * 15有点看不清楚,所以改成14列。
行数的话,本次案例使用16行的设计,即:16 * 14的设计,共 224个格子。

那么GridView的每一个Item如何设计?如果你脑洞打开了,应该想到Item全部用十字型的图片填充就可以了;
但是这样,棋盘边角处就会出现多余的横线或者竖线,所以还要判断是否为边缘区域。

接下来,当你落子时,Item图片替换为棋子样式即可。这部分内容无需赘述,大家看了代码就会明白。


AI算法(不会进攻,但不会落远处空子)

1、防守算法,没有使用网上广泛流传的评分表机制。有待优化研究学习。
即:通过判断对方本次落子点附近的对方棋子各个方向的棋子个数为可落点设置优先级level,最后优先级高的,设定为AI本次落子点。
详情见代码,注释详细。


开始游戏

1、开始游戏:运行即开始。
2、复盘功能:即游戏结束或没有结束,可以让计算机重新展示所有落子过程,每次间隔1秒。
3、重新开始:初始化游戏,开始一局新的游戏。


ok,最后两个按钮懒得替换了,大家自己换一下开心就好。最后附上截图以及源码。



源码传送门:免积分分享给大家

[Gomoku五子
84e9
棋]http://download.csdn.net/download/z279868688/9669217

PS:Github以及这里会持续更新Android有趣的开发。欢迎关注探讨。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: