Sto esplorando come un algoritmo Minimax può essere utilizzato in un gioco Connect quattro. Stavo guardando un programma e ho trovato questa funzione di valutazione.
private static int[][] evaluationTable = {{3, 4, 5, 7, 5, 4, 3}, 
                                          {4, 6, 8, 10, 8, 6, 4},
                                          {5, 8, 11, 13, 11, 8, 5}, 
                                          {5, 8, 11, 13, 11, 8, 5},
                                          {4, 6, 8, 10, 8, 6, 4},
                                          {3, 4, 5, 7, 5, 4, 3}};
//here is where the evaluation table is called
public int evaluateContent() {
        int utility = 128;
        int sum = 0;
        for (int i = 0; i < rows; i++)
            for (int j = 0; j <columns; j++)
                if (board[i][j] == 'O')
                    sum += evaluationTable[i][j];
                else if (board[i][j] == 'X')
                    sum -= evaluationTable[i][j];
        return utility + sum;
    }
E poi un MiniMax algo viene utilizzato per valutare le possibili soluzioni.
Non sono sicuro di come / perché funzioni. Qualcuno sarebbe in grado di spiegare?