博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简易五子棋AI算法分析
阅读量:4315 次
发布时间:2019-06-06

本文共 689 字,大约阅读时间需要 2 分钟。

五子棋是我最喜欢的棋类之一,其多种可能性和不确定性为其增加了神秘色彩,其中分为禁手模式和不禁手模式。这里就不多说了

主要想说一下,五子棋AI算法的整个流程。

由于五子棋的判断很简单,就是以一个点为中心向 "米" 字型扩散,任意有5颗则胜利。所以不再多说。

要想实现人机对战,给机器聪明的大脑。我们必须将棋型转化为数字模型供机器参考

例如,当遇到活4的情况(危险性最大),我们给它设置一个最大值。

总体的流程就是,先遍历棋盘每一个点的八个方向(当然边缘点除外),代码如下

void traversal(int n, int *i, int *j) 

{
    switch (n)
    {
    case 1:*i += 1; break;
    case 2:*i += 1; *j += 1; break;
    case 3:*j += 1; break;
    case 4:*i -= 1; *j += 1; break;
    case 5:*i -= 1; break;
    case 6:*i -= 1; *j -= 1; break;
    case 7:*j -= 1; break;
    case 8:*i += 1; *j -= 1; break;
    }
}

 

 

while (n != 5)

{

      k1 =  chessType(n, p, q);

        n += 4;            /* k1,k2为2个反方向的棋型编号 */
        k2 = chessType(n, p, q);
        n -= 3;

}

//巧妙利用循环,实现n从1遍历到8

 

转载于:https://www.cnblogs.com/Ten10/p/6527456.html

你可能感兴趣的文章
win64 Python下安装PIL出错解决2.7版本 (3.6版本可以使用)
查看>>
获取各种类型的节点
查看>>
表达式求值-201308081712.txt
查看>>
centos中安装tomcat6
查看>>
从Vue.js窥探前端行业
查看>>
学习进度
查看>>
poj3368 RMQ
查看>>
“此人不存在”
查看>>
github.com加速节点
查看>>
解密zend-PHP凤凰源码程序
查看>>
python3 序列分片记录
查看>>
Atitit.git的存储结构and 追踪
查看>>
atitit 读书与获取知识资料的attilax的总结.docx
查看>>
B站 React教程笔记day2(3)React-Redux
查看>>
找了一个api管理工具
查看>>
Part 2 - Fundamentals(4-10)
查看>>
使用Postmark测试后端存储性能
查看>>
NSTextView 文字链接的定制化
查看>>
第五天站立会议内容
查看>>
CentOs7安装rabbitmq
查看>>