From bdb4aef2437f8910a020de327c8aa002dc184545 Mon Sep 17 00:00:00 2001 From: loveb Date: Sat, 30 Apr 2022 12:38:11 +0200 Subject: [PATCH] Snygga till + kommentarer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lade till javadoc kommentarer samt fixade till ful kod till snygg kod. Exempelvis att vi inte använde this.position istället för selected --- src/schack/Bishop.java | 1 - src/schack/Board.java | 2 +- src/schack/Horse.java | 1 - src/schack/King.java | 8 ++-- src/schack/Pawn.java | 1 - src/schack/Piece.java | 61 ++++++++++++++++++++++++++----- src/schack/PieceKnownIfMoved.java | 4 +- src/schack/Queen.java | 1 - src/schack/Rook.java | 1 - 9 files changed, 59 insertions(+), 21 deletions(-) diff --git a/src/schack/Bishop.java b/src/schack/Bishop.java index 099b758..4e8a586 100644 --- a/src/schack/Bishop.java +++ b/src/schack/Bishop.java @@ -8,7 +8,6 @@ public class Bishop extends LongWalkers { public Bishop(boolean isWhite, Point startingPosition) throws IOException { super(isWhite, startingPosition); - setPieceIcon("Bishop"); } @Override diff --git a/src/schack/Board.java b/src/schack/Board.java index 12fd967..110dc2a 100644 --- a/src/schack/Board.java +++ b/src/schack/Board.java @@ -113,7 +113,7 @@ public class Board extends JPanel implements MouseListener { if (validMovesToDraw.contains(clicked)) { try { Piece p = pieces[selectedPiece.x][selectedPiece.y]; - p.move(pieces, clicked, selectedPiece); + p.move(pieces, clicked); turn = !turn; } catch (Exception e) { diff --git a/src/schack/Horse.java b/src/schack/Horse.java index 88c68b4..c45c4b3 100644 --- a/src/schack/Horse.java +++ b/src/schack/Horse.java @@ -9,7 +9,6 @@ public class Horse extends Piece { public Horse(boolean isWhite, boolean isLeft, Point startingPosition) throws IOException { super(isWhite, startingPosition); - setPieceIcon("Horse"); } @Override diff --git a/src/schack/King.java b/src/schack/King.java index 25fff9e..b8a76ed 100644 --- a/src/schack/King.java +++ b/src/schack/King.java @@ -1,3 +1,4 @@ + package schack; import java.awt.Point; @@ -8,7 +9,6 @@ public final class King extends PieceKnownIfMoved { public King(boolean isWhite, Point startingPosition) throws IOException { super(isWhite, startingPosition); - setPieceIcon("King"); supremeRuler = true; } @@ -80,12 +80,12 @@ public final class King extends PieceKnownIfMoved { } @Override - public void move(Piece[][] pieces, Point toMove, Point selected) { - if (Math.abs(selected.x - toMove.x) == 2) { + public void move(Piece[][] pieces, Point toMove) { + if (Math.abs(position.x - toMove.x) == 2) { final boolean goToLeftSide = (toMove.x < 5) ? true : false; castle(pieces, goToLeftSide); } else { - super.move(pieces, toMove, selected); + super.move(pieces, toMove); } } diff --git a/src/schack/Pawn.java b/src/schack/Pawn.java index 7028f94..f93bff9 100644 --- a/src/schack/Pawn.java +++ b/src/schack/Pawn.java @@ -8,7 +8,6 @@ public class Pawn extends PieceKnownIfMoved { public Pawn(boolean isWhite, Point startingPosition) throws IOException { super(isWhite, startingPosition); - setPieceIcon("Pawn"); } @Override diff --git a/src/schack/Piece.java b/src/schack/Piece.java index 15161e7..2cb1cd0 100644 --- a/src/schack/Piece.java +++ b/src/schack/Piece.java @@ -10,17 +10,28 @@ import javax.imageio.ImageIO; public abstract class Piece { + /** + * Variabel som alltid bör vara samma värde som pjäsen är i brädes av + * Piece[][] + */ public Point position; + /** + * Sant ifall pjäsens färg är vit, falskt ifall den är svart + */ public boolean white; /** * SPECIAL RULÖES APPLY TO THE KING, (ITS GOOD TO BE THE KING:) */ public boolean supremeRuler = false; + /** + * Bild av pjäsen som ritas ut på bärdet + */ protected BufferedImage icon; public Piece(boolean white, Point startingPosition) throws IOException { this.white = white; this.position = startingPosition; + setPieceIcon(); } public Piece(boolean white) { @@ -31,19 +42,44 @@ public abstract class Piece { this.position = p; } - protected void setPieceIcon(String className) throws IOException { + /** + * Ladda in pjäsbild från paketet img + * + * @param className + * @throws IOException ifall det inte finns någon bild på pjäsen + */ + protected void setPieceIcon() throws IOException { + String className = this.getClass().getSimpleName(); String colorName = white ? "White" : "Black"; String fileName = colorName + className + ".png"; InputStream is = getClass().getResourceAsStream("/img/" + fileName); icon = ImageIO.read(is); } + /** + * Ger tillbaks alla ställen pjäsen kan gå till + * + * @param pieces + * @param isSelected + * @return + */ public abstract ArrayList validMoves(Piece[][] pieces, boolean isSelected); + /** + * Ger tillbaks alla ställen pjäsen kan attackera + * + * @param pieces + * @return + */ public ArrayList validAttacks(Piece[][] pieces) { return validMoves(pieces, false); } + /** + * Ritar ut pjäsen baserat på den ihågkommna positionen + * + * @param g2 + */ public void draw(Graphics2D g2) { g2.drawImage( @@ -54,16 +90,23 @@ public abstract class Piece { ); } - public void move(Piece[][] pieces, Point toMove, Point selected) { - - try { - pieces[toMove.x][toMove.y] = this; //new Rook(true,new Point(toMove)); - pieces[selected.x][selected.y] = null; - this.position = new Point(toMove); - - } catch (Exception e) { + /** + * Flyttar pjäsen till toMove + * + * @param pieces + * @param toMove + * @param selected + */ + public void move(Piece[][] pieces, Point toMove) { + // Gör ingenting ifall vi är utanför brädet + if (toMove.x >= pieces.length || toMove.y < 0 || position.x >= pieces[0].length || position.y < 0) { + return; } + + pieces[toMove.x][toMove.y] = this; + pieces[position.x][position.y] = null; + this.position = new Point(toMove); } protected boolean addMovesIfCan(Point pos, ArrayList movable, Piece[][] pieces, boolean isSelected) { diff --git a/src/schack/PieceKnownIfMoved.java b/src/schack/PieceKnownIfMoved.java index 702ae66..263a795 100644 --- a/src/schack/PieceKnownIfMoved.java +++ b/src/schack/PieceKnownIfMoved.java @@ -17,8 +17,8 @@ public abstract class PieceKnownIfMoved extends Piece { } @Override - public void move(Piece[][] pieces, Point toMove, Point selected) { - super.move(pieces, toMove, selected); + public void move(Piece[][] pieces, Point toMove) { + super.move(pieces, toMove); moved = true; } diff --git a/src/schack/Queen.java b/src/schack/Queen.java index b9034e3..5d8a500 100644 --- a/src/schack/Queen.java +++ b/src/schack/Queen.java @@ -8,7 +8,6 @@ public class Queen extends LongWalkers { public Queen(boolean isWhite, Point point) throws IOException { super(isWhite, point); - setPieceIcon("Queen"); } @Override diff --git a/src/schack/Rook.java b/src/schack/Rook.java index 41d1688..8bc4a5f 100644 --- a/src/schack/Rook.java +++ b/src/schack/Rook.java @@ -8,7 +8,6 @@ public class Rook extends LongWalkers { public Rook(boolean isWhite, Point startingPosition) throws IOException { super(isWhite, startingPosition); - setPieceIcon("Rook"); } @Override