Tag: 棋类博弃

浅谈棋类博弃的两种实现方式: 模式化和机器学习

在之前发的贴: 软件分享 – 智慧中国象棋 (Chinese Chess) 有朋友就问我, 你这到底是怎么实现的呀? 在我看来, 有两种算法来实现棋类博弃(中国象棋, 国际象棋, 五子棋等等). 这些棋类博弃的游戏一般有以下特点: 两人轮流玩 棋盘上的信息都是公开的 棋手的目标是相反的, 一个取最大, 另一个取最小. 比如象棋中对棋盘的估值无穷大为对黑方执子有利(黑方胜)而无穷小则为对红方有利(红方胜). 模式化的棋类算法 第一种实现方式(就是我12年前的实现方式), 也是最为传统的实现方式, 就是搜索+剪枝. 搜索是在搜索树上(最大最小数 min-max tree), 树的根节点是棋盘的初始状态, 然后比如红方走一步(目标取最小), 搜索树就往下走一层, …