private int calcValue(int[][] matrix, int spalte, int owner) {
        int minvalue = 0;
        int maxvalue = 0;

        //Wenn nicht auf der Untersten EBENE suche den Wert der Childnodes
        if (knotentiefe <= baumhoehe) {

            //Wenn Maximierungsschicht hole minvalue von Childnodes
            if (knotentiefe % 2 == 0) {
                for (GameTreeNode n : childnodes) {
                    if (n.getValue() < minvalue) {
                        minvalue = n.getValue();
                        this.bestmove = n.getMoveNr();
                    }

                }
                return minvalue;
            } //Wenn Minimierungsfeld hole maxvalue von Childnodes
            else {
                for (GameTreeNode n : childnodes) {
                    if (n.getValue() > maxvalue) {
                        maxvalue = n.getValue();
                        this.bestmove = n.getBestMove();
                    }

                }
                return maxvalue;
            }
        } //Wenn auf der Untersten Ebene. Bewerte Spielfeld
        else {
            if (knotentiefe % 2 == 0) {
                return getFieldScore(matrix, spalte, owner);
            } else {
                return getFieldScore(matrix, spalte, enemy);
            }

        }
    }