From d1d453b0b05025f795aff58afe37122615efc722 Mon Sep 17 00:00:00 2001 From: loveb Date: Thu, 28 Apr 2022 19:35:00 +0200 Subject: [PATCH] =?UTF-8?q?=C3=84ndra=20fr=C3=A5n=20LinkedHashSet=20till?= =?UTF-8?q?=20ArrayList=20och=20ta=20bort=20oanv=C3=A4nda=20funktioner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/schack/Bishop.java | 4 ++-- src/schack/Board.java | 12 +++++------- src/schack/Horse.java | 6 +++--- src/schack/King.java | 16 +++------------- src/schack/LongWalkers.java | 6 +++--- src/schack/Pawn.java | 14 +++++++------- src/schack/Piece.java | 14 ++++++-------- src/schack/Queen.java | 4 ++-- src/schack/Rook.java | 4 ++-- 9 files changed, 33 insertions(+), 47 deletions(-) diff --git a/src/schack/Bishop.java b/src/schack/Bishop.java index 9b7d6d6..eba0aed 100644 --- a/src/schack/Bishop.java +++ b/src/schack/Bishop.java @@ -2,7 +2,7 @@ package schack; import java.awt.Point; import java.io.IOException; -import java.util.LinkedHashSet; +import java.util.ArrayList; public class Bishop extends LongWalkers { @@ -12,7 +12,7 @@ public class Bishop extends LongWalkers { } @Override - public LinkedHashSet validMoves(Piece[][] pieces, boolean isSelected) { + public ArrayList validMoves(Piece[][] pieces, boolean isSelected) { return getMoves( new int[][]{{-1,-1},{1, 1}, {-1, 1}, {1, -1}}, pieces, diff --git a/src/schack/Board.java b/src/schack/Board.java index 5ae2dd9..3e74b25 100644 --- a/src/schack/Board.java +++ b/src/schack/Board.java @@ -8,10 +8,8 @@ import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.IOException; -import java.util.ArrayList; import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.stream.Collectors; +import java.util.ArrayList; import javax.swing.JOptionPane; import javax.swing.JPanel; @@ -19,8 +17,8 @@ public class Board extends JPanel implements MouseListener { public static final int SIZE_OF_TILE = 100; private Piece[][] pieces = new Piece[8][8]; - private LinkedHashSet validMovesToDraw = new LinkedHashSet<>(); - private LinkedHashSet validDebugMovesToDraw = new LinkedHashSet<>(); + private ArrayList validMovesToDraw = new ArrayList<>(); + private ArrayList validDebugMovesToDraw = new ArrayList<>(); private Point selectedPiece = new Point(); private Color moveableColor = new Color(255, 191, 0); public static boolean turn = true; @@ -142,12 +140,12 @@ public class Board extends JPanel implements MouseListener { if (selectedPiece.isWhite() == turn || developerMode) { ArrayList attacks = checkAttacks(turn); - LinkedHashSet validMoves = selectedPiece.validMoves(pieces, true); + ArrayList validMoves = selectedPiece.validMoves(pieces, true); // Kolla ifall vi kan röra oss // Loopa igenom allt System.out.println("\n\n\n\n\n\n"); - LinkedHashSet allValidMoves = new LinkedHashSet<>(); + ArrayList allValidMoves = new ArrayList<>(); for (Piece[] pieceArr : pieces) { for (Piece piece : pieceArr) { if (piece == null || turn != piece.white) { diff --git a/src/schack/Horse.java b/src/schack/Horse.java index 92d318d..88c68b4 100644 --- a/src/schack/Horse.java +++ b/src/schack/Horse.java @@ -3,7 +3,7 @@ package schack; import java.awt.Point; import java.io.IOException; import static java.lang.Math.abs; -import java.util.LinkedHashSet; +import java.util.ArrayList; public class Horse extends Piece { @@ -13,8 +13,8 @@ public class Horse extends Piece { } @Override - public LinkedHashSet validMoves(Piece[][] pieces, boolean isSelected) { - LinkedHashSet movable = new LinkedHashSet<>(); + public ArrayList validMoves(Piece[][] pieces, boolean isSelected) { + ArrayList movable = new ArrayList<>(); // TODO: Integrera /* diff --git a/src/schack/King.java b/src/schack/King.java index d22d3e2..c053bbd 100644 --- a/src/schack/King.java +++ b/src/schack/King.java @@ -3,7 +3,6 @@ package schack; import java.awt.Point; import java.io.IOException; import java.util.ArrayList; -import java.util.LinkedHashSet; public final class King extends PieceKnownIfMoved { @@ -13,11 +12,7 @@ public final class King extends PieceKnownIfMoved { supremeRuler = true; } - public boolean isSeen(ArrayList pieces) { - return true; - } - - private void addCastlingIfCan(Piece[][] pieces, LinkedHashSet movable, Point toMove, Point selected) { + private void addCastlingIfCan(Piece[][] pieces, ArrayList movable, Point toMove, Point selected) { if (moved) { return; } @@ -96,8 +91,8 @@ public final class King extends PieceKnownIfMoved { } @Override - public LinkedHashSet validMoves(Piece[][] pieces, boolean isSelected) { - LinkedHashSet movable = new LinkedHashSet<>(); + public ArrayList validMoves(Piece[][] pieces, boolean isSelected) { + ArrayList movable = new ArrayList<>(); for (int loopX = -1; loopX < 2; loopX++) { for (int loopY = -1; loopY < 2; loopY++) { @@ -112,11 +107,6 @@ public final class King extends PieceKnownIfMoved { return movable; } - private boolean chechCheck(Piece[][] pieces, Point point) { - - return false; - } - @Override public String toString() { return "Piece{" + "hasMoved=" + moved + "position=" + position + ", isWhite=" + white + '}'; diff --git a/src/schack/LongWalkers.java b/src/schack/LongWalkers.java index 5e89324..c50aa58 100644 --- a/src/schack/LongWalkers.java +++ b/src/schack/LongWalkers.java @@ -2,7 +2,7 @@ package schack; import java.awt.Point; import java.io.IOException; -import java.util.LinkedHashSet; +import java.util.ArrayList; public abstract class LongWalkers extends PieceKnownIfMoved { @@ -10,8 +10,8 @@ public abstract class LongWalkers extends PieceKnownIfMoved { super(isWhite, startingPosition); } - LinkedHashSet getMoves(int[][] directions, Piece[][] pieces, boolean isSelected) { - LinkedHashSet movable = new LinkedHashSet<>(); + ArrayList getMoves(int[][] directions, Piece[][] pieces, boolean isSelected) { + ArrayList movable = new ArrayList<>(); for (int[] xy : directions) { int loopX = this.position.x, loopY = this.position.y; diff --git a/src/schack/Pawn.java b/src/schack/Pawn.java index 0373615..5fe143c 100644 --- a/src/schack/Pawn.java +++ b/src/schack/Pawn.java @@ -2,7 +2,7 @@ package schack; import java.awt.Point; import java.io.IOException; -import java.util.LinkedHashSet; +import java.util.ArrayList; public class Pawn extends PieceKnownIfMoved { @@ -12,8 +12,8 @@ public class Pawn extends PieceKnownIfMoved { } @Override - public LinkedHashSet validAttacks(Piece[][] pieces) { - LinkedHashSet movable = new LinkedHashSet<>(); + public ArrayList validAttacks(Piece[][] pieces) { + ArrayList movable = new ArrayList<>(); // Kolla ifall vi kan ta någon for (int pawnX : new int[]{-1, 1}) { @@ -32,8 +32,8 @@ public class Pawn extends PieceKnownIfMoved { } @Override - public LinkedHashSet validMoves(Piece[][] pieces, boolean isSelected) { - LinkedHashSet movable = new LinkedHashSet<>(); + public ArrayList validMoves(Piece[][] pieces, boolean isSelected) { + ArrayList movable = new ArrayList<>(); // Om bonden har gått en gång, får gå 1 steg, annars 2 final int upTo = moved ? 1 : 2; @@ -59,7 +59,7 @@ public class Pawn extends PieceKnownIfMoved { } // Känns som det här skulle kunnat vara i validMoves, men nu är det såhär - private void addAttackMovesIfCan(Point pos, LinkedHashSet movable, Piece[][] pieces) { + private void addAttackMovesIfCan(Point pos, ArrayList movable, Piece[][] pieces) { // Ifall det är en pjäs som står här och den inte är samma färg som oss, lägg till try { @@ -73,7 +73,7 @@ public class Pawn extends PieceKnownIfMoved { } @Override - protected boolean addMovesIfCan(Point pos, LinkedHashSet movable, Piece[][] pieces, boolean isSelected) { + protected boolean addMovesIfCan(Point pos, ArrayList movable, Piece[][] pieces, boolean isSelected) { if (pos.x < 0 || pos.x > 7 || pos.y < 0 || pos.y > 7) { return false; } diff --git a/src/schack/Piece.java b/src/schack/Piece.java index 0e93f03..167ced7 100644 --- a/src/schack/Piece.java +++ b/src/schack/Piece.java @@ -5,10 +5,8 @@ import java.awt.Point; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; -import java.util.LinkedHashSet; +import java.util.ArrayList; import javax.imageio.ImageIO; -import javax.swing.JOptionPane; -import static schack.Board.turn; public abstract class Piece { @@ -40,9 +38,9 @@ public abstract class Piece { icon = ImageIO.read(is); } - public abstract LinkedHashSet validMoves(Piece[][] pieces, boolean isSelected); + public abstract ArrayList validMoves(Piece[][] pieces, boolean isSelected); - public LinkedHashSet validAttacks(Piece[][] pieces) { + public ArrayList validAttacks(Piece[][] pieces) { return validMoves(pieces, false); } @@ -68,7 +66,7 @@ public abstract class Piece { } } - protected boolean addMovesIfCan(Point pos, LinkedHashSet movable, Piece[][] pieces, boolean isSelected) { + protected boolean addMovesIfCan(Point pos, ArrayList movable, Piece[][] pieces, boolean isSelected) { // Instead of checking index and null, try-catch try { // Ifall vi kollar utanför brädet kommer detta att faila @@ -109,7 +107,7 @@ public abstract class Piece { } - void tryToMoveAndCheckIfCheck(Piece[][] pieces, LinkedHashSet movable, Point pos) { + void tryToMoveAndCheckIfCheck(Piece[][] pieces, ArrayList movable, Point pos) { // Kom ihåg vart vi var Point previousPosition = new Point(this.position); @@ -136,7 +134,7 @@ public abstract class Piece { boolean checkIfSchack(Point pos, Piece[][] pieces) { boolean ourColor = this.isWhite(); Piece selectedPiece = this; - LinkedHashSet attacks = new LinkedHashSet<>(); + ArrayList attacks = new ArrayList<>(); // Fråga alla pjäser vart de kan gå/ta for (Piece[] pieceArr : pieces) { diff --git a/src/schack/Queen.java b/src/schack/Queen.java index 9cef381..b9034e3 100644 --- a/src/schack/Queen.java +++ b/src/schack/Queen.java @@ -2,7 +2,7 @@ package schack; import java.awt.Point; import java.io.IOException; -import java.util.LinkedHashSet; +import java.util.ArrayList; public class Queen extends LongWalkers { @@ -12,7 +12,7 @@ public class Queen extends LongWalkers { } @Override - public LinkedHashSet validMoves(Piece[][] pieces, boolean isSelected) { + public ArrayList validMoves(Piece[][] pieces, boolean isSelected) { return getMoves( new int[][]{{1, 0}, {-1, 0}, {0, 1}, {-1, -1}, {0, -1}, {1, 1}, {-1, 1}, {1, -1}}, pieces, diff --git a/src/schack/Rook.java b/src/schack/Rook.java index b479f66..41d1688 100644 --- a/src/schack/Rook.java +++ b/src/schack/Rook.java @@ -2,7 +2,7 @@ package schack; import java.awt.Point; import java.io.IOException; -import java.util.LinkedHashSet; +import java.util.ArrayList; public class Rook extends LongWalkers { @@ -12,7 +12,7 @@ public class Rook extends LongWalkers { } @Override - public LinkedHashSet validMoves(Piece[][] pieces, boolean isSelected) { + public ArrayList validMoves(Piece[][] pieces, boolean isSelected) { return getMoves( new int[][]{{1, 0}, {-1, 0}, {0, 1}, {0, -1}}, pieces,