笔者是一位多年的象棋爱好者,早在2005,中国象棋有款软件奇兵1.04,当时打败特级大师于幼华,又打败了柳大华,后期软件和计算机硬件的发展,象棋软件又有了质的飞越,以象棋旋风和象棋名手最为突出,在高配置下,人类几乎不可能战胜这俩款软件,由于商业性,这俩款软件分别开发了自己的开局库,开发更高版本的引擎。实际上,如果我们学习围棋的Alphazero,利用机器学习,那么只要穷举每一步象棋步骤,再有一个审局判断,那么中国象棋也可以实现自我学习了,最后提取万能开局库即可,当然这里的万能开局库是最佳走法,如果双方都是最佳走法结局也是和棋,那么基本没旋风和名手什么事了,而原先的名手和旋风都是通过剪枝使得穷举的数量减少。由于电脑比较傻,在搜索棋库的时候会从头开始,可以设置多个开局库,设置标识位,减少电脑的内存的占有率,完全可以做到和Alphazero一样的完美地步

  最终的结果是垃圾普通电脑配置也可以走出超有质量的棋风,而不是现在的状况为下棋去配服务器甚至有土豪为上华山,电脑主机超过10多万的顶级配置,这对我们人类学习中国象棋会有更深层次的意义

转载于:https://www.cnblogs.com/Joven-Ye/p/8344048.html

AlphaGo 引发的中国象棋之路相关推荐

  1. 中国象棋口诀及要领精髓

    中国象棋口诀及要领精髓 象棋博弈高手 2018-09-05 20:21:18 一.双士缺象畏炮攻,双象少士怕兵冲 二.一车十子寒 三.死子勿急吃 四.卒子过河后应注意: 1.其它后勤子力(车.马.包) ...

  2. 【编程题】中国象棋路灯

    1.中国象棋 题目描述:在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法.在中国象棋中炮的行走方式是:一个炮攻击到另一个炮,当且仅当它们在同 ...

  3. 中国象棋python实现(拥有完整源代码) Alpha-beta剪枝+GUI+历史启发式+有普通人棋力

    目录 摘要 源代码下载 效果 走法计算 评估函数与搜索 Alpha-beta搜索算法介绍 评价函数详解 历史启发式算法 UI设计 算法介绍 摘要 不用神经网络强化学习,只用搜索实现的下象棋!我们的中国 ...

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

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

  5. 基于python的游戏设计与实现-基于Python的网络中国象棋游戏设计与实现

    基于Python的网络中国象棋游戏设计与实现 摘要中国象棋是一种家喻户晓的棋类游戏,随着互联网时代的到来,人们的娱乐方式也逐渐向PC端和移动端上发展.本文将传统的中国象棋游戏和当下的互联网技术结合作为 ...

  6. 初学 Qt 之从零开始的中国象棋小游戏(一)

    最近对 Qt 这个跨平台 C++ 图形应用程序框架很感兴趣,闲暇时间多学了一下,收获很多,也踩了不少坑,在这里记录一下,分享心得. Qt 的安装 安装 Qt 并不麻烦,就是网速有点慢.推荐使用国内镜像 ...

  7. 中国象棋棋子移动规则详解(Qt)

    一.象棋介绍 中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史.由于用具简单,趣味性强,成为流行极为广泛的棋艺活动. 中国象棋是中国棋文化,也是中华民族的文化瑰宝,它源远流 ...

  8. java 明棋妙重新循环_Java实现中国象棋(人机对战)

    目录 简介 成品视频 实现思路 界面实现分为了三块 棋盘抽象类 按钮组抽象类 棋子绘制接口 棋盘界面实现 棋子的实现 按钮组的实现 监听工厂和监听类 棋盘绘制类的实现 开始游戏实现 停止游戏实现 游戏 ...

  9. BZOJ 1801 [Ahoi2009]中国象棋(线性动规)(洛谷P2051)

    题意:就是在n*m的格子中放"炮"(中国象棋中的棋子)问有多少种放法,使得没有任意的两个炮相互攻击 思路:我们很容易的得到一列或者一行中最多放下两个炮(我也只能得到这些了,满脑子状 ...

  10. 使用Qt开发中国象棋(一):概述

    最近看了一些关于中国象棋的实现书籍,里面讲述了如何开发一个完整的中国象棋游戏,看了里面的内容,感觉里面的内容特别巧妙的,比如书中提到了用位棋盘来表示中国象棋的棋盘以及一些精妙的走棋算法.基于这些,自己 ...

最新文章

  1. Overleaf-LaTex表格制作
  2. 服务器的操作系统分哪几类,服务器的操作系统分哪几类
  3. python 正则表达式re 模块的使用
  4. spring java code配置_Spring-09-使用Java的方式配置Spring
  5. 排序代码(python,c++) 及 基本算法复杂度
  6. 断开式绑定数据在comboBox中 winform
  7. ZNYW.20180201_02_YunWeiJianXiu_ShouYe.svg
  8. 虚拟机+centOS挂载ISO步骤
  9. 安卓导航车机root方法_手机、平板这么好用,为什么车机还这么垃圾
  10. linux系统网络老掉线,Linux使用ADSL上网时经常掉线
  11. html超链接子页面,页面html超链接怎么做
  12. 微博热词搜索并生成云词html(完整)
  13. WINVNC源码阅读(一)
  14. 旷世巨作!20 多位架构师携手打造的“Java 面试核心宝典”限时开源
  15. 一篇文章,助你实现认知突破,重获新生
  16. html语言制作表格模板,十个最简单实用的Table设计模板
  17. 【TI-AM5728】(1)开发环境搭建
  18. 计算机毕业设计之微信小程序的废品回收类程序 垃圾回收app论文
  19. Java核心编程(22)
  20. getchar,putchar与gets,puts的区别

热门文章

  1. tcp压测工具_掌门全链路灰度压测实战
  2. linux 防火墙添加6309端口,关于在linux下部署垂直集群的问题
  3. Qt qlabel 设置字体、大小、加粗等
  4. c语言学习建议,学习c语言的建议
  5. matlab在数学教学,Matlab在数学函数教学中的应用
  6. 适合 Go 新手学习的开源项目——在 GitHub 学编程
  7. 【华为认证】HCIA-DATACOM史上最全精选题库(附答案解析)
  8. 中文金融情感词典发布啦 | 附代码
  9. 【计算机网络】第一部分 概述(1) 数据通信和网络绪论
  10. COM 组件编程--VC知识库读杨老师文章笔记