基于嵌入式linux五子棋游戏,Android 实战项目之五子棋 附源码

Android五子棋游戏五子连珠算法实现

1.游戏规则

五子棋是两个人之间进行的竞技活动,黑方白方规则规则相同,黑棋必须先行,五连子的方向为横、竖、斜,如黑白色任一方先五子连一线则算胜出。

2.五子连珠算法

在 9 X 9 (这里举例子实际棋盘可以任意大小) 的游戏棋盘中 我们可以把它想象成一个二维数组,黑方下棋子后填充当前点的数组的值1,白方下棋子后填充当点的数组的值2 ,没有下棋子的点在数组中值为0,  黑白双方每走一步 则实际上在给这个二维数组赋值。 所以我们根据这个二维数组的值就可以计算出五子连珠,也可以绘制出棋盘上的黑白棋子。

玩家点击屏幕后拿到一个 屏幕的 x y 坐标 然后除以棋盘每一格的宽高 就可以得到在二维数组中的索引根据X Y 这 两个索引 就可以知道棋子下在了这个二维数组中的那里。

0f67480d778c6347ef5b0fb0d5309ac5.gif

现在笔者带大家分析一下五子连珠的算法, 首先要想五颗棋子连成一线必定有8种可能 接下来我们分析一下有那八中可能.

第一种:如图所示 X轴横向 其中横向四颗棋子已经连成一线 左右两边任意下一颗棋子便五子连珠。可以用一个for循环遍历当前X点索引 , 起始点为 X - 4 结束点为X + 4 一共便利 9 次 如果其中5颗棋子连续则五子连珠 否则只要有一个没连上 直接break;

25036c1baba58c85c64ae4e622639a94.gif

第二种:如图所示 X轴横向 其中左右两边若干棋子 但是都未满足五子连珠 但是如果将中间连上后遍满足

所以在写算法的时候必需以当前棋子索引 前后都要便利5遍 才能确定当前棋子后是否可以五子连珠。算法同上

446f7702d3e09f9ef2f102df2dfcbd2e.gif

第三种:如图所示 Y轴纵向 遍历的时候须要从 Y - 4 到 Y + 4

0207f402d2d9c112a00ed96bd17cb845.gif

第四种:如图所示 Y轴纵向 同理X轴

43f4df6f4200be72699446ad1a126aec.gif

第五种:如图所示  遍历的时候须要从(X -4) (Y - 4) 到 (X +4) (Y + 4)

89013eb7dd1df86d3ea7ea925b7843d3.png

第六种:如图所示  算法同上

1792feb7c19fae930a1dec7d86604d6d.png

第七种:如图所示  遍历的时候须要从(X + 4) (Y + 4) 到 (X - 4) (Y + 4)

1cf3b0695cf5b5430fc1a24afc93ae2b.gif

第八种:如图所示  算法同上

75bc63b54bf3424b25d45fe75303f178.gif

这样五子连珠的算法就介绍完了 下面附上我的源码下载地址 目前我没有加上AI 有兴趣的朋友我们可以一起研究研究 。

Android 五子棋源码下载

用户名与密码都是www.linuxidc.com

具体下载目录在 /2011年资料/Android入门教程/Android 实战项目之五子棋附源码0b1331709591d260c1c78e86d0c51c18.png

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值