import game.Board; import java.util.Stack; import game.algorithm.Swarm; public class AlfaBeta { private Board board; private Swarm swarm; private int init_depth; public AlfaBeta(Board x, Swarm myswarm, int depth) { init_depth = depth; board = x; swarm = myswarm; } private int alphabeta(Board table, int depth, int alfa, int beta) { // Terminal Node if (depth==0 || table.terminal==true) { // Evaluation swarm.init(table); return swarm.process(); } table.alfa = Integer.MIN_VALUE+1; table.beta = Integer.MAX_VALUE-1; // MIN if(!table.type) { Stack pos1 = table.generate(); for(int i=0; i=table.beta) break; } return table.beta; } // MAX else { Stack pos2 = table.generate(); for(int j=0; j=beta) break; } return table.alfa; } } public int minimax(int alfa, int beta) { return alphabeta(board, init_depth, alfa, beta); } }