Ich versuche, ein Spiel von Hex zu implementieren, unter Verwendung einiger Schnittstellen, die mir gegeben wurden. Ein Teil der Implementierung benachrichtigt den Benutzer und das Programm, dass ein Spieler versucht hat, ein Stück auf eine Brettkoordinate (eine 2D-Array-Liste) zu setzen, die bereits ein Stück enthält. Dies gilt als illegaler Schachzug. Daher versuche ich, die Ausnahme innerhalb meiner placePiece() -Methode abzufangen, die ein Stück bestimmten Koordinaten zuordnet. Stück ist eine aufgezählte Klasse, die drei Elemente enthält: BLAU, ROT, UNSET. Anfangs habe ich das Board auf UNSET gesetzt. Ich brauche die Methode, um den Benutzer und das System einer PositionAlreadyTakenException zu benachrichtigen, sollten die Koordinaten etwas anderes Piece.UNSET enthalten. Kann mir jemand helfen, dies zu tun, wenn die Methode gerade zur letzten Rückkehr übergeht? Codezeile? HierAbfangen eines Fehlers innerhalb einer Methode, die einen booleschen Rückgabetyp hat
ist der Code für meine makeMove() -Methode:
public boolean placePiece(Piece colour, MoveInterface move) throws PositionAlreadyTakenException, InvalidPositionException, InvalidColourException
{
int x = move.getXPosition();
int y = move.getYPosition();
try {
if(this.board [y-1][x-1] == Piece.UNSET){
this.board[y-1][x -1] = colour;
return true;
}
} catch (Exception e){
return false;
}
return true;
}
Also statt eines 'try catch' wollen Sie haben und' if else' Das sagen 'if (this.board [......] blah) {gibt Zeug zurück wahr;} else {löst PositionAlreadyTakenException; } ' – 3kings