From 29df86030cd322fb54208879e3c9ec3e6b38fab3 Mon Sep 17 00:00:00 2001 From: loveb Date: Tue, 5 Apr 2022 15:58:29 +0200 Subject: [PATCH] =?UTF-8?q?shcakc=20no=20werk=20men=20man=20man=20f=C3=A5r?= =?UTF-8?q?=20inte=20g=C3=A5=20in=20i=20schackl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/schack/Board.java | 21 +++++++++++++++++++-- src/schack/King.java | 1 + src/schack/Piece.java | 2 ++ 3 files changed, 22 insertions(+), 2 deletions(-) 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 {