private Object[] minimax(Board board, Jogador jogador, int maxDepth, int currentDepth) {
		cont++;
		Object[] resultado = new Object[2];

/*		if (board.isGameOver()) {
			if (board.currentPlayer().cor==jogador.cor) {
				resultado[0] = PONTO_FIM_JOGO;
			}
			else {
				resultado[0] = -PONTO_FIM_JOGO;
			}
			resultado[1] = null;
		}
		else if (currentDepth == maxDepth) {
			int nMoves = board.getMoves().size();
			nMoves = board.currentPlayer().cor==jogador.cor?nMoves:-nMoves;

			int peso = 0;
			for (Casa casa : board.getPecasJogadores().get(jogador.cor)) {
				peso += pesos[casa.getI()][casa.getJ()];
			}
			
			resultado[0] = board.evaluate(jogador.cor)+peso+nMoves;
			resultado[1] = null;
		}*/
		
		if(board.isGameOver() || currentDepth == maxDepth){
			int nMoves = board.getMoves().size();
			nMoves = board.currentPlayer().cor==jogador.cor?nMoves:-nMoves;

			int peso = 0;
			for (Casa casa : board.getPecasJogadores().get(jogador.cor)) {
				peso += pesos[casa.getI()][casa.getJ()];
			}

			resultado[0] = board.evaluate(jogador.cor)+peso+nMoves;
			resultado[1] = null;
		}
		else{

			
			if(board.currentPlayer().cor==jogador.cor){
				resultado[0] = -10000;
			}else{
				resultado[0] = 10000;
			}
			for (Casa movimento : board.getMoves()) {
				Board newBoard = board.makeMove(movimento);
				
				Object[] retornoRecursivo = new Object[2];
				retornoRecursivo = minimax(newBoard, jogador, maxDepth, currentDepth+1);
				
				int currentScore = (Integer) retornoRecursivo[0];
				
				if(board.currentPlayer().cor.equals(jogador.cor)){
					if(currentScore > (Integer) resultado[0]) {
						resultado[0] = currentScore;
						resultado[1] =  movimento;
					}
				}else{
					if(currentScore < (Integer) resultado[0]) {
						resultado[0] =  currentScore;
						resultado[1] =  movimento;
					}
				}
			}
		}
		return resultado;
	}