From 1ea8eba4516883bfdf1a57562c1d65deb4dd19bb Mon Sep 17 00:00:00 2001 From: Admin Date: Thu, 22 May 2025 09:53:46 +0200 Subject: [PATCH] static removed --- OOP_1A2_Project/bin/.gitignore | 1 - OOP_1A2_Project/bin/backend/Board.class | Bin 9430 -> 9583 bytes OOP_1A2_Project/bin/backend/Move.class | Bin 8216 -> 8421 bytes OOP_1A2_Project/src/backend/Board.java | 19 +++++++---- OOP_1A2_Project/src/backend/Move.java | 41 +++++++++++------------- 5 files changed, 30 insertions(+), 31 deletions(-) diff --git a/OOP_1A2_Project/bin/.gitignore b/OOP_1A2_Project/bin/.gitignore index 5c7ebe3..6d0c385 100644 --- a/OOP_1A2_Project/bin/.gitignore +++ b/OOP_1A2_Project/bin/.gitignore @@ -1,2 +1 @@ /backend/ -/windowInterface/ diff --git a/OOP_1A2_Project/bin/backend/Board.class b/OOP_1A2_Project/bin/backend/Board.class index 42bc97c0d662ca6954bfcc689319090b64e15c4e..ff9f6d5de61552d5aee59a480652f1b0cc4155c5 100644 GIT binary patch literal 9583 zcmaJ{4SZZxmH(faH}fXb*Cr&LmZ52zmXfBEq=iBYBv@!t+6IzPNNH&KoFuQ!(8)}g zne>BIgrzFF>MG)5*@CU>8rH%Jl?Eu-#a*f5B7Uv=sjj-ZuAl3!t1Gn<|L49pnMpeM zOXt1&&b#;AbIPLxo|1bP2-4Zfe&siP6GXF4H?UGT`O}vr_r~;Z(uhN*ep^V879n zJLu*Gv2Md~tdL5tTA#}$_jjlAg?2$zUust-NhYqKu~MHax{JbXQC98iIB4!LCr_&Y z?$DNOK2=C%Gn}KQY`o8Y#SBu3TTgb6yR10aaIMO_X)e?qx=B#yjWg@-$`ssPZcc?Q z_SnvqU6IP93hStrrmn6P+XPl;cF2t)h`56o&JzTiR&29TPi7UC9>oI0s~}kHpc*yW zTH>Ga0J!esf_EHV{39CO{La$ zX9tt%ZOL3ppM9cL7*0`P)l<4PhUW^ygV{8P3+%MVND$fO7WzHQb49d$6$zVt^Ur2m ztzCuyeKaUA8XyK{C5QGTGlM=VX7?2cww~muFG?iu7K~*D@unS90vXcQ{iANXYFD*& zrGu-8SOhsG@zm7i+qMj&?KV2g&}?`_(SfTSY{VLxh(m8u!e$3uMZ$JveyxLUWggDC zBLs$$dL3M6`s7o0lhA?d)vhSvg&3AAkG#OYt{aZZOXoXq}9^*H_;xPj>%l_Gor=ES)U4#pgHb0^$o3U-hS%Jta!`2G_6Xh~pv$~V5NK#n4)1pG9{dSMGFIi1 zg)EuOD~>b~s>`Rh&%*ogr#9YCKPowK@vVao;DZz_DjyU)jE~j|I$$T$YQi}jSuCx55;Iaz5$^iX` zxCe2_xKn;CP36>{J&K4PWRJ94pt5Z|F)im54XUxm0GbP%Kg~qtNu;Urn^Lg%yhT&T zyy@YP=J4Z?YTR^NPjTxsrcXDKhX1j=o72%90;6FnKlQ?8L^A1Whm9`^oFWD_7e?_4UeyTqB_n57S&Z|N zgNCjEamWATJ>{w>V!9U|)m=CDw zE(6y=2EKF3e8KdhAAAG<=HQ#ka`tFCxnIRIuXM6+JNS1MVE*V>A%ETIXg1?!$gXqP z9o#*_a94%z;y-MBZ#taz=L_zLgYV-9jLg|FO&}g3Q`uEp7&{6CoSPhBtoR{S)RAV2 zir`0VnoL#;3x}fkDSmF_XT^LzeWZi`#xJOXQDv59xSAIEi;iMc_`eQ*sVk_fu!0DF zMV~N>SwaI1rc*4;hKeD*Sbq4=mZmDfoGGBHqKMOID&OaqG6ZcQyD^n^Z*ZAD7Z#ej4+#jJ&LZVR|m4G8bVI3ICkET;p*YXOHpc1o)gvp{sSwtMEk|-g|$}+D( z>P?igLpwW;%vO9e9%ObE=wL^s+L0PLN2{)}fxI8!=|R(6$X9Gc>NsnEL}I*k)FLGF z8NuY-%5qoYK-29ks;RDmlDLckEsi-M6>OSXYB4NXS}EB=u+D3$Fi_p*s4Q`0sm67S z>ljhOGDj}ZG9m2VHI_`%#gEEzN19{>NrS`5oJJvw;i8jSL7E+Dkyd)n&RllHPYXI- z=ZqL-ss=_2S>?!uauH=7P3H10d9Idje!kgFkLn&P%50Jv@|i`7;Zfu06eE4vZo;)} zcVvggnpzWU_GYx?@`EK=F{tJST@4R>FbiL)dS~eD$Yu-lx#Vb%TNus`<)d=DByG7v zu&e}@RAx_hx4X*oL9Z6sm>gs|wO^fYK=6_BpyBuS7;a8xhSF|+SvQNmvC;N2WcVIk zMwvFyK)mdw-@V-Nie+|LFP}wcGM(;Y&DUNXmfIqV$w0qEghgnegLf9$L6Me-unrAK zG$JEZ+*D#&(jX0cQ=1D97ls*mL?V)$FfBIaWp1^$I+Cq zjw4a(*ivdPdfLpglGl~oq=NHWl&l(axXGwM1M#Q9q}|7AEAoqV&3y&F6^ za3L<@6D7iGu9F2lTNkqxVEYoR@#S8{yS@u0p24yw*a&b^_yZOihN={H@EHo$Rvg?o zbMVrNgD(+*H)VYE@gb}Xkn7g3@%(z84;az_(iHDD5U}CoZ(btYP#qpjm^k4Dy`d7Pdm<--ugr8{7Q^?d@!ZIHNjV@C*~o z#R|JSrrhO4@(c0phTyt!tkpFw^mSpyE$U*yVJy_fruxH}>%X4T#JU4PSvaMKmrLti zWHh{yoHx;FHe(rA*@|muwT*O-9<$C%ym_bAxxuVS*SW#0DL~2An>7W=<9xFwtF)4k ztkRVvi(m?Tlyg#Z@@QfL1IOTYAH$tJ$1u`+45Mw+27;Kq2!V0#|B!z-;YbGrmjE82@>|i`RlNPBk zwkCY`95wdYq6BN~mZI!MiLDyDbtWxTW5=zT#4w4WnM9k!@JwQ)((oFNKWm~Ij-QgK z1d$x-Y3l0<-9DOaE92^ojPlzUOZ#cko3NN5xPa!roQCgZ`zD%tH-Uc-2Js+|gFXS5 zo7A0n4ZH9?4CB|>Em5Rp5k}-UPW z|A^{l&cQ=0UNuXtwz?Wz|q;75&v?)YOdybdT@Z2e+RYtPFnb0p4PpGM{oDA^XulXucaX<`KkqvN~atNNp zUsE=(p81rq|KohNsF#&~fzs`ptaluBtwn?NG!q(q{d_jM|FO}kWs>1M6Ffge5gy{2 zKFsj=5L)oC(UMnptSlm&>42uB6bq>#)k6Sk9i>FfyE$z6sdJJgjVJvAZ~fJL$Fm|{ z6}5^uO%`j403%2m;#N`K-c~PR%;sIu6>5D-UmjNAd{au0@Pt1^mXBgN9;1N{u^>8P zgijc?tnr2CRK}d@Dr+i{%G+C}^MeK;FE$2x^0X6ly@V(bOHvVD4|1@){`|K4-W*AAjX-SDf= z;U6aOuiE_9K`cIo?{Ex@qDbw3jw4k2UnlTmU;;lOR)wXw2MoAB zWZ?V}-R&oIyq{8QKVzl$bJn-NU_JX2n&p=$;8!Kn(rDg>NRxG(M&%(eKjSPQ7J#2bHX`ocl*v>?t_#GSSans9f^q`^TDyZXosASlTSMXbOI?zWL-4%u+4#>AvRr z)xE982-0Sm?Z&NfD;8QkAq{4$A+th9uqhs{edmOne-KR9Z7c>Sq_L*|Fl<_qgS7S{ zWo;xDc}@~-RpjjzuA%yPRm?6{ss4^+*~c&|7K&Rm=0{5TINf|wMfy1Uje%G9w0J`G zww`>98=TglN<@283U0Z^S(RA4x1O{xcsKf$M+dOenjBBP9U8jghUook|mU7DM5BV z?R){B8u_OOl`CYWBzS(UG%qVV&PlJV=`< zHEmx?5G;CL-Xf;Dn@ZerRd4Gv(!uODoA(WxxUDBjiMuS2nZzv@A}$wU1#R5S_8RfF z;$Gsuw5UZ2r?s&r?n`|w#!)L9WfPI1Yc+{`&dkKkvb|U$H?xxtmr`wP_({95ns*q& zQ%Q5Wq8{AkEmu0Jf32;KzPSfC^NdA(nD<8YV&0qd@PYTl^wS_xScE;mx~!#Cmlb`G zZ#M9^iN6Q=JLo%Ov0(eE@@vp?g7>9*@>F&lMN^PUb6gWZ*-3#Zmw6I9&0*w9ERn0I z^7Xh#I(RC2H8#jbeu>_MeZ1c%*W%sM%`dvw@zdoNd{VA2%P~i%Omb9usVpHF7yE^v z8iFS#ll=bzUfJiDP)&@L{66O?l&Rm_tZ30hfv?k&aN2f7ZbX%AD>F;fpEIDJ27NBS z_RTU(E~N_0diw0Dsk`~}u%14l`@=EKbo|fjsgly5G&J#=alb&prU^EB;T29=xDI&urQzhHqMmO;ueWUf2Sb=X|* bG}pAbW@MCo`Td+IdqwVI|C|(L58}TEwKfVC literal 9430 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 I-6!?`1ur?Ko&W#< literal 8216 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 diff --git a/OOP_1A2_Project/src/backend/Board.java b/OOP_1A2_Project/src/backend/Board.java index ab75d92..05d1ad9 100644 --- a/OOP_1A2_Project/src/backend/Board.java +++ b/OOP_1A2_Project/src/backend/Board.java @@ -1,8 +1,7 @@ package backend; import java.util.ArrayList; -import java.util.HashSet; -import java.util.Set; +import java.util.List; public class Board { private int width; @@ -10,7 +9,7 @@ public class Board { private int turnNumber; private boolean isWhiteTurn; private ArrayList pieces; - private Set highlightedPositions = new HashSet<>(); + private List highlightedPositions = new ArrayList<>(); private Integer selectedX = null; private Integer selectedY = null; @@ -22,7 +21,7 @@ public class Board { this.turnNumber = 0; this.isWhiteTurn = true; this.pieces = new ArrayList<>(); - this.highlightedPositions = new HashSet<>(); + this.highlightedPositions = new ArrayList<>(); } @@ -302,7 +301,12 @@ public class Board { public boolean isHighlighted(int x, int y) { - return highlightedPositions.contains(new Move.Position(x, y)); + for (Move.Position pos : highlightedPositions) { + if (pos.x == x && pos.y == y) { + return true; + } + } + return false; } @@ -328,7 +332,7 @@ public class Board { this.selectedY = board.selectedY; // Copy highlighted positions - this.highlightedPositions = new HashSet<>(); + this.highlightedPositions = new ArrayList<>(); this.highlightedPositions.addAll(board.highlightedPositions); } @@ -349,7 +353,8 @@ public class Board { } // Get valid moves for the selected piece using the Move class - Set validMoves = Move.getValidMoves(selectedPiece, this); + Move moveHelper = new Move(selectedX, selectedY, selectedX, selectedY, this); + List validMoves = moveHelper.getValidMoves(selectedPiece, this); // Update highlighted positions highlightedPositions.clear(); diff --git a/OOP_1A2_Project/src/backend/Move.java b/OOP_1A2_Project/src/backend/Move.java index faf1019..02c7719 100644 --- a/OOP_1A2_Project/src/backend/Move.java +++ b/OOP_1A2_Project/src/backend/Move.java @@ -1,7 +1,7 @@ package backend; -import java.util.HashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.List; public class Move { private int fromX; @@ -28,8 +28,8 @@ public class Move { return false; } - // Check if the move is in the set of valid moves for this piece - Set validMoves = getValidDestinations(movingPiece, board); + // Check if the move is in the list of valid moves for this piece + List validMoves = getValidDestinations(movingPiece, board); return validMoves.contains(new Position(toX, toY)); } @@ -111,7 +111,7 @@ public class Move { for (Piece p : tempBoard.getPieces()) { if (p.isWhite() != opponentColor) continue; // Skip pieces of the wrong color - Set possibleMoves = getValidDestinations(p, tempBoard); + List possibleMoves = getValidDestinations(p, tempBoard); for (Position pos : possibleMoves) { // Create a temporary move Move testMove = new Move(p.getX(), p.getY(), pos.x, pos.y, tempBoard); @@ -127,8 +127,8 @@ public class Move { return true; } - public static Set getValidDestinations(Piece piece, Board board) { - Set moves = new HashSet<>(); + public List getValidDestinations(Piece piece, Board board) { + List moves = new ArrayList<>(); switch (piece.getType()) { case Pawn: @@ -155,12 +155,12 @@ public class Move { return moves; } - public static Set getValidMoves(Piece piece, Board board) { + public List getValidMoves(Piece piece, Board board) { // Get all possible moves without considering check - Set candidateMoves = getValidDestinations(piece, board); + List candidateMoves = getValidDestinations(piece, board); // Filter out moves that would leave king in check - Set legalMoves = new HashSet<>(); + List legalMoves = new ArrayList<>(); for (Position pos : candidateMoves) { Move move = new Move(piece.getX(), piece.getY(), pos.x, pos.y, board); if (!move.putsOwnKingInCheck()) { @@ -171,7 +171,7 @@ public class Move { return legalMoves; } - public static boolean isKingInCheck(Board board, boolean isWhiteKing) { + public boolean isKingInCheck(Board board, boolean isWhiteKing) { // Find the king's position Piece king = null; for (Piece p : board.getPieces()) { @@ -188,7 +188,7 @@ public class Move { if (p.isWhite() == isWhiteKing) continue; // Skip pieces of same color // Get raw moves without check validation - Set attackMoves = getValidDestinations(p, board); + List attackMoves = getValidDestinations(p, board); // If any piece can move to king's position, king is in check if (attackMoves.contains(new Position(king.getX(), king.getY()))) { @@ -199,7 +199,7 @@ public class Move { return false; } - private static void addPawnMoves(Set validMoves, Piece piece, Board board) { + private void addPawnMoves(List validMoves, Piece piece, Board board) { int x = piece.getX(); int y = piece.getY(); boolean isWhite = piece.isWhite(); @@ -236,7 +236,7 @@ public class Move { } } - private static void addRookMoves(Set validMoves, Piece piece, Board board) { + private void addRookMoves(List validMoves, Piece piece, Board board) { int x = piece.getX(); int y = piece.getY(); boolean isWhite = piece.isWhite(); @@ -272,7 +272,7 @@ public class Move { } } - private static void addKnightMoves(Set validMoves, Piece piece, Board board) { + private void addKnightMoves(List validMoves, Piece piece, Board board) { int x = piece.getX(); int y = piece.getY(); boolean isWhite = piece.isWhite(); @@ -298,7 +298,7 @@ public class Move { } } - private static void addBishopMoves(Set validMoves, Piece piece, Board board) { + private void addBishopMoves(List validMoves, Piece piece, Board board) { int x = piece.getX(); int y = piece.getY(); boolean isWhite = piece.isWhite(); @@ -334,7 +334,7 @@ public class Move { } } - private static void addKingMoves(Set validMoves, Piece piece, Board board) { + private void addKingMoves(List validMoves, Piece piece, Board board) { int x = piece.getX(); int y = piece.getY(); boolean isWhite = piece.isWhite(); @@ -359,7 +359,7 @@ public class Move { } } - public static class Position { + public class Position { int x; int y; @@ -375,10 +375,5 @@ public class Move { Position position = (Position) obj; return x == position.x && y == position.y; } - - @Override - public int hashCode() { - return 31 * x + y; - } } } \ No newline at end of file