From c3318f834cca64c6c18e94696141128df8f8603f Mon Sep 17 00:00:00 2001 From: CT Date: Fri, 24 Apr 2026 13:34:00 -0500 Subject: [PATCH] king, copy board logic, getPseudoMoves --- Bishop.class | Bin 0 -> 1483 bytes Bishop.java | 77 ++++++++++++--------------------------------------- Board.class | Bin 1067 -> 1428 bytes Board.java | 22 +++++++++++++++ King.class | Bin 0 -> 2492 bytes King.java | 55 ++++++++++++++++++++++++++++++++++++ Knight.class | Bin 1711 -> 1901 bytes Knight.java | 15 +++++++--- Pawn.class | Bin 1817 -> 2025 bytes Pawn.java | 11 +++++++- Piece.class | Bin 1235 -> 1499 bytes Piece.java | 23 +++++++++++++++ Queen.class | Bin 0 -> 1544 bytes Queen.java | 33 ++++++++++++++++++++++ Rook.class | Bin 1361 -> 1519 bytes Rook.java | 69 ++++++++++----------------------------------- 16 files changed, 185 insertions(+), 120 deletions(-) create mode 100644 Bishop.class create mode 100644 King.class create mode 100644 King.java create mode 100644 Queen.class create mode 100644 Queen.java diff --git a/Bishop.class b/Bishop.class new file mode 100644 index 0000000000000000000000000000000000000000..da99627b684ce6b8aa1608270c822ecdce1f65ff GIT binary patch literal 1483 zcmaJ>>rNX-7(HVgFD#ovxs*U?N>Y;8=Hgz`HjODMxS`p0NvMbt(f%6jsoAjXSi55q z-lUJwN)bpw>I3wls-Ce;Y-%e%c6R2wobP;>nScI$`!|3M{Nf-ZF#S><%h#p!RT$Sx z{*kOJzpCR2T4X(3K~7-iNFJ(+j;qqV2+aX^sgbcs1@7bn>s^W@eRoYlh;pG{`n;vdir8u!riym&{4k=Z2q!W_w=i|~WZqR(+c$j7l3x zB2R)aH7<%+vCgZcn=i0tQ~1oo=lFs#(SQ_G}Q_We%fE@QBKMcni76~1N} zWUaOlMFO*(p0sQ$I*L@aRfEE>0@;eTz+*uet0&E)eU&_u`w=DCs&1SJjIc$m9+b(N zo!d!Ov!(-8m(jL9RxIj`3r>R>5n?y2$I>(tq88t4yw>f{I^$hsyxvIeu5Kn(wG~=^ zqwOZI+DZzHZ)$B)lgP%lG6%Yr4&w)bskD)VMx`ZD+HZ}-Y9p?X<*?=AM?7}m+pF-C zz+!jY!}wSqs?OB6Z^xFb8lA8ffAr3F$FLplv5aexN*4pI51Wm0|77$?E;&9sX{Z6_ zzxCKZ-G9k`UAllBh>DD&UFOG9d43$Lq!P(ARjGq*f!lpK4WjDcDLeRnQ%+JlFWlrv zj`IoOBf<;KG3WXXPxs(Z0$eLzpIa(oDMrsQ_7`;m_qn>raCI<)VM@Nm zgAT%dHo|J=&oQ-Ee1nhPV6OdJ;P2Bj+zpog{2$6F=HSu4j5YdN9={WXaq-|B#l15u zZ!Z^@GMQ79PVwan?z27nOtwe getPseudoLegalMoves(Board board) { + ArrayList positions = new ArrayList(); + + positions.addAll(slide(board, -1, -1)); + positions.addAll(slide(board, 1, -1)); + positions.addAll(slide(board, -1, 1)); + positions.addAll(slide(board, 1, 1)); + + return positions; } public ArrayList getLegalMoves(Board board) { - ArrayList positions = new ArrayList(); - - // check left - for (int i = pos.x - 1; i >= 0; i--) { - Position test = new Position(i, pos.y); - if (board.isOpen(test)) { - positions.add(test); - continue; - } else if (board.getPiece(test).colorMatches(this)) { - break; - } else { - positions.add(test); - break; - } - } - - // check right - for (int i = pos.x + 1; i <= 7; i++) { - Position test = new Position(i, pos.y); - if (board.isOpen(test)) { - positions.add(test); - continue; - } else if (board.getPiece(test).colorMatches(this)) { - break; - } else { - positions.add(test); - break; - } - } - - // check up - for (int i = pos.y + 1; i <= 7; i++) { - Position test = new Position(pos.x, i); - if (board.isOpen(test)) { - positions.add(test); - continue; - } else if (board.getPiece(test).colorMatches(this)) { - break; - } else { - positions.add(test); - break; - } - } - - // check down - for (int i = pos.y - 1; i >= 0; i--) { - Position test = new Position(pos.x, i); - if (board.isOpen(test)) { - positions.add(test); - continue; - } else if (board.getPiece(test).colorMatches(this)) { - break; - } else { - positions.add(test); - break; - } - } - return positions; + return null; } } diff --git a/Board.class b/Board.class index 6328222abe679d29c1a9f0e72784e6420d8a3668..ace75e4ea2a018e4e05bd2f81abc8a53c6331194 100644 GIT binary patch delta 805 zcmYjPL2DCH5dPloCY#-aunEMZW>XW;vPq0dwym*ETHAWiLJ*-=XitV%FkTv}D0=B7 z{~%s_@=(-^1#Q5BHxa~N;8DDK6$!ENdz+|%#|$&`z4^X3^Iiv@2hGo??>_)o#mbRc z5UvRmsx%iva8M8kI_vA%`mNSZbEj$|fno?Hlm)crZu_Z#;dG0loMG&2XYc5!2t*z< z9yf}OCy$EP_Zsc{t>!}=3*Bd;9I>4G+HPa-UNt-R-It;e4?w^NKdnn4ub@Mr-|YSn z@qIh@7Dm$5P7vNoYEi3)=tf6~!{K+embCO2m>vNvzlX5=(bzx8wgrzb3fM6dH z*G^z=^^mKpOSatSoVuKnekNz9j*(x~rnFD+AHvG>BiL@LJ*6Gv(nd$+ANbl)Xusqo z)8w8D+-#8}FLBRh?#-plS(xJx CA920_ delta 451 zcmYk2%Syvg5QhIrb9$P#lr&OX8!u5r?9JHL3uqVCg}T;_?aJWBy7GoD-RKj9bjGKNs&yw3F&h6C3ML=Q0u zN#rr4u~MQG)Dkuy;t3g#zd#IJ0iWE_*jNdseT0@Rf13YIz(`;gP^Q<28`VCvp-v1y bW4};5fM$_nH1A%kR_fn0$-Mpmy-7Wi diff --git a/Board.java b/Board.java index 4355039..d8a55ca 100644 --- a/Board.java +++ b/Board.java @@ -13,6 +13,10 @@ public class Board { } } + public Board(boolean isCopy) { + board = new Piece[8][8]; + } + public void draw(Graphics g) { for (Piece[] row : board) { for (Piece p : row) { @@ -32,4 +36,22 @@ public class Board { public Piece getPiece(Position pos) { return this.board[pos.x][pos.y]; } + + public Piece getPiece(int x, int y) { + return this.board[x][y]; + } + + public static Board copy(Board b) { + Board newBoard = new Board(); + + for (int i = 0; i <= 7; i++) { + for (int j = 0; j <= 7; j++) { + Piece p = b.getPiece(i, j); + if (p == null) continue; + newBoard.board[i][j] = p.copy(); + } + } + + return newBoard; + } } diff --git a/King.class b/King.class new file mode 100644 index 0000000000000000000000000000000000000000..67b67f098068ec765f42185edd7834f1de57376a GIT binary patch literal 2492 zcmaJ@ZBr9h6n>VxY_cqpf`LXww7x-jQ>>^2se-jegHWT`K&vic3oBtaW;Y0Zuchx! zKUY6>{K6MMwAMl^9j5)%nf5RAhd7Q(pSuZ792jS^d+$B>oO7S^oO93S?`IEJ0Gz-r z85I)3*R&aJw!^+*m=hiGX>CG}r!BLF8eSDX_$Aa&Yg2l^Wu`UflHp8pW;>ec*b??O zC4_ZHMx$-g$;p1YCluuxT1RACcMCUnOIB%!9M=vKSo z6hOulgz%D#8sWEAf^W#s)4GIxP4W181O-XSxOq5;FzRH~t9Tg^3Es2B&Lbx^d%&8} z$0bN3LS?IpZD^3-$y$t8Neo%G;TV<~3!)J_Wb9P&3U<+OZG(oheBxq%kBYrwQ<@X5 znp89+N~CEkW91mrdYB5;T17x@WPQUxnuld{NT_vb&pSq@<3ui}%_R)mQP7S9!nl)g zn+g%Ws^Sp37~bqjgGW}35?2^UR2+4sbCfCs8WUzcgvK+QnS)-uCgZru8tJ33&(d-v zBw(0*R^A*Z4^>SiBAQ2p{z(jVi=^h-rrl*})!St+( z1O^J}E+(5 zNyS@8F$PvwLZ8qwBHwhfy(!@ax>mr?lgs1VF{c`d_;y#3ZVZ$x#%F!gi!=`lTbK^x0Z;!RuGISE1fFYv~KA{#@to*%c$ zIjKrIT6$_g%N7lTNn^s)oP3T>qA%pDr&J)lF~(|`{gZln%FR`g<`EeeWe`VTEj^s} zq%+0-pd_t)F0G$31md8$p6w!5hTLaaj_u^M?11h}TH|&AACqD`n`2t+4yj{G=w{7{ zYCk?za1)=&m=~?=a|ydkbQ$K1HKiB3R-wC{($Y*S5q)3Yn~I8s!%l1Fct*E(CoF3! zpN*}*!ex@@3@^-O^$pZV%k8ol8lZ_s&UiQbNw03wsl*^R}%KDi)kaM zGQMGrzgU&EQ-}*Y*(E~!1bFzcKk^+Ajl><90j@B~TQ%l%C;OT9+kAo|Bad{byYknzd zXun$YejkUqSVDKVH{$&j$L_$tfM`p^yNLeVsA?6HQjXuwr$#{~DM`3=cYyAHmmP-L`APjE;^ zW6fjKK4uuU>(ya^>|DhFw{RtBs*p-#h@60*oRWSXGnA1KX$Q5dxcgnp1DqddUFr37 zdBfg@yZERz?CtFKMSR`pLLOu}*{)zA% z9E}897BSqdM3hC0bXP_yf5T-7x3NRa*z*5CW49{Eji`&5ybYiC-oom?^8vxsyqE8r zo_j=8&R3L7wcr3+`GIP~8TQ=s=wNZ|$A^@D!o4pL#VxWa_(~w~43#o&NYW||gEGQ0 zdfl~*S^gyQ@k9tiPtizTWn9_y2o1gISHi getPseudoLegalMoves(Board board) { + ArrayList positions = new ArrayList(); + + for (int i = 0; i < xDir.length; i++) { + Position test = new Position(pos.x + xDir[i], pos.y + yDir[i]); + if (!Board.inBounds(test)) continue; + if (board.isOpen(test)) { + positions.add(test); + continue; + } + if (!board.getPiece(test).colorMatches(this)) { + positions.add(test); + } + } + + return positions; + } + + public ArrayList getLegalMoves(Board board) { + return null; + } + + public boolean inCheck(Board board) { + for (Piece[] pieces : board.board) { + for (Piece p : pieces) { + if (p == null) continue; + if (!p.colorMatches(this) && !(p instanceof King)) { + ArrayList ar = p.getLegalMoves(board); + for (Position posi : ar) { + if (this.pos.equals(posi)) return true; + } + } + } + } + return false; + } +} diff --git a/Knight.class b/Knight.class index 07712eeac1a5590877a9297f06274e870101bc49..7831c1cfea6f6878b5c970117db62d7f400cc41f 100644 GIT binary patch delta 973 zcmYjOJ5v);6#njJvkA-c7+44)fGD8ZfQiaO1VvtokpNKf04*%+wD1>L*fPG(jXW&wd3@*G@1FDBH+kRl%c8 zY=u+RDyYL*24~!yH`5G7Yg1~j3crFJXbhgUZzZeRhzs=$#dEQxSZFb0%!j(t>DWrd zure|NIL~{7G>u;y;glB?T*M^?akVB^8@CRZrOfEyY`qtwNhy#qgx>sdYb)^U@Dm?kT5A@3NaU^6*v*M zpF2LYC-#&W5N8>x>>mz~{mJ37UyDkOibDEU0d6i6MQ$z(c_(NbXk-WNucEd(M3_u{ zAk;$9^2G$u3&jM6dV`SJokIAW-iWcX0g$ z@)~&1J-Pu;7P=YO!R>X(hww88+xYXcflnr6CkrB%;v&*OC0jyDl%kWi4Wn$8*7ee; zKGL-U32InCHHN9Z6wY6eT?nwBXm-I@bb#UmTI7C~c7#?OJzlY#GA@+BPUMgX18R@^ z-FSc?VO$amB3WRx(5{p;7P9-KKu6;yA^%J1L_JC8z!>2I9%7uln>r@wJi-iR{JV6T H+JN^jt0byZ delta 754 zcmXX?OHWf#5dP*q%grq)EwlwGSVh}{R7Hw_pgdG6<)I=E@j;0du3|6g17Xz-KfvT{ zl%*RIHVPqNAod5iaO2voJNL#!bS}6!XXbn}XTJHqpXDFi#+SqW5`bQ$whW@8=S6Bc z6)WVe#aM4Pn_5j;xx4`{d?w1^C&=N*L>X#OtK*c3Is^&YP{x{H$P<*60V_+8W)e!ayso=x8$$N4xMzjkT@lFwu#2-pHE8D2&pdKJJ9o@m%9fYft+2gFaN}b(9tWyhUpKy5{+6JOc0c{so-@)DNBwdpm zDEf}D>(O2GufzC{ugSFW_igh>=9b`W7>Ap0H>;>XB`XWyBpNvDhKD!x;x4K%g=);e zj|HyU+*e@bN&e-B`Ui#%FCC(rNJpsh7d*dN+b~eh1S33ll-nFjzG`s_2vv{v)Nk=$ kI$}TeM@17f_HT@Fi5c&4baBT6KKGf~@saQdPcVzXKiIW_O#lD@ diff --git a/Knight.java b/Knight.java index a691ee0..d093531 100644 --- a/Knight.java +++ b/Knight.java @@ -9,13 +9,16 @@ public class Knight extends Piece { super(x, y, color, new ImageIcon("sprites/" + color + "/knight.png").getImage()); } - public ArrayList getLegalMoves(Board board) { + public Piece copy() { + Piece newP = new Knight(this.pos.x, this.pos.y, this.color); + return newP; + } + + public ArrayList getPseudoLegalMoves(Board board) { ArrayList positions = new ArrayList(); for (int i = 0; i < xDir.length; i++) { - int xPlus = xDir[i]; - int yPlus = yDir[i]; - Position test = new Position(pos.x + xPlus, pos.y + yPlus); + Position test = new Position(pos.x + xDir[i], pos.y + yDir[i]); if (!Board.inBounds(test)) continue; if (board.isOpen(test)) { positions.add(test); @@ -28,4 +31,8 @@ public class Knight extends Piece { return positions; } + + public ArrayList getLegalMoves(Board board) { + return null; + } } diff --git a/Pawn.class b/Pawn.class index 132432ebd0bc4d742076cbb4fd63dd52fa151971..5bbcd8bbad64fce1040d20796ca153dcb5962b65 100644 GIT binary patch delta 897 zcmb7COHUI~7(I77)1kw)Rcr$&Z6Z?b69HdT1Oc^*7O1GLs9Os502(9nQt zvXLV#MwRB$4Gf!;)NLnGiLjvp&v0l3hgJ~UfFlHLWt>Qam#NQSDr(lO3;VE}DmQV9 za#CSKuv@!+RuCI5qocoq@RpjK+16{!l+iU1Exkq00=(hqDlRO-W8$UIDh3weh)_I~ z-bv5@MgI@>zquv1wR!=3W8Et#k>wpbH(3f{A1yv6cj}qaB1#3Rso698@qE^13(?Gz$LzBSe55zS>g7R1=+Qs5h=(9;2B+`|#1n_L8=NVz1zoapPTTVW)jwD<7>Mgc=+Nji=%U-6Q+x*_ z^cq~GTTo`@N3v$xxpLW{kAC}=;%mQRFvwMbk<83zazlwia?W%t_@gn)Oq!9vq~ktn zFvL;mFOf>lK9&AZguLP>f(RM|1PdBjb6go9`_P8w7P5Nj!1P3&y^fYRK3jp9ode{VrW&a ztPqp23$Kh`%BjRh6+KkbPc2Cf@RT|hspmO|Sm7`m9N`Ve`NRpn$lKp&WVEDKf6%Yd npb_kB6Rq4RwZDmrcnOVjOXhO<7q{h^s30M!F5!Jr%ux3mU^JpR diff --git a/Pawn.java b/Pawn.java index 43ca65a..7d73ff5 100644 --- a/Pawn.java +++ b/Pawn.java @@ -11,7 +11,12 @@ public class Pawn extends Piece { colorDir = color.equals("White") ? -1 : 1; } - public ArrayList getLegalMoves(Board board) { + public Piece copy() { + Piece newP = new Pawn(this.pos.x, this.pos.y, this.color); + return newP; + } + + public ArrayList getPseudoLegalMoves(Board board) { ArrayList positions = new ArrayList(); // diagonal moves (captures) @@ -38,4 +43,8 @@ public class Pawn extends Piece { } return positions; } + + public ArrayList getLegalMoves(Board board) { + return null; + } } diff --git a/Piece.class b/Piece.class index 8f66b7143f5cec9feecafab0ebfe05d043c1e4c7..f7fa97435eff12b6974ca6d4241b7cf463b104e4 100644 GIT binary patch delta 808 zcmZ`%OHUI~6#nkabjA)-h0qd8u!@TIT~w^t`f4j;bt)*RsnLY7Gie8Fr|A?DR^9jy z#+cwvH{H040hPmHfKgNerI;+}iYcfa$UN6xPQ^ML&6`}+?73b^}Lo?`(S zQN$#~6(o>!IBvQpA2n0#S9rvdyk(weqq1F8{288J8@Y_I%rDxjH!oc_bNlP1jw@1qByziFE2E zqq|@lHG^vSQ%Lo|yo>+}3W_K(C^f5Tbt+o7)-WiqOmsJpk~+`0=gvbe;3W8DZ@5m1 zwy~;Ps!`XP6>H693pJ~~&ft&6enn9)cGJ`;@8PKGb(JrdW9mQVkf$COyISpWMQbl< zkD3&c{C|j3;)9OOkEVqQs-2_J^K=F=L>3rD*t>%W(Jg_hz!kEy&PP5yd6lpcLI6Jm z$P_a`zJhU5Vwl4-2kra1JW@mB0L(n5RGHj?zd=ovG=~Y=q$9LjM`@jpLB%AhIF1Lj(mG;#$&_@2p4G~bU}!qi9bw6MR>%`O9k*;5x6g&+ z7-?Z~^kcw}!2pIZ%uxH^WRP4K{AUGE)1on*#W}?dB*7W2>wsevV}6VWFo8+;kPU|z zxG6HaxlNODBy*3{I`=~fUa8UW-xby^DKf&*W;AzCxn|w&tJ3V=s8#Ny5wCj~PUL#U<*)T6=6VMHkVh*N@DigWI#nrNFR zEJ_H#saHXo0M$XnP)VExEPBixU;loA$-QaSXh99(OIW6Qj_`KMg+2HKI%@hJkz{vN nG5U2snh46sx47L3byl(FIluU#v60(faw&m8BgJ*f3O2q0tNUc3 diff --git a/Piece.java b/Piece.java index 6b99592..d4da0d4 100644 --- a/Piece.java +++ b/Piece.java @@ -18,7 +18,30 @@ public abstract class Piece { public abstract ArrayList getLegalMoves(Board board); + public abstract ArrayList getPseudoLegalMoves(Board board); + + public abstract Piece copy(); + public boolean colorMatches(Piece p) { return this.color.equals(p.color); } + + public ArrayList slide(Board board, int dx, int dy) { + ArrayList positions = new ArrayList<>(); + int step = 1; + while (true) { + Position test = new Position(pos.x + step * dx, pos.y + step * dy); + if (!Board.inBounds(test)) break; + if (board.isOpen(test)) { + positions.add(test); + } else if (board.getPiece(test).colorMatches(this)) { + break; + } else { + positions.add(test); + break; + } + step++; + } + return positions; + } } diff --git a/Queen.class b/Queen.class new file mode 100644 index 0000000000000000000000000000000000000000..012f6fa9f7dbf1818e570211bce2d4174f9c96aa GIT binary patch literal 1544 zcmaJ>?Q+vb6g_L3C=sFw`5+{u5NH6~`EWmIOY1akVhE@x5GD*v+Wy(tJB|`X>q>GU zZ_+2|?{(vW*d3wlHdN#{@2H z`l_k~?&e*$mqFXo4KBR2Fu|bbO{KyijAPQlRZIzF8=B{`y-gkaiLb-*5Uydy!lw?d z;|4js-w+UQ__=2Prh{8%QydwnIS03Khu~Em=!o2V>DYA38{!43+n2B*I4>~PlDC=o zL1{IL?gAIMCDC+h1occ2&#Fk$VWzvj@TKuT-M@I9_oG7Y5DfmSeMmAM^xgEbYpiM+u0t=uokFz&eM9o*(mq+Mapt6@WoL> z^>P0-<^ODFkJUPN`#KO683bEA9))t;FjP?`ka4VH3mXErd(PC4s)c8)-^X3qN9}Xr zCL3~u?+0HH-exvA$8Wj12a6WqYVq34;wi-T;yYx46IjQ%c!J@-xhHU+qm2wl3zHb6 zuf0w|}$zeRhJo-uz!5pj^Z>9LATi%vi(YPogj{_D)gU zKEcAqLUBHmIY#LiU%lcymzrmCDSLXJ?b getPseudoLegalMoves(Board board) { + ArrayList positions = new ArrayList(); + + positions.addAll(slide(board, -1, -1)); + positions.addAll(slide(board, 1, -1)); + positions.addAll(slide(board, -1, 1)); + positions.addAll(slide(board, 1, 1)); + positions.addAll(slide(board, 1, 0)); + positions.addAll(slide(board, -1, 0)); + positions.addAll(slide(board, 0, 1)); + positions.addAll(slide(board, 0, -1)); + + return positions; + } + + public ArrayList getLegalMoves(Board board) { + return null; + } +} diff --git a/Rook.class b/Rook.class index 639094ab2d8df81100696dc2a08531a85c9cecb6..dad9fa568224f9a26f31687b46ec9e89155dd012 100644 GIT binary patch delta 688 zcmYjN+fEZ<5dLO&>0wIFG(i$%MN!szDx`qt0grTNzM3*qS_i8K@L0&@` z1@Ak>&AA&*y`Diu`C?NYWfqFGcP?=noKB7(b*w{^^94!t)^8boM~IV zx@&EeH9O222s;6 zgf;J{^i_F8NPAOqn)iC*{g7v;iH|vfC`$!Qi~`Ftdy5Ei1bo+;65riti*SSG2xOKa zoaNd$RE{p<=3h*SX(Z0Zj}ckV9w2srsXyuhtC=I@%-s8aC-tOu7%}cixP{y7`^+2M z#phT!MsfWJmumU!ZcdR8F?)#XFY?)(^q(y&gSagHvj-$G1h~~G4?M;%f)vJ)=iy7d za)mPzmY96GPab2>UqPZlj{xTUD<%2>8Fx;gD_CV6Vn~($T|8vZzepXA@f6YDQuA-t delta 583 zcmYL_OHb5L6vzMPw$N!QLIxTH1`*VG)M2XP14YqMP|=Pt!C-V($v9S-lREZeiZJ-ldE!`}<9Do;By#-@p||~b-SJ|AQB8kHLmPKh7&xHg zAPx}4FTWe2wwl^ve7Julan>HSobZ-&&ubI_o)%{g}%LM`%dk-Ym0TlQbV;Ii4I>c`bDk#$~&vPcPo#(o<`RyDQ*cKSt getLegalMoves(Board board) { + public Piece copy() { + Piece newP = new Rook(this.pos.x, this.pos.y, this.color); + return newP; + } + + public ArrayList getPseudoLegalMoves(Board board) { ArrayList positions = new ArrayList(); - // check left - for (int i = pos.x - 1; i >= 0; i--) { - Position test = new Position(i, pos.y); - if (board.isOpen(test)) { - positions.add(test); - continue; - } else if (board.getPiece(test).colorMatches(this)) { - break; - } else { - positions.add(test); - break; - } - } + positions.addAll(slide(board, 1, 0)); + positions.addAll(slide(board, -1, 0)); + positions.addAll(slide(board, 0, 1)); + positions.addAll(slide(board, 0, -1)); - // check right - for (int i = pos.x + 1; i <= 7; i++) { - Position test = new Position(i, pos.y); - if (board.isOpen(test)) { - positions.add(test); - continue; - } else if (board.getPiece(test).colorMatches(this)) { - break; - } else { - positions.add(test); - break; - } - } - - // check up - for (int i = pos.y + 1; i <= 7; i++) { - Position test = new Position(pos.x, i); - if (board.isOpen(test)) { - positions.add(test); - continue; - } else if (board.getPiece(test).colorMatches(this)) { - break; - } else { - positions.add(test); - break; - } - } - - // check down - for (int i = pos.y - 1; i >= 0; i--) { - Position test = new Position(pos.x, i); - if (board.isOpen(test)) { - positions.add(test); - continue; - } else if (board.getPiece(test).colorMatches(this)) { - break; - } else { - positions.add(test); - break; - } - } return positions; } + + public ArrayList getLegalMoves(Board board) { + return null; + } }