From 0363bcf6000b14c185131927fa00af96be9a750e Mon Sep 17 00:00:00 2001 From: MasterPyo <olivier.pillods@gmail.com> Date: Thu, 27 Apr 2023 20:26:21 +0200 Subject: [PATCH] clic on red/purple target works now + graveyard pieces can't be clicked now --- .../src/main/java/controller/Main.java | 53 +++++++++++------- .../src/main/java/view/BoardView.java | 6 +- .../src/main/java/view/PieceView.java | 20 +++++++ .../target/classes/controller/Main.class | Bin 6686 -> 6956 bytes .../target/classes/view/BoardView.class | Bin 6365 -> 6417 bytes .../target/classes/view/PieceView.class | Bin 1209 -> 1893 bytes 6 files changed, 59 insertions(+), 20 deletions(-) diff --git a/MavenChess/MavenChess/src/main/java/controller/Main.java b/MavenChess/MavenChess/src/main/java/controller/Main.java index 008b995..9328f91 100644 --- a/MavenChess/MavenChess/src/main/java/controller/Main.java +++ b/MavenChess/MavenChess/src/main/java/controller/Main.java @@ -94,25 +94,38 @@ public class Main extends Application { } public void clickPiece(PieceView clickedPiece) { - // clicking a piece will ask her available moves - Position position = clickedPiece.getPosition(); - board.setSelected(position); - boardView.resetColor(material); - boardView.setColor(material, position, CustomMaterial.SELECTED_TILE); - ArrayList<Position> moves = board.getPiece(position).getAvailableMoves(board); - - // shows all available moves on the tiles, with colors, each tile-color having a meaning - for (Position move : moves) { - if(board.isFree(move)) { - boardView.setColor(material, move, CustomMaterial.MOVABLE_TILE); - } else if(board.isEnemy(move, position)) { - boardView.setColor(material, move, CustomMaterial.ATTACK_TILE); - } else { - boardView.setColor(material, move, CustomMaterial.SPECIAL_TILE); // any special move - } - // PROMOTION (attacking or not) - if(board.isPawn(position) && (move.getY() == 8 || move.getY() == 1)) { - boardView.setColor(material, move, CustomMaterial.SPECIAL_TILE); + + // graveyard pieces should not do anything + if(clickedPiece.getPosition().getX() < 0) { + return; + } + // if piece is an "attack" or "special" target, we consider it an action to apply (tile click) + if(clickedPiece.isTargeted()) { + clickTile(boardView.getTile(clickedPiece.getPosition().getID())); + } + else { + // clicking a piece will ask her available moves + Position position = clickedPiece.getPosition(); + board.setSelected(position); + boardView.resetColor(material); + boardView.setColor(material, position, CustomMaterial.SELECTED_TILE); + ArrayList<Position> moves = board.getPiece(position).getAvailableMoves(board); + + // shows all available moves on the tiles, with colors, each tile-color having a meaning + for (Position move : moves) { + if (board.isFree(move)) { + boardView.setColor(material, move, CustomMaterial.MOVABLE_TILE); + } else if (board.isEnemy(move, position)) { + boardView.setColor(material, move, CustomMaterial.ATTACK_TILE); + boardView.getPiece(move.getID()).setTargeted(material, CustomMaterial.ATTACK_TILE); + } else { + boardView.setColor(material, move, CustomMaterial.SPECIAL_TILE); // any special move + boardView.getPiece(move.getID()).setTargeted(material, CustomMaterial.SPECIAL_TILE); + } + // PROMOTION (attacking or not) + if (board.isPawn(position) && (move.getY() == 8 || move.getY() == 1)) { + boardView.setColor(material, move, CustomMaterial.SPECIAL_TILE); + } } } } @@ -129,6 +142,7 @@ public class Main extends Application { if(arrival.getY() == 8 || arrival.getY() == 1) { // --- ATTACK (while doing promotion) --- if (!board.isFree(arrival)) { + boardView.getPiece(arrival.getID()).resetTargeted(material); // reset color boardView.killPiece(arrival); // place piece on graveyard (visual) } // Promotion to Queen (by default, Queen for now) @@ -179,6 +193,7 @@ public class Main extends Application { else { // --- ATTACK --- if(state == TileView.ATTACK) { + boardView.getPiece(arrival.getID()).resetTargeted(material); // reset color boardView.killPiece(arrival); // place piece on graveyard (visual) } // --- MOVE --- diff --git a/MavenChess/MavenChess/src/main/java/view/BoardView.java b/MavenChess/MavenChess/src/main/java/view/BoardView.java index dc006f2..1235ffd 100644 --- a/MavenChess/MavenChess/src/main/java/view/BoardView.java +++ b/MavenChess/MavenChess/src/main/java/view/BoardView.java @@ -21,7 +21,6 @@ public class BoardView { createTile(new Position(i, j)); } } - resetColor(material); // init/reset the board squares with black and white // creates the 3d pieces (from the board list) pieces = new PieceView[64]; @@ -41,6 +40,8 @@ public class BoardView { // init graveyards as empty black_death_count = 0; white_death_count = 0; + + resetColor(material); // init/reset the board squares with black and white } public TileView getTile(int id) { @@ -131,6 +132,9 @@ public class BoardView { getTileObj(n).setMaterial(material.get(CustomMaterial.WHITE_TILE)); // (visually) } getTile(n).setState(TileView.NORMAL); // (on 'state' attribute) + if(getPiece(n) != null) { + getPiece(n).resetTargeted(material); // reset the 3d pieces color too (visual) + } } } } diff --git a/MavenChess/MavenChess/src/main/java/view/PieceView.java b/MavenChess/MavenChess/src/main/java/view/PieceView.java index 3e6cb14..a67f77f 100644 --- a/MavenChess/MavenChess/src/main/java/view/PieceView.java +++ b/MavenChess/MavenChess/src/main/java/view/PieceView.java @@ -1,17 +1,20 @@ package view; import javafx.scene.shape.MeshView; +import model.Piece; import model.Position; public class PieceView { private MeshView obj; private Position position; private int color; + private boolean isTargeted; public PieceView(MeshView obj, Position position, int color) { this.obj = obj; this.position = position; this.color = color; + isTargeted = false; } public MeshView getObj() { @@ -37,4 +40,21 @@ public class PieceView { public void setColor(int color) { this.color = color; } + + public boolean isTargeted() { + return isTargeted; + } + + public void setTargeted(CustomMaterial material, int tileColor) { + isTargeted = true; + obj.setMaterial(material.get(tileColor)); + } + + public void resetTargeted(CustomMaterial material) { + isTargeted = false; + if(color == Piece.WHITE) + obj.setMaterial(material.get(CustomMaterial.WHITE)); + else + obj.setMaterial(material.get(CustomMaterial.BLACK)); + } } diff --git a/MavenChess/MavenChess/target/classes/controller/Main.class b/MavenChess/MavenChess/target/classes/controller/Main.class index a58fe7ddbb1a5d7404aac4d5172a66aeafdf4666..5e69f5ffa85aa5268903966b3a16a5f30e180f58 100644 GIT binary patch delta 2484 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 T$~s%Dr4nY!@~vFPHU$0!P~jh< delta 2257 zcmZ`)dr(wm6#t!l-QBz2uFFGl6%Yk<d4&;DfT9Lygb+Rx@x^0xkd>VPwKCgjY{p(Q zHQj7l#}ubOsL3>?R`Fe_rS_04E3(X9l$AZ~Nratmcae#)*|~dv-}%n@eZPCox#w=r z*^;fE?Avz;Kmje=rM8*PRoEl27adxG#TB<--~i?l)FyYcyQR?U@iwWb!6AXeIHIk$ z<eOd<xF4@+M=eR#V>qthb%8f<Lc44!wV%S93f>ZU8}AUJv^(rk+7flFwG;0uI3w^L z-q#*eM>z<3SIPn_I`M(PhxkbAP~+njd`z&f^wzmOnHApV`j&ccqlzkgBJe5BYZuf+ z(*=Rg@r9;Zvx=+mmB80HPcYRtS5&WI*Dib`@GUM949ndumBB+wRBXog0zXKzna#6X zs$1NW_D6xAw4K(N_!?Xm_!S)lOGCZKQ&I1(4LbZT@CW|X`m9L`dIbJPua+VT6!ZyP zA!v<a!d&z*6X^vR!a_>x8<(>XG6_=ph0K=*i-3_-g3(n{k}^+52|>1S)GV*JL4}is z2y#$_7G+5^J1I&~G!50d#kessf`*fm^|AgUx2L5#^lU{cqG+U`Sc+>OZ%ZeesP)v> zHn{78kDx8EXS6?QKS1^wDwR>WLbnO3pqcGU9R`{-n-Jrgv7&l)^|CuN-K*V=Et$pg zKR;#O5F^c%YUT+lrfCkE#)e91SRkm7iX601+ZN$USS(FT1Wl$X1X0r1=x!?XR5v%f zn-!`dBx{|Hn8za>RHsEmZYYT7cFP3u4=|?g0qtU-qfz{C3L5Q{z*vMFXf%!C6;UE3 z@qc{#*~mhoQQC;;H9qN9z(MCRl#*#I^f--F8b>asvm%00D3xu!7#p%NOIDapqBKfp z!VKn!fUy^+DX~Z1iF%L>3tfj@@;u(o35zxB4`TaX?C96)161hPVG$H8rUXVI(Pqk| z@w_5gwh#$D2m>nxPNoI0yDar3EKUy~!1v{R<p;2@AEp}vI2hi4McxBATAmTW$vlJ8 z(7`g{#|DYc`UpqRm1mSrPL4X~M|3}n(`aIvHe`l2`K-_Wv#SJmBL>{f1E+rJN0Q|0 zc9^$91d*W?gM8brtn$f37=nc>z!1hYFrpSV)L}T>oWy0AfO^ct3eHdi8sWiOti&Vm zViTHp$~5CRR^bFzQvye4bM#ECqU$M(5od}*rI+Xit}eeZI7ZpLt7G1cG{HwX(9@0V zD$^b`(M@cTC5?m9hkONH3Qj5L>_ryiI9pr~Y&{%L^6d&$M)xRJM&V*ra%H}oB=Z%( zrE*^UoM(vjQ*NwbD`m$jtz?sXTnWz49H$`wUpPSwyE#EqgQ@1lxlIr<vC`)kY2;-8 zCJlU*W$@xJY0Qw@|46e$L_u4Cbbgd8IYwzRI?Sz59Ht!Oeson1HS*Ejd&rz;3Wb|| zSL03Lc&CAVf}9c&wP9VD*6K$S)3R|etCTT7>ohpIal#Y~!@34(Z9{Ubsns{=F|YAN z{mm^qMIY>xEf~l6F0SR>+$n1jg?kW-dodb5q~ktJ#(I?UM`aE+U?Cph{&|S|<YBDC z6TEtgkslkmfBe|&!?SoAyRn78Qd_x|TKV<ghBJ7EKN4-Yz`Gam94_H`^kF+$@B&3+ z2fxufc|g2KX?U4m(g5Z1xG%&$D#Kx#k0X@8@)p9v2NhE;dm5R?MS0wICgz+Tw)OF# z@r8`sIsKi=D4%BzcPh=HiE<9XMl)y<2kUu2Pon}xhG2un!_tSz{Au70?TU8wVkFO< z++K{}+eBNGLno(cs6$c2JbIR8N=*xpy?^|0!b0<MR#0<7$faKjOu_LdhpdUF(#_B@ zCC}_@QAS>+3^SJg52GBi1B^aN$=`)A<rEemr=jfq;Vg7mfJO`^E)Eh83;A7@Dp=rj tCf3s}9IvAix|Q$zKvc@tEY9WaVKkqr!e|jyIcO=nseF7j)sh>|e*r4&(xd<Y diff --git a/MavenChess/MavenChess/target/classes/view/BoardView.class b/MavenChess/MavenChess/target/classes/view/BoardView.class index 13aa03119faf5d4aef19c4100a993ea3c4332aaf..899a1f0571f780e57241ebcaad5bc04e9324a0c2 100644 GIT binary patch delta 2894 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 delta 2858 zcmZuz3s6+o8UD__clR#47uZD>Sy&!|TC$)-AwIAuK8gj3k0olzLnX46jmlbgMeS5c zrrJr$bXt4c&a}228=E-E)I<l|Xv||KubCt>F-ae3lcu$gywitCn^d!CzH@e2wwb`p z<(zx&`Tp<!{_p&U!*gGs<9_bS!;b-2ENTwBUvRr25U@~&a{Gc-S81X`pkOE(+0(ct z8rc$A&ru#fsj^UwX@@_m^3-Cwi5V7V;tO`Qm@TfcSBrqN-a-Rr*@L2XbEANJN31`x zy)hh%Z8I@Pz)H`%2BTXC5+<6mZ<a;l1F@YZt`qR2zgfFG5*aixKMT?o9o*{1LbRAz zWZ{cwwJ(aM+J#tRp$$s~Tw5cF<+1ItT>^UDH61da<rY@pOZG~w$GOtNm(gJ#)q-VR z7QTWG0pFg1Xd<$yKhl>N*t8|KdoW?U^yX<TZWN-&!u1l=LC}sBZUnL3!fI@w0Co0D zrr+Lgdh{S#?A!HDvDAKEpTp<4evhadJ!a%-B50p*9uhN0n@nBY62yxZUcyx77LO#> z#NyFJG&U$fmq?bsvG7}*5GdZgv%fD9S-GokD6+3_SHIHTjUl{Z;rBQoU~+eNBtGEA zt9Z@CA1%C&KiMZ--8C1O&24={eP7+%7~c{Zj5MyI?jHOVe>3rS3vb}f(O}*gJ^B_p z81QXYUBf#F;N6`0dz`<YGyezY|IC^H3q{CB0rwV33n&aqs{T?>{`C>t#J~BxXt(Bf z3^ycE8uGS1ir{Hf>hlc0;cdGciO?7-{f6k7<u{V3X>kM`&!AVI=L|TK2o=q~7fxeh zaxEv0iOF0}oD-8~PRxnPJWgEmoFR#@Kt2}xoelM6Nh~{Ph~rmBLi%a6%SY!a($w*R zT~#n+xD-oKj!u^0dQ{+MRH7eMh%&kDOm81*@GaEB#&jIT44k0RALqAEBZTKrkMs2T zheW#>c|0^h{D%@a;N{!@a%2#r2On|dB<fB082{sHH}>L^S_NK=;xaxV0Eb9noT|yu z6<lR)I1&&vvXJBJU|l7$!-OzVXW}jswfs7TJaHN2m*GgkE5=c8Vxh43a|u4aB;d1T zDvQxjSUUUxft)HxqvBnn!kAeSrqIcZQSlUW<Su@{nBPbOZkEhbJ~xT(lbmUo#A?dH za%ZvJS*!$hr?KoO3o8@{w?dpxD=o;`TaevbAPgb73+g?Z;jt*g!<5!3pZi%7i*kTI zFQFtJQb5E1pAnIgSoc}5B{^W9m(j22gtR*Cbdpr3K(eY&;)W!`^*z#IX@%06E@!4I z(wNoh&nHvG$3m7wLkXrzQ2UBE+$F^=Vfny@<zq=|XwfEitTx(58m^jQLF-PqXQ?oS zi@SZeR^$m8RFhp#;T`cEVk??fRHCF`MiT*R+1|p8*Q1Od!g~5^1N-U?#O!6P8@X~5 ze{aENY{WKfVh6evhiKz(Bcd3D;UdmRmcdAd0pAG^8B0+{l=&so5$Wkxo(MUVMt6|F zH-shf>Bof#ivn&jmC^H|rw}qR<W8YY>T)up%ZEiB8zyxbAVie1-bQV<VLo=`=&~To zYC(pTgV&6-wx&W*@07e$G}&{NM)s7LQfDR)GO&}meT_Qpf**0Vg9OzX!V>JED*LF( z*Hx^LN@rs>*2YXFU05#)l>%O@5?+qdC)fpToOhe3U_{=qGA?6XU?pXp*A?rn#^MUE z>lnHX)h0P=wSQPVXPEu#pvD&V#6g|U(M<c|o;2J2aN_`qaXTB>9hi-8@?Jc|+8@9w z>}OlMQ?YGklzdiKwkU&{hgB2OI9{Wgm8{abY%c3m4-!hP$|-P;!w}TWC93l;!*_{T zLij|H(r&;1V2*YpEa-R0=DTRd_ZaUmS$v;PvN3=kP|+V{*?`(k_&1)8M-FjSG3lOo z#yw8#P_;7@8xNc*G^-ZJe?`O;QA`rzqJ2k6VEBA!RucDTPGVT}gn0QpFnJcsNDcTg zOZ*dFVMj0pKc!?pqk(>&Q_$KhsaoMzhYIYpB^+t0%gf`cGxF55Es1!Ba!C2?z|{QV zmyM&S4)u<q)7Z?rrr{h4do@z(d<ecI&L2mmTx^$%?P}3`g{$r9RY~~Qll84pXY3aY zdpA$^F?!~gtna;Sn#Wni`>5>wig>yktd_*t-uSaxlq%+VXji68+ddCk3bRcF%Sb;U z_*4#zWgO_2(ZflMwHN`Tz9NaeN&Ie7y#kfvgEZSomiJUn8U0zs{FpUyi}^*lk_<dU z@(R?s(W4H$!RSGC3NG4fORI+eU_6RH_v)cw5>ND;#a}dRkmFO&Ai##2vpSYpRfpl+ zq)e6khXWX+Sf_btlROq@DAQRsK+29svJz=*rt;>M=IY9FuIUn$qKcg4YY&VRn?!Ae Mx;sTRUuk06r}S<Rj{pDw diff --git a/MavenChess/MavenChess/target/classes/view/PieceView.class b/MavenChess/MavenChess/target/classes/view/PieceView.class index 861779ea1eb44cd71c28a9393b6864abf3cf04a9..2cacf877973b8926ea0dae0b465634a7c1287266 100644 GIT binary patch literal 1893 zcmaJ>-Ez}L7(HvtmgC3{aelxgfdEY_DS!$TXln>9X=zOz$PA1JxKqqFQR-M3TM0Z4 zcfIKaooT{Mnc)F=D2B5u*^V_HE+Vbg=R4=@_npnhPyc@au!hYdGRT@REaZ?EIJN5^ z`d-`bY<rKlc4aFP$lnP%L9`~2wVmb!3Yaiav@i)vpnMp}SKekITe8U&G2zy(z*0le z{Q27JwPZ(ny&ZpFdK<F0qd+yqQMNFJQv!wkuopx@*r9Y|FMKK6-e$6+aTN<Qm=(yi z!gkmd5Oq~OZ{ak~2o!_fQ@^_{Bl(g)y)bc>mPT2MsAAE=63z)2L_X8!sH^Q|3m5v^ z&(+2y)r7AoX4mUZvxu+pjS1U=16N>1A9ekp7lnHpek8kr-zFC+1y=03GkWBGKj=i> z=1$nz?t^PZT*eg>S1ow>R$$=^JrbDg$*5l`uxyW`@BdzNnkKHZCONtqhrqQ|O==41 zZu7+K&^kvTFx3b;^3lQGmh3+Dx7ysPG{TnOZu&emzmrWP+6j7UaHA=xF*9rn^CNKH zPBkXwf>0h*L(^wWA(g#J()Qy)PvjmQHkDQ1hL9OMjZieE-|Ys6YJ3F}uE)tLurOH~ z94BGS`-_-x7_zDzA9gecHH|Oq4Pr4j79}td1#OwAl)93VL+Uf*sg;w`lgMxVwc+n4 zjW0e454tV+fMg8(;QC!viDIS;ywiZeCod^i8Fkn6n|DdSd3*RSf?3B6KELDF0dWT3 zRrei)yLtrEy?lg{yL5zUH+zJ+e|70iKF=c0XNmAKCP-c;{S2l_TEQ*;;>JX{jqmwI zN^L~wm9nDjRn^5tmf}C)$Haoiw?gII|6so5A_FCt*PC;i+KK@QwLlGbxTE~95v_>x z+WXL~`VXh%a<r|?&Bv&LxqM<y;4V30u9HSeX(LNxjoiaeNpXWxN^;hHkLvT)V=VCR z{5xD^H`BH*unQMY*qR;Kn#IrTl<LQQoEu|n`X5T1?9a+rTkH5GDIWG`ffG#|acJ5- zVI)5=lGlS$Mo#0`F-GRnMy`xC@&Laj#m_kPEX`M3gQ-%ZUR^xK$}v`lrpg*|ji#<M zS2r}{a$GeqR>AM6laow%$Sh^J{sWCf<rUFt3XaY$Ri=$MlvHX)toApi^k;S`p4EAq mrz|L$qg06zUSvRRCT*A=XJEofOl+`%H*Rr~@{hRA;PGbzs#RwI literal 1209 zcmaKrUr!T36vfZ9%Whki0&OV@@<&wIZjlxLJYjetF=<kjMAOLQwvKe0rAyjU{ZKw= zB9dt02k=7~&&)1`HiR_YnZ3RD+~1r#{rm6N9{~G!kwXe;3x<s;m;!Shf9QLm-#zx; zHaoI45HMc`-C(dUkajAKEHcPi$k~{NEs!4u^0Rjs$d+ty$DF9y5m>1!nNMH5eoJ<x z*Khl$(t9oYZI!gAH1alPF(;5YjrzeLh`MZDKZ!od&^t^bI<H`(h?2lmD+;5YfT&q0 zv+sCn4hy(r<1Us2jAJ?YpkZq&e9y+pW%x)1*3?PYsp!;dm4?8sb1Up5l&&!jNGdQ} z54!Tr*-2CO-uumvkwQIc`C-HF1?oKs8iRJwSLYiyYme5Fl{O2kIh9)}nA%TL*Kg-l zN1CSWrHf>u_PAZ_JWaW)l%g}4p=2z-*9(Sz$SG0qARa)5g~`@%v>CZ~(OIu0Uj@p5 z{OB(1s4IZ`oOOyfEzKuy40kCtc)fD4TrF@G%oEt)TgcxHt|j*Z!mXaea<|Vh<F1@z z{=2Svz-O5ipq@d+EM}1Br%2t0jJk0>9$}MjRMLHg-l@)trlc+vnFO}rB%M93Dr?I9 z0qYw#DX3Pa4i>bu9VaBx0u?rkvG<v+giVcn1*-mCG47&PD92eNI5UA0sA4<Ox(+fk z39@t}$Ybmz#dSKPPw4)}!cp}n7WrMiz$#6g#9E~bYuB(!BdiiUI;H%0f~6a<=D$w( lvvDKVE}kaESN<%I4Kns;lh9k&K+F+{sRyM%p6QOy{{sfZ$5Q|R -- GitLab