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

1.游戏规则

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

2.五子连珠算法

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

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

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

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

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

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

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

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

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

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

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

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

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

Android 五子棋源码下载

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

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

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

  1. (上)Vue+Echarts构建可视化大数据平台实战项目分享(附源码)

    前言 分享之前我们先来普及一下什么是数据可视化?数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理.数据可视化通俗来说就是:数据的展示.处理和分析.目的是借助于图形化手段,清晰有 ...

  2. (下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)

    回顾 作者用心写作,请动动你可爱的小手点亮大拇指.你的鼓励是作者继续创作的动力- 前端的学习,不能仅仅依靠知识点的学习,实战项目的操作可以帮助我们整理知识点以及提高编程能力,更有助于学习和实践,最重要 ...

  3. 基于MySQL的嵌入式Linux自动抄表系统设计与实现(附源码)

    1. 系统设计 1.1. 服务端程序设计 服务器端程序具有如下功能: ① 同时具备通信和数据库管理功能,协议自定(即收到的哪个字段表示什么意思,为了 简化,可直接用普通字符串,不考虑通信开销问题): ...

  4. 3d饼图 vue_Vue+Echarts构建可视化大数据平台实战项目分享(附源码)(上)

    前言 分享之前我们先来普及一下什么是数据可视化?数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理.数据可视化通俗来说就是:数据的展示.处理和分析.目的是借助于图形化手段,清晰有 ...

  5. 新手程序猿编程实战项目推荐「附源码下载」

    知识更新那么快,跟随不上怎么办?碎片信息那么多,选择恐惧怎么办?别担心,我用心挑选了几个实战项目.长期推送干货.职场心得,让你收获满满. 复制代码 仿今日头条客户端 小白学习编程,最简单的就是手撸一个 ...

  6. 新手程序猿编程实战项目推荐【附源码下载】

    为你精选 ! 知识更新那么快,跟随不上怎么办? 碎片信息那么多,选择恐惧怎么办? 别担心,我用心挑选了几个实战项目. 长期推送干货.职场心得,让你收获满满. 话休絮烦,点击关注,长期推送编程干货! 仿 ...

  7. echarts学习——(下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)

    一个基于Vue前端框架和第三方图表库Echarts构建的可视化大数据平台,通过vue项目构建.指令的灵活运用.组件封装.组件之间通信,使内部图表组件库可实现自由替换和组合.以及一些功能模块的设计及代码 ...

  8. C++毕业设计——基于C+++EasyX+剪枝算法的能人机对弈的五子棋游戏设计与实现(毕业论文+程序源码)——五子棋游戏

    基于C+++EasyX+剪枝算法的能人机对弈的五子棋游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C+++EasyX+剪枝算法的能人机对弈的五子棋游戏设计与实现,文章末尾附有本毕业设 ...

  9. DirectX 12 3D游戏开发实战 -- 龙书随书源码各章项目运行结果概览

    DirectX 12 3D游戏开发实战 -- 龙书随书源码各章项目运行结果概览 第1章 向量运算 第2章 矩阵运算 第4章 Direct3D初始化 第6章 利用Direct3D绘制几何体Box 第7章 ...

最新文章

  1. 在apache中使用 memcache 来作 session 存储
  2. ServletResponse-中文名的下载
  3. 内推 58 人拿到微软 offer!这位大佬有多强?
  4. golang中的strings.HasSuffix
  5. “RPC好,还是RESTful好?”
  6. 计算机启动操作系统的过程,操作系统启动过程
  7. 百度可观测系列 | 采集亿级别指标,Prometheus 集群方案这样设计
  8. photon四种同步方式_【Linux】多线程同步的四种方式
  9. Hadoop集群日常运维
  10. 走进英特尔中国研究院探索创新日:发布最新科研成果与创新策略
  11. 近年NOIP普及组复赛题目的简单讲解
  12. 系统和服务器的关系图,服务器与客户端关系图
  13. 内网渗透中SSh的巧用
  14. 如何利用 Google 开源的 TFCO 构建机器学习模型?
  15. 洛谷—— P2658 汽车拉力比赛
  16. 让R与Python共舞
  17. 计算机科学导论有关论文,计算机科学导论论文
  18. 怎么删除计算机中的服务,小白教你怎么删除系统服务
  19. 【信息收集】渗透测试信息收集的种类及方法(待拆分细化)
  20. Android微信抢红包功能的实现

热门文章

  1. python3学习笔记之八——爬取百度音乐盒临时列表中的音乐
  2. 红米k20 android版本,小米红米K20 Pro系统版本是多少?
  3. 敏捷开发培训课程所想
  4. TL-WAR1200L,TP-LINK企业级路由器远程开机设置,手机开启windows电脑操作方法
  5. 2021-湖湘杯-Web
  6. OLE、OCX和ActiveX控件之间的比较
  7. CAD的秘密小技巧——关联性阵列
  8. 用友NC uapjs RCE漏洞复现(CNVD-C-2023-76801)
  9. MiraiQQ机器人框架部署教程
  10. 系统--电脑开机一声长响