* <em>partida</em>.
*/
private int valorMin( Partida partida, EstatPartida estat_partida, int alfa, int beta, EstatCasella estat_casella,
int profunditat, int profunditat_maxima, EstatCasella fitxa_jugador )
{
Tauler tauler = partida.getTauler();
if ( profunditat == profunditat_maxima || estat_partida == EstatPartida.GUANYA_JUGADOR_A ||
estat_partida == EstatPartida.GUANYA_JUGADOR_B || estat_partida == EstatPartida.EMPAT )
{
return funcioAvaluacio( tauler, estat_partida, profunditat, fitxa_jugador );
}
else
{
int mida = tauler.getMida();
for ( int fila = 0; fila < mida; ++fila )
{
for ( int columna = 0; columna < mida; ++columna )
{
try
{
tauler.mouFitxa( estat_casella, fila, columna );
}
catch ( IllegalArgumentException excepcio )
{
continue;
}
EstatPartida estat_partida_aux = partida.comprovaEstatPartida( fila, columna );
estat_casella = this.intercanviaEstatCasella( estat_casella );
beta = Math.min( beta,
this.valorMax( partida, estat_partida_aux, alfa, beta, estat_casella, ( profunditat + 1 ),
profunditat_maxima, fitxa_jugador ) );
tauler.treuFitxa( fila, columna );
if ( alfa >= beta )
{
return alfa;
}
estat_casella = this.intercanviaEstatCasella( estat_casella );