From 4cf3eeafbb215cb8304c7b472f30034338eb82ac Mon Sep 17 00:00:00 2001 From: loveb Date: Tue, 10 May 2022 16:01:09 +0200 Subject: [PATCH] Rockad funkar --- src/schack/King.java | 22 ++++++++++------------ src/schack/Piece.java | 9 +++++++++ src/schack/PieceKnownIfMoved.java | 1 + 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/schack/King.java b/src/schack/King.java index b8a76ed..6c7739c 100644 --- a/src/schack/King.java +++ b/src/schack/King.java @@ -1,4 +1,3 @@ - package schack; import java.awt.Point; @@ -13,7 +12,7 @@ public final class King extends PieceKnownIfMoved { } private void addCastlingIfCan(Piece[][] pieces, ArrayList movable, Point toMove, Point selected) { - if (moved) { + if (isMoved()) { return; } @@ -27,23 +26,16 @@ public final class King extends PieceKnownIfMoved { // Check så att man bara kan göra rockad ifall tornet inte rört sig Piece p = pieces[loopX][this.position.y]; if (p != null) { - try { - PieceKnownIfMoved PKIM = (PieceKnownIfMoved) p; - if (!PKIM.moved) { - movable.add(new Point(2, this.position.y)); - } - } catch (Exception e) { + if (!p.isMoved()) { + movable.add(new Point(2, this.position.y)); } - } - } // Kolla ifall det är tomt emellan kung och torn if (pieces[loopX][this.position.y] != null) { nothingInBetween = false; } - } // Höger @@ -52,7 +44,13 @@ public final class King extends PieceKnownIfMoved { // Kolla ifall vi kollar tornet och inget är emellan if (loopX == 7 && nothingInBetween) { - movable.add(new Point(6, this.position.y)); + // Check så att man bara kan göra rockad ifall tornet inte rört sig + Piece p = pieces[loopX][this.position.y]; + if (p != null) { + if (!p.isMoved()) { + movable.add(new Point(6, this.position.y)); + } + } } // Kolla ifall det är tomt emellan kung och torn diff --git a/src/schack/Piece.java b/src/schack/Piece.java index 4f8f7d0..732881e 100644 --- a/src/schack/Piece.java +++ b/src/schack/Piece.java @@ -223,4 +223,13 @@ public abstract class Piece { return isWhite; } + /** + * Kompabilitet med PieceKnownIfMoved + * + * @return false + */ + public boolean isMoved() { + return false; + } + } diff --git a/src/schack/PieceKnownIfMoved.java b/src/schack/PieceKnownIfMoved.java index f63f8f1..2455143 100644 --- a/src/schack/PieceKnownIfMoved.java +++ b/src/schack/PieceKnownIfMoved.java @@ -17,6 +17,7 @@ public abstract class PieceKnownIfMoved extends Piece { moved = true; } + @Override public boolean isMoved() { return moved; }