我正在尝试使用最小最大化算法来构建一个井字游戏。它不能正常运行(意味着它产生的动作不是最优的),我认为这是因为我没有考虑到对手的动作。我只是不太清楚如何将这个结合到我的代码中。对于上下文,我从http://neverstopbuilding.com/minimax工作。 这是我的代码。辅助方法都是自己的功能,但我没有在这里包括它们。 // this variable stores the opti
所以我没有太多正式的计算机科学教育,所以我提前道歉,如果这是一个愚蠢的问题。 我目前正在用Python编写一个骰子扑克游戏。规则是而不是像the game found in The Witcher 2,而是基于一个旧的移动骰子扑克游戏,从前不久从App Store中取消。 的规则如下: 的播放器和AI最初滚动每次5 poker dice。 玩家和AI选择哪个骰子保持并滚动其余骰子,将结果展示给对方
我想在python中实现minimax算法,但我在创建分支树结构时遇到了一些问题。我仍然是一个业余程序员,所以请不要介意我的代码看起来不好。这里是我的节点结构 class Node:
parent = None
state = None
pmax = 0 #this represents the MAX player symbol; i.e. SELF
p
我正在做一个简单的CLI tic-tac-toe游戏,它使用一个使用LISP的alpha-beta修剪的negamax算法的AI,我正在人工智能如何实现其动作的问题。它不是完成它应该的单一动作,而是完全地完成游戏,所以游戏只有最后两步。我已经运行了它(步骤),它看起来像问题是,在negamax函数的(when(> value bestValue))块中设置了bestPath变量,即使它说该块没有被
我想弄清楚如何提高这个算法的速度。它完美适用于两款游戏(2人游戏,CPU vs人类),但问题是当我分配三个以上的桩(包含许多宝石,因此每个玩家可以拾取多于一个),计算机播放器永远需要计算的招式: public Object[] minimax(int depth, int player) {
if(hasPlayer1Won(player)){
return new O
我正在努力做最小极限运动,我只是试图用它连接四个AI。当我只深入探索一个节点时,我的工作原理是什么,但我无法弄清楚它为什么一旦变得更深入就会混乱。 private int minimax(Gameboard gameBoard, int alpha, int depth, char color) {
Gameboard gb = new Gameboard(gameBoard);
我试图在Java中实现一个名为Nine Men's Morris的Negamax搜索。 如果玩家连续有三件(这里称为磨坊),他在切换转向之前移除对手的棋子('额外'移动)。 此外,还有一个组片相和移动片阶段,所有初始片已放置后。 我的实现看起来是这样的: public int[] negamaxSet(int depth, int alpha, int beta, int color) {