Gibt es hierfür einen Shortcut

Nico1999

Aktives Mitglied
Ich möchte diese Methode rekursive für jeden möglichen Move öffnen
Java:
public LinkedList<Input> possibleMoves(int moveanzahl) {
        LinkedList<Input> possibleMoves = new LinkedList<>();
        for (int row = 0; row < boardSize; row++) {
            for (int col = row % 2; col < boardSize; col += 2) {
                if (zugZwang(moveanzahl).isEmpty()) {
                    addInputForMove(moveanzahl, possibleMoves, row, col);
                }else {
                    possibleMoves.addAll(zugZwang(moveanzahl, row,col));
                }
            }
        }
        return possibleMoves;
    }
Mein Problem ist jetzt, dass ich innerhalb der Methode alle Aufrufe mit this.board also auf die varibalen mit this. zugegriffen hab. jetzt möchte ich aber so was in der Art machen
Code:
geheInDieTiefe(){
    possibleMoves(n, board.createBeginning)
        for(int i=0;i<possibleMoves.size();i++){
            Input input =possibleMoves.get(i);
            board.move(input);
            possibleMoves(n+1, board);
           
        }// ich weiß noch net wirklich wie das geht
   
    }
im Prinzip will ich jeden possiblemove durchgehen und ausführen und dann erneut die possibleMoves gewinnen und ausführen wie genau
geht das auch mit this.board
gibt es einen einfachen weg aus possiblemoves(int moveanzahl) possiblemoves(int moveanzahl, Board board) zu machen
(der untere codeabschnitte könnte auch sehr dumm sein)
wenn ihr tips für rekursion habt könnt ihr sie gerne auch mitreinschreiben
 
Natürlich, falls board alles beinhaltet was du brauchst, wie z.B. boardsize (sollte eigentlich der Fall sein, die Boardsize sollte eine Eigenschaft von Board sein).
Du greifst dann z.B. auf board.getboardSize() zu anstatt auf this.board.boardsize

Probier's einfach mal aus.
Ändere die Methodeprovisorisch mal auf static, damit du auch garantiert auf kein Element von "this" mehr zugreifen kannst, dann füge in den Aufruf das board hinzu und schau, wie du an dessen Eigenschaften kommst.
 
in allen untermethoden die this.board beinhalten sollen gegen board.getBoard() ausgetauscht werden und Board board als Argument der Methode eingefügt werden
 
Zuletzt bearbeitet:
du gibst den parameter mit und löscht die thises

für das this löschen ist eig dein konvention styler zu ständig aber der ist per default auf "is mir egal bei this" eingestellt
 

Zurück
Oben