人VS人的很简单,但人VS电脑就比较难。
A为电脑,B为玩家
十十十十十十十十十十
十十十十十十十十十十
十十十十十十十十十十
十十十十十十十十十十
十十十BB十十十十十
十十BAAA十十十十
十十十十十十十十十十
十十十十十十十十十十
十十十十十十十十十十
十十十十十十十十十十
要考虑到电脑以后的几步,尽量可以按照人的思维去下棋。
要求设计思想,可能要定义哪些变量。
A为电脑,B为玩家
十十十十十十十十十十
十十十十十十十十十十
十十十十十十十十十十
十十十十十十十十十十
十十十BB十十十十十
十十BAAA十十十十
十十十十十十十十十十
十十十十十十十十十十
十十十十十十十十十十
十十十十十十十十十十
要考虑到电脑以后的几步,尽量可以按照人的思维去下棋。
要求设计思想,可能要定义哪些变量。
人机对弈算法,网上搜索能找到很多的。
一般的思路就是自己定义权值,然后通过递归或回溯法来找到最大权值路径
所谓权值就是自己按某种规则计算的一个值
比如 1个子的权值是1, 2个子的权值是2,3个子的权值是4,4个子的权值是8,5个子最大,等等
总之保证 5个子>4个子>3个子>2个子>1个子
然后根据当前棋子的情况,分别判断每个落子点造成的新的权值的情况,取最大,然后可以通过递归或回溯法预测用户可能的走法,根据难易程度,适当的调整智能,也就是难度大的,就递归层数深一些,难度小的递归层数浅一些。
别人做的大作业,可以看看