From 8c9d97644ccda07dd7428bc1d5b0cf22a4d4add0 Mon Sep 17 00:00:00 2001 From: k1ntas <100801775+k1ntas@users.noreply.github.com> Date: Tue, 29 Mar 2022 15:27:46 +0200 Subject: [PATCH] =?UTF-8?q?Snygga=20till=20br=C3=A4det=20och=20fixa=20kung?= =?UTF-8?q?=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/schack/Board.java | 87 ++++--------------------------------------- src/schack/King.java | 11 +----- src/schack/Pawn.java | 1 + src/schack/Piece.java | 2 +- 4 files changed, 12 insertions(+), 89 deletions(-) diff --git a/src/schack/Board.java b/src/schack/Board.java index b9f69cc..15405dc 100644 --- a/src/schack/Board.java +++ b/src/schack/Board.java @@ -30,14 +30,14 @@ public class Board extends JPanel implements MouseListener { private Piece[][] initPieces() throws IOException { Piece[][] piecesRet = { - {new Rook(false, new Point(0, 0)), null, null, new Pawn(false, new Point(0, 4)), null, null, null, new Rook(true, new Point(0, 7))}, + {new Rook(false, new Point(0, 0)), null, null, null, null, null, null, new Rook(true, new Point(0, 7))}, {new Horse(false, true, new Point(1, 0)), null, null, null, null, null, null, new Horse(true, true, new Point(1, 7))}, {new Bishop(false, new Point(2, 0)), null, null, null, null, null, null, new Bishop(true, new Point(2, 7))}, - {new Queen(false, new Point(3, 0)), null, null, null, new Pawn(false, new Point(3, 4)), null, null, new Queen(true, new Point(3, 7))}, - {new King(false), null, null, null, null, null, null, new King(true)}, - {null, null, null, null, null, null, null, new King(false, new Point(5, 7))}, - {null, null, null, null, null, null, null, null}, - {null, null, null, null, null, null, null, null} + {new Queen(false, new Point(3, 0)), null, null, null, null, null, null, new Queen(true, new Point(3, 7))}, + {new King(false, new Point(4,0)), null, null, null, null, null, null, new King(true, new Point(4, 7))}, + {new Bishop(false, new Point(5,0)), null, null, null, null, null, null, new Bishop(true, new Point(5, 7)) }, + {new Horse(false, true, new Point(6, 0)), null, null, null, null, null, null, new Horse(true, true, new Point(6, 7))}, + {new Rook(false, new Point(7, 0)), null, null, null, null, null, null, new Rook(true, new Point(7, 7))} }; // Test @@ -50,23 +50,6 @@ public class Board extends JPanel implements MouseListener { piecesRet[i][6] = new Pawn(true, new Point(i, 6)); } -// // Sätt ut bönder no point -// for (int i = 0; i < pieces.length; i++) { -// piecesRet[i][1] = new Pawn(false); -// piecesRet[i][6] = new Pawn(true); -// } -// // Ställ in varje Point i varje pjäs -// for (int x = 0; x < piecesRet.length; x++) { -// for (int y = 0; y < piecesRet.length; y++) { -// try { -// Point before = new Point(piecesRet[x][y].position); -// piecesRet[x][y].position = new Point(x, y); -// System.out.println("Efter "+piecesRet[x][y].position + " Innan " + before); -// } catch (NullPointerException e) { -// } -// } -// } - printPieces(piecesRet); return piecesRet; } @@ -88,62 +71,9 @@ public class Board extends JPanel implements MouseListener { if (piece != null) { piece.draw(g2); } - })); - // Check valid moves method - // Arrays.stream(pieces).forEach(pieceArr -> Arrays.stream(pieceArr).forEach(piece -> { - // if (piece != null) { - // // Draw eglible moves - // LinkedHashSet validMoves = piece.validMoves(pieces); - // Color c = new Color((int) (230 * Math.random()), (int) (230 * Math.random()), (int) (230 * Math.random())); - // g2.setColor(c); - // validMoves.forEach(point -> g2.fillOval(point.x * SIZE_OF_TILE, point.y * SIZE_OF_TILE, SIZE_OF_TILE, SIZE_OF_TILE)); - // System.out.println("x:" + piece.position.x + ", y:" + piece.position.y + ": " + validMoves.size()); - // } - // })); - - // draw valid moves -// for (int y = 0; y < pieces.length; y++) { -// for (int x = 0; x < pieces.length; x++) { -// Piece p = pieces[y][x]; -// if (p == null) { -// continue; -// } -// -// LinkedHashSet validMoves = p.validMoves(pieces); -// Color c = new Color((int) (255 * Math.random()), (int) (255 * Math.random()), (int) (255 * Math.random())); -// g2.setColor(c); -// validMoves.forEach(point -> g2.fillOval(point.x * SIZE_OF_TILE, point.y * SIZE_OF_TILE, SIZE_OF_TILE, SIZE_OF_TILE)); -// } -// } + })); } - - public static void printPieces(Piece[][] pieces) { - System.out.println(""); - for (int loopX = 0; loopX < pieces.length; loopX++) { - for (int loopY = 0; loopY < pieces.length; loopY++) { - if (loopY == 0) { - System.out.print("|"); - } - Piece piece = pieces[loopY][loopX]; - - // Titta inte Nicklas. Det är bara debug, jag ska ta bort det sedan lovar :P - String type; - if (piece instanceof Pawn) { - type = "Pawn"; - } else if (piece instanceof King) { - type = "King"; - } else { - type = "Nill"; - } - - String toPrint = piece == null ? "nill??|" : type + piece.position.x + piece.position.y + "|"; - System.out.print(toPrint); - - } - System.out.println(""); - } - } - + private void drawSquares(Graphics2D g2) { g2.setBackground(Color.WHITE); @@ -160,7 +90,6 @@ public class Board extends JPanel implements MouseListener { g2.fillRect(i * SIZE_OF_TILE, j * SIZE_OF_TILE, 1 * SIZE_OF_TILE, 1 * SIZE_OF_TILE); } } - } @Override diff --git a/src/schack/King.java b/src/schack/King.java index 9fdbb6f..61f524d 100644 --- a/src/schack/King.java +++ b/src/schack/King.java @@ -12,10 +12,7 @@ public final class King extends PieceKnownIfMoved { setPieceIcon("King"); } - public King(boolean isWhite) throws IOException { - super(isWhite, isWhite ? new Point(4, 7) : new Point(4, 0)); - setPieceIcon("King"); - } + public boolean isSeen(ArrayList pieces) { return true; @@ -30,11 +27,7 @@ public final class King extends PieceKnownIfMoved { if (loopY == 0 && loopX == 0) { continue; } - boolean shouldBreak = addMovesIfCan(new Point(this.position.x + loopX, this.position.y + loopY), movable, pieces); - if (shouldBreak) { - break; - } - + addMovesIfCan(new Point(this.position.x + loopX, this.position.y + loopY), movable, pieces); } } diff --git a/src/schack/Pawn.java b/src/schack/Pawn.java index 28dabd0..a720249 100644 --- a/src/schack/Pawn.java +++ b/src/schack/Pawn.java @@ -18,6 +18,7 @@ public class Pawn extends PieceKnownIfMoved { // Om bonden har gått en gång, får gå 1 steg, annars 2 final int upTo = hasMoved ? 1 : 2; + // Kolla om man kan gå rakt frak for (int pawnDY = 1; pawnDY <= upTo; pawnDY++) { System.out.println("this.position.x: " + this.position.x); diff --git a/src/schack/Piece.java b/src/schack/Piece.java index 5ba7aa1..3044abd 100644 --- a/src/schack/Piece.java +++ b/src/schack/Piece.java @@ -52,7 +52,7 @@ public abstract class Piece { pieces[toMove.x][toMove.y] = this; //new Rook(true,new Point(toMove)); pieces[selected.x][selected.y] = null; this.position = new Point(toMove); - Board.printPieces(pieces); + } catch (Exception e) {