All pastes #333350 Raw Edit

Minimax Alfa Beta Cu

public java v1 · immutable
#333350 ·published 2007-01-30 21:26 UTC
rendered paste body
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 <Board> pos1 = table.generate();			for(int i=0; i<pos1.size(); i++) {				Board child = pos1.elementAt(i);				int newb = Math.min(beta, table.beta);				int val = alphabeta(child, depth-1, alfa, newb);				table.beta = Math.min(table.beta, val);				if(alfa>=table.beta) break;			}			return table.beta;		}		// MAX		else {			Stack <Board> pos2 = table.generate();			for(int j=0; j<pos2.size(); j++) {				Board child = pos2.elementAt(j);				int newa = Math.max(alfa, table.alfa);				int val = alphabeta(child, depth-1, newa, beta);				table.alfa = Math.max(table.alfa, val);				if(table.alfa>=beta) break;			}			return table.alfa;		}	}		public int minimax(int alfa, int beta) {		return alphabeta(board, init_depth, alfa, beta);	}}