创建一个中国象棋的阿法狗——阿法象(0)

最近,阿法狗与李世石九段的人机大战深受关注。我就借着这股东风来写一个系列博客——《创建一个中国象棋的阿法狗——阿法象》。

早在几年前,就在一本书上看到过中国象棋的AI的实现,这几天又在知乎上看了一些大神对于阿法狗的解释,发现两者所使用的大致思路是一致的,用一句话说就是,都是在搜索各种落子情况的同时用策略函数缩小搜索的范围。象棋相较于围棋来说,每一步棋的可能性少,搜索的范围就小,AI可以更加倚重搜索结果,对于策略函数的优化要求就低;而围棋每一步的可能性多,搜索范围就大,无法进行多步骤的搜索,对于策略函数的优化要求就高。阿法狗之所以能如此强大,就是因为他有一个强大的策略网络。

阿法狗太难,我们就来建个阿法象吧。通过阿法象,来看看什么是策略函数。既然要实现AI,那就不如顺便做个界面,做成个人机对战的游戏。既然要做成游戏,那就不如顺便做成跨平台的。

下面来说说这个博客系列的计划吧。

第一篇的任务在上述文字中和接下来的文字中圆满完成了。接下来有三个部分需要开发,前端、后台和AI。接下来的每一篇文章,都至少包含两个部分,一来是因为这样可以及时看到做出来的是什么,二来是避免长期只讲一个部分的枯燥。这个系列我估算一下大概会有30篇文章。

下一篇文章的主题是html5前端页面和后台与AI的数据结构,敬请期待。

创建一个中国象棋的阿法狗——阿法象(0)相关推荐

  1. 朋友写的一个中国象棋游戏,JAVA代码

    朋友写的一个中国象棋游戏,JAVA代码.有兴趣的可以这里下载:中国象棋下载 (1)地址,不知现在还能下否....中国象棋历史悠久,吸引了无数的人研究,现对中国象棋的对战和实现棋谱的制作做如下的设计和说 ...

  2. 设计一个中国象棋游戏,ChessPiece为抽象类,提供代表一个棋子位置的属性和方法,和isMoveLegal();设计ChessPiece的具体实现类(如车,马,帅等)

    设计一个中国象棋游戏,ChessPiece为抽象类,提供代表一个棋子位置的属性和方法,和isMoveLegal():设计ChessPiece的具体实现类(如车,马,帅等),这些类能够根据自身特点实现不 ...

  3. 分享网上找到的一个中国象棋源码

    代码的结构挺好,mvc模式的,给大家分享出来 原创不易,转载请注明出处:分享网上找到的一个中国象棋源码 部分代码 Controller.java package com.zuidaima.chess. ...

  4. 如何用Python画一个中国象棋棋盘?

    今天试着画了一个中国象棋棋盘! #绘制象棋盘 import turtle      t=turtle.Pen() t.speed(100) def angle(x,y):     t.penup() ...

  5. 开源一个中国象棋 alpha zero 程序

    先上代码 github,这个项目现在仍然在积极开发和维护的阶段,通过这个项目你可以组建自己的集群并且训练自己的中国象棋 alpha go: icyChessZero 中国有 13+亿人,中国象棋的受众 ...

  6. python编写人工智能-用Python写一个中国象棋AI?

    /************************************************************** = 民间六子棋(六子冲)人机博弈引擎实现与教程 =** www.leil ...

  7. python 象棋 ai 入门教程-用Python写一个中国象棋AI?

    /************************************************************** = 民间六子棋(六子冲)人机博弈引擎实现与教程 =** www.leil ...

  8. js根据已知数组长度创建一个一样长度的数组并初始化值为0

    var arr = [1,2,3,4,5,6]const arr2 = new Array(arr.length).fill(0)

  9. python创建一个类似于国家象棋棋盘的0-1矩阵_NumPy练习题(全中文并附详细讲解)...

    100道 numpy 练习 1. Import the numpy package under the name np (★☆☆)') 导入numpy模块,设置别称为np import numpy a ...

最新文章

  1. 何恺明团队最新力作SimSiam:消除表征学习“崩溃解”,探寻对比表达学习成功之根源
  2. OpenCV计算机视觉应用程序的交互式视觉调试
  3. 网骗欺诈?网络裸奔?都是因为 HTTP?
  4. 在 .NET Core 中使用 DiagnosticSource 记录跟踪信息
  5. 《GO并发编程实战》—— 条件变量
  6. Android 图片缓存机制
  7. LeetCode刷题——11. 盛最多水的容器
  8. 报错AttributeError: Can‘t pickle local object ‘Worker.__init__.<locals>.<lambda>‘解决办法
  9. 一文带你全面解析postman工具的使用(基础篇)
  10. shell脚本 空格
  11. 打印六级准考证显示服务器,英语六级考试准考证及打印说明
  12. 极限学习机原理(含公式推导透彻)
  13. java面试题--算法集锦(建议收藏)
  14. spring cloud day(6) gateway网关
  15. ElasticSearch:text和keyword的区别、fileds作用、mappings结构对查询的影响
  16. 6 安卓高德地图错误代码_高德开放平台
  17. MYSQL分区表如何保证数据唯一性
  18. 加州大学圣芭芭拉分校计算机研究生,加州大学圣塔芭芭拉分校研究生什么专业好...
  19. 原来这才是 Socket
  20. 使用PCA拟合平面(Plane Fitting using PCA)

热门文章

  1. NX二次开发 布尔运算 UF_MODL_unite_bodies 布尔加
  2. 四轮寻迹智能车的设计(逐飞IMX-RT1064)
  3. 南京理工大学计算机科学与技术学院 毕业生名单,信息学部 计算机与信息学院...
  4. 全球与中国导波雷达液位变送器市场深度研究分析报告
  5. 教你如何更好的进行网页布局
  6. 同方威视与清华大学联合开展人才交流与培养系列活动
  7. 《精益数据分析》的一些总结
  8. 视觉机器学习20讲-MATLAB源码示例(7)-EM算法
  9. Android面试需要考察的方面
  10. Overleaf中参考文献引用失败