private int getFieldScore(int[][] matrix, int spalte, int owner) {
        int finalScore = 0;
        int enemy = owner == 1 ? 2 : 1;

        //Vor dem Maximierenmieren prüfen auf Sieg
        if (getScoreHorizontal(matrix, spalte, owner) >= 100000 || getScoreVertical(matrix, spalte, owner) >= 100000
                || getScoreDiag1(matrix, spalte, owner) >= 100000 || getScoreDiag2(matrix, spalte, owner) >= 100000) {
            return 1000000;
        }

        // Suche auf der horizontalen Ebene
        finalScore += getScoreHorizontal(matrix, spalte, owner);
        finalScore -= getScoreHorizontal(matrix, spalte, enemy);

        // Suche auf der vertikalen Ebene
        finalScore += getScoreVertical(matrix, spalte, owner);
        finalScore -= getScoreVertical(matrix, spalte, enemy);

        // Diagonale Suche
        finalScore += getScoreDiag1(matrix, spalte, owner);
        finalScore -= getScoreDiag1(matrix, spalte, enemy);
        finalScore += getScoreDiag2(matrix, spalte, owner);
        finalScore -= getScoreDiag2(matrix, spalte, enemy);

        return finalScore;
    }