diff --git a/src/schack/Board.java b/src/schack/Board.java index 7fb228b..7598e50 100644 --- a/src/schack/Board.java +++ b/src/schack/Board.java @@ -10,6 +10,7 @@ import java.awt.event.MouseListener; import java.io.IOException; import java.util.Arrays; import java.util.LinkedHashSet; +import javax.swing.JOptionPane; import javax.swing.JPanel; public class Board extends JPanel implements MouseListener { @@ -128,7 +129,7 @@ public class Board extends JPanel implements MouseListener { Piece p = pieces[mouseCoordinateX][mouseCoordinateY]; // Kolla endast ifall vi kan röra på pjäsen om det är samma färg som den tur vi är på - if (p.isWhite() == turn||developerMode) { + if (p.isWhite() == turn || developerMode) { LinkedHashSet blackAttacks = new LinkedHashSet<>(); LinkedHashSet whiteAttacks = new LinkedHashSet<>(); @@ -150,8 +151,24 @@ public class Board extends JPanel implements MouseListener { } LinkedHashSet validMoves = p.validMoves(pieces); + + // Funkar + if (p.supremeRuler) { + validMoves.removeAll(turn ? blackAttacks : whiteAttacks); + } + // Funkar inte + for (Point attack : turn ? whiteAttacks : blackAttacks) { + Piece attacked = pieces[attack.x][attack.x]; + if (attacked == null) { + continue; + } + if (attacked.supremeRuler) { + JOptionPane.showMessageDialog(this, "Du står i schack"); + } + + } + validMovesToDraw.addAll(validMoves); - validMovesToDraw.addAll(blackAttacks); } } catch (Exception e) { diff --git a/src/schack/King.java b/src/schack/King.java index 3f5bf20..11a1510 100644 --- a/src/schack/King.java +++ b/src/schack/King.java @@ -10,6 +10,7 @@ public final class King extends PieceKnownIfMoved { public King(boolean isWhite, Point startingPosition) throws IOException { super(isWhite, startingPosition); setPieceIcon("King"); + supremeRuler= true; } public boolean isSeen(ArrayList pieces) { diff --git a/src/schack/Piece.java b/src/schack/Piece.java index 9e1fd49..998ff84 100644 --- a/src/schack/Piece.java +++ b/src/schack/Piece.java @@ -12,6 +12,8 @@ public abstract class Piece { public Point position; public boolean white; + /** SPECIAL RULÖES APPLY TO THE KING, (ITS GOOD TO BE THE KING:)*/ + public boolean supremeRuler= false; protected BufferedImage icon; public Piece(boolean white, Point startingPosition) throws IOException {