`
jcs130
  • 浏览: 130151 次
  • 性别: Icon_minigender_1
  • 来自: Ottawa
社区版块
存档分类
最新评论

黑白棋算法分析

 
阅读更多

╮(╯▽╰)╭

从小不怎么喜欢五子棋,下的不好~也没怎么研究过,我的水平也就是想人机对战算法那样见到三个的就堵一下的那种~

但是我很喜欢玩黑白棋~简单嘛O(∩_∩)O哈!

做完五子棋以后,我想把我喜欢玩的黑白棋也做一个出来,下面是我想的黑白棋游戏的算法分析:

界面和五子棋一样
但是最开始在棋盘中央有四个棋子(两黑两白,交错)

 

在每下一个棋子以后进行判断:
分别从所下棋子位置向左,向右,向上,向下,左上,右上,左下,右下寻找相同棋子(黑子值为1,白子值为-1)直到没有子(值为0)或者找到相同颜色的子

如果找到相同颜色的子,那么中间的棋子全变为相同颜色(改变值,再将棋子重绘)

 

输赢条件:棋盘全部下满,哪个颜色的棋子多,哪个赢

 

不能下子情况:
下子前判断是否可以下子:若不满足下子条件,提示不可以下子,然后让对手下
若要下的位置八个方向上没有相同颜色的子或者与相同颜色的子相邻

 

下子判断方法:
取得将要放棋子的位置
向右检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向左检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向右上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向右下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向左上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向左下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
如果返回值都为NULL 将数据初始化,并提示不能放子。

 

先把上面的基本功能写出来~然后再搞别的吧~哈~

分享到:
评论

相关推荐

    基于自博弈深度强化学习的黑白棋系统.zip

    基于自博弈深度强化学习的黑白棋系统 深度学习(Deep Learning,简称DL)是机器学习(Machine Learning,简称ML)领域中一个新的研究方向,其目标是让机器能够像人一样具有分析学习能力,识别文字、图像和声音等数据...

    Python编程与数据分析-结课报告-五子棋对弈的算法设计

    Python编程与数据分析-结课报告-五子棋对弈的算法设计包含以下两部分文件: 1.【报告】分为五章进行展示,包括程序思路介绍、设计方案、源程序代码、程序运行,以及结语。 2.【代码】包括4个python代码文件,用于...

    黑白棋盘格角点检测算法

    黑白棋盘格角点检测算法 分析了现有黑白棋盘格角点检测算法的不足并提出了一种新的黑白棋盘格角点检测算法

    残缺棋盘覆盖_C++_残缺三格板_残缺棋盘_数据结构_

    残缺棋盘中,要求用三格板(triominoes)覆盖残缺棋盘。在覆盖中,任意两个三格板不能重叠,任意一个三格板不能覆盖残缺方格,但三格板必须覆盖其他所有方格。输出覆盖后的棋盘,输出棋盘时要着色,共享同一边界的覆盖...

    五子棋(人机,人人,联网)

    基础功能:五子棋盘的设计、五子棋子的设计、黑白双方轮流落子的实现、棋局的悔棋功能、棋局进行时的退出功能、胜负的判定、人工智能算法分析。 双人对战功能模块实现的功能:选择双人对战,游戏界面,实现双人轮流...

    C语言编程小游戏集锦

    该课题主要包括使用C语言制作 “贪吃蛇” “黑白棋”,主要考察对函数、结构体,指针,文件等的操作,以及C语言基本规则和算法的掌握,所以完成本课题能够培养较强的设计能力,特别是对C语言的综合应用能力。...

    C语言课程设计案例分析

    案例三 黑白棋游戏 案例四 迷宫问题 案例五 扫地雷游戏 案例六 速算24 案例七 数据结构CAI系统 案例八 进程调度 案例九 存储管理分区分配算法 案例十 通讯录 案例十一 学生成绩管理 案例十二 工资管理 案例十三 图书...

    ECE-Othello:使用MinMax“ AI”(图形课程项目)的C ++和AllegroGL进行的Othello游戏-ECE巴黎工程学院第二年的第二学期编程项目

    欧洲经委会奥赛罗 ECE筹备周期第二年第二学期的算法学/计算机科学/图论项目。 依存关系 Allegro 4( ) ... 黑白棋的启发式/评估功能/奥赛罗,Kartik Ku​​kreja( ) 光标投影功能来自以下资源: 对如何在Ope

    IOI国家集训队论文集1999-2019

    + [欧几里得算法](#欧几里得算法) + [同余方程](#同余方程) * [搜索](#搜索) + [搜索](#搜索-1) + [启发式](#启发式) + [优化](#优化) * [背包问题](#背包问题) * [匹配](#匹配) * [概率](#概率) + [概率]...

    java源码包---java 源码 大量 实例

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    java源码包2

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    java源码包3

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    java源码包4

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    JAVA上百实例源码以及开源项目

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    JAVA上百实例源码以及开源项目源代码

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    人工智能与智能制造V2.pdf

    黑夜下只能看黑白影像? 仿制卡、借用卡、代打卡 一卡通 应用问 题 安全性与便捷性待提升 高科技体验感不强 重点区域无有效监管 访客流程自助化程度低 智慧企业园区 · 一脸通行 畅通无碍 一卡通用了这么久,面对...

Global site tag (gtag.js) - Google Analytics