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

Android Gomoku五子棋简析

开发游戏,首先需要执行力,所以今天我们来简单说一下五子棋,开发思路。
思路有了,做在任何一种平台上,只是语言问题。最后会公布注释详细的可直接运行的项目源代码。(Gradle Build)

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

目录

学习流程:

  • 基础知识

  • 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五子棋]http://download.csdn.net/download/z279868688/9669217

PS:Github以及这里会持续更新Android有趣的开发。欢迎关注探讨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值