ScottWang96 / AIGame

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AIGame

估值函数

  • 估值函数 不同的走法,其优先级不同。对于每种特定的走法,都需要相应的估值来反映其优劣情况。另外,搜索模块频繁地调用估值函数,需要将估值函数设计的仔细 不同局面 给定相应的估值表

generator函数

  • generator函数 用于每一步生成所有路线。并不是所有的空位我们又要搜索,很多位置明显不合适的我们可以直接排除。

搜索算法和剪枝

  • 最大最小搜索 加 alpha beta剪枝
    1. 我方走棋的层我们称为 MAX层,这一层我方要保证自己利益最大化,那么就需要选分最高的节点。 敌方走棋的层我们称为MIN层,这一层敌方要保证自己的利益最大化,那么就会选分最低的节点
    2. 初步选定2层
    3. Alpha Beta 剪枝算法的基本依据是:选手不会做出对自己不利的选择。依据这个前提,如果一个节点明显是不利于自己的节点,那么就可以直接剪掉这个节点。
    4. 在MAX层,假设当前层已经搜索到一个最大值 X, 如果发现下一个节点的下一层(也就是MIN层)会产生一个比X还小的值,那么就直接剪掉此节点。
    5. 在MAX层,假设当前层已经搜索到一个最大值 X, 如果发现下一个节点的下一层(也就是MIN层)会产生一个比X还小的值,那么就直接剪掉此节点。

About