From 1bd6eeb7b82e610f2c4eee6791c91e34413b4ede Mon Sep 17 00:00:00 2001 From: clement Date: Wed, 6 Jan 2021 18:09:08 +0100 Subject: [PATCH 1/2] correction de la limitation d'une carte pour jouer --- bin/game/Board.class | Bin 740 -> 830 bytes bin/game/Joueur.class | Bin 7930 -> 8162 bytes bin/game/cards/Card.class | Bin 1309 -> 1592 bytes src/game/Board.java | 4 ++++ src/game/Joueur.java | 14 +++++++++++--- src/game/cards/Card.java | 13 +++++++++++++ 6 files changed, 28 insertions(+), 3 deletions(-) diff --git a/bin/game/Board.class b/bin/game/Board.class index 3067fe93e1f90b06dda03577db06c25d5db64122..d57af3e26dfc72e5462e0e972b0734aba75b44ef 100644 GIT binary patch delta 125 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 diff --git a/bin/game/cards/Card.class b/bin/game/cards/Card.class index 919b78c8ffb9641f865958d8ecaccc6b5353a42b..b74ecc71302f6fea34f4704a78d7059257db35a7 100644 GIT binary patch literal 1592 zcmah}*-jKe6g|akOw;U}47i{oFredtE3SYBbOZwgqdpZg<kX$Y(3!7md|Dt)F8d_RzFI@T z_B|sF8!f0J3ssMEs;mQl$3$9uZ?zJ5D_RDWs#*IhI&i#_K+o8C{!q(mbUKAGf&TjN zOvQ1FDzGq$HY3`EjY(W28i~xhvP{n1|DlD!X$v`AN#Qa@s%vOjm7KCx!H$iqxJFY5 zWEj;DszQt}n4;Hh+`vs^^!B#$*woP2!cp=OOO_qQZ5t!Fz#%XU{W8HVEjQJi+>#}# zA7?&?qC;-^6;Cg{o!?&d^M09cS}9av^SRuPENPW)pk#4pUwaM!6Ri#TUhRik0#!aV z$6E0#K|wunjLT``%_Spee3;`9<8a5&WJZU(CNmr1%DLm(#v7bPK5d>>`Cf3%WWS>| z8{b8HHoJ$;UG$o@e;1jrVeSy0eMAH?;zUdnqmw8DL^;W*T}8nuoaU($XV4Q>$Z<6l z64`I){me}h3|KM@cGV;&4w8o(CTHrCGe?v8G>Ras2d z0Evi&z`5fSFE>m)e|+Lp!$i&!2^(7;M7H$)!sx5-7^fH6AGoxKsXg5K!V9$`-l_rX ztgMm_e^ccuj;i4H0HT!RP(~pN{jP literal 1309 zcmah|T~8B16g|@q`oUIOJ}L-)Afjzis-mJ6H40HGMT`&h)KEVR31yEWmj`09f% zJZK_dH1P-cql{;^3)Dhln#|6bOO;)LF6p|mye%M#3^tXlxtrX~n3m~26$oass{)}}yQ1O?^V**&KroJi;7F8rQS5_ z>&jV?>orA!l3kXyRq2>I_LCuZ(`*Q&N*xa@2*jx6NQBdy3wrdg{fCyp@~x>Yv} zWRN8rh0NAugPQyPVe^uOI3{o_f|~+^9S?e^s%FDg&aQz;&i^DXW*JHZ7)GJ*m4B8l}5I&SZc;PJ*|i)%g5QDMA-Z$910?p5(%-&)q`!KwL9V?BagB0~!62}oG(*f7Eif)%m{AHNNczNi zel>A8_YJ8%ZUWFmU0yQP1`Z#CFP;fbcY=pbgF~Dwg7yE5!_G1SmyVw};l<3IJg22% zqK!!SDg-Y7ADBNAc;)}VsWX9`1Paz}JUepZC&tzeF-{+@e+Spw2e|iz7uuUR-9|Rh zlF#=)@ZUd;hd!yxK?o2#PAAgCpJ;QC-hM_Rx26*n2KwY9!lAvOZg$XfD$Th8UeWX- k5_nD81r}NKil$qHe$PmaN1n5fi3lT@j73?yz#xE`zi5ioPXGV_ diff --git a/src/game/Board.java b/src/game/Board.java index 2d1f94a..b68791e 100644 --- a/src/game/Board.java +++ b/src/game/Board.java @@ -28,4 +28,8 @@ public class Board { return board[zone]; } + public int getNumberCardInZone() { + return board.length; + } + } diff --git a/src/game/Joueur.java b/src/game/Joueur.java index b4de8e6..463effb 100644 --- a/src/game/Joueur.java +++ b/src/game/Joueur.java @@ -219,7 +219,12 @@ public class Joueur { * cette methode a pour but d'executé les evenement de fin de trous des cartes */ public void endPhase() { - // TODO Auto-generated method stub + for (int i = 0; i < board.getNumberCardInZone(); i++) { + Card c = board.getCardInZone(i); + if (c != null) { + c.resetAttack(); + } + } } public ComsJoueur getComs() { @@ -312,14 +317,17 @@ public class Joueur { if (attackingCard == null) { throw new RuntimeException("invalid attack"); } else { - if (carteCible.equals("100")) { + if (carteCible.equals("100") && attackingCard.alreadyAttack()) { boolean isadvDead = handleAttackAgainstPlayer(attackingCard, adversaire); if(isadvDead) { phaseActive = false; } } else { - handleAttackAgainstCard(attackingCard, carteCible, adversaire); + if (attackingCard.alreadyAttack()) { + handleAttackAgainstCard(attackingCard, carteCible, adversaire); + attackingCard.haveAttack(); + } } } break; diff --git a/src/game/cards/Card.java b/src/game/cards/Card.java index 5ec4396..0012454 100644 --- a/src/game/cards/Card.java +++ b/src/game/cards/Card.java @@ -4,6 +4,7 @@ public abstract class Card{ private int attack; private int health; + private boolean notPlay=true; public Card() { attack = getDefaultAttack(); @@ -76,5 +77,17 @@ public abstract class Card{ } return health == 0; } + + public boolean alreadyAttack() { + return notPlay; + } + + public void haveAttack() { + notPlay = false; + } + + public void resetAttack() { + notPlay=true; + } } From 2bec65113304e406f5934770bb73dd4204319ffa Mon Sep 17 00:00:00 2001 From: clement Date: Wed, 6 Jan 2021 18:34:39 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Am=C3=A9lioration=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/game/Board.class | Bin 830 -> 1052 bytes bin/game/Joueur.class | Bin 8162 -> 8375 bytes bin/game/cards/Card.class | Bin 1592 -> 1588 bytes src/game/Board.java | 9 ++++++--- src/game/Joueur.java | 22 +++++++++++++--------- src/game/cards/Card.java | 12 ++++++------ 6 files changed, 25 insertions(+), 18 deletions(-) diff --git a/bin/game/Board.class b/bin/game/Board.class index d57af3e26dfc72e5462e0e972b0734aba75b44ef..d863c10eb8cf4f4db58f64909ff36a87f58805ba 100644 GIT binary patch delta 396 zcmZvY%SyvQ6o&s3G;Pu-t%bT!5RI3nYNxJTL?d7ri4K3_)wwz2hSU(hfY2z9K4@xLn$eh?Lk9EltB#d`GB9gsdQJ{x zO5o&UU}4~A;9(G$#3DNRJd-}7@Z|qYL97xC>qKD diff --git a/bin/game/Joueur.class b/bin/game/Joueur.class index d0794888414085b7b1b53316364fe4d032f16b0d..3c1e50d2a54744fbca7b278c2557f7eccde94583 100644 GIT binary patch delta 2622 zcmZuzYfPKx6@DIHu(3Z=umjlUVuvJL3=~KMxey2tnwCPY&1KD{$p?0TU`T=uB%z&K zty0@`Qd+(3+90ip)^%uGv?k5wBu$pfqAgYSCsVg()1*;#n>KY*yY9zsqUp}}aap7F z&*$@=_nhZE=kmU!i-{fX9i|7gsG0J%hCi4otOhz&*8#}Wy>H|Auy%5sMq zB800y@vuG=T{jYsyU@=2HP#r`f@P=#d@wc=7l&FGTKIs5N4ZS(xNC}62x7OMOvYn} zBr!2qB~G%Iv>jZn&bUKtR=3?%o<_XrLJ?avwsEZ*aFwld@21V>u%VZ;b)8<)wq@0 z)NyT-`czv}w@c%0oFX!19%jr8q{lVx#Ya+vq&^U9*9WCEhFaIyt#nT?Bc^dbd)3pP zV)m<3o)8DrHBk?0P#jVpc$P&Tck-}QA{t91hYuc2#Nzv%ObFntLXVCb35{qRRn1wy z%FTlfUSuL4S@2^40tg|f%I`~8mxy)|a=^2C1noGAbvTAScmi)Bg$sBJm+&?G7|-Au zp2fR(4!^+j_$9uMzu*Ku#*6qA3jf5*BwnQhuTevi+4!cU2rPpgppohlS&4LR%GXK# zTX5prLf|`6ok;}oT_N#(sljP1#ShSoGw8rM?8J|ReHsHek0GHlhKqO_?@0JdcnOy= zfh%|eS8-OTUB-2heuA60f!lajy^wo{KUY0@`#tZ&g*(!TUrU_dsQ2?8NWBi3KVefA z`60q-YF(4at-Q!=3eME}s-MA8m1dr30>s4Ue?BXwHk8P>7!LVP3HcA;#)rto@1-Gs zK#{CV@h3Cm@C@{9#!iG-#9|4U3nxQTBMZY80ntP?vl$jCE}BeOrr~xlCr6#gkK})3 zq8Vn88qU;@T&Qm6m)SoS%_nL)KV+5Tu8RE;{#|wWi}M$;Q0#r;(I&r!rzeu;V)a$O zpZ`#=`ok<$7yKnGQ@`~GU9#^ILS9Nvbl9Y9n!rnYc@SLATgz zU!dilr&To{c zNMncmHrdi#y5oPOykZOngj7(HD1cnOCU~Af7KO9mBC%fP-AJuL#^|0flHY5Bk|{WY zMkF7XOH5mnWPdR2Lc%+i#*s;GQoDkSU6s||C(}qxutYr{Ea6|(>0r2irJ+IHB(4T* z-Z#vJZxV0I;!Shmoy404vUgH|C-IiGX%gR4EGX@3e9XtD^IUUPw!;DY1>8!rWtAh~ zxQVPwGjdf~76lw>K0JYfNWf8WQfHU zb3+|3C``R=l+9}P^0@J3NXoVl8W+LOQYl>-%2|$DR$w(F=%Cy`ti~DE;v(yCnaglR z%6OeCaf^+3kE`)VHsNn<#$C41%2sA^Ef=z#5xMef=lUhmb-67l6{=T!Ej;cv^7_&vCm*cD#oacZigM zyV%OF$RIm}xF(o41kX57b;z2Q%sxZhp-vSBebXr6f8h8R{Qs8IXfYp_n}x-xooViA zE}DR=N)F3D>uH-Yvop2IGq11R$mAY)6#;Ou!;z zKG;NA#I7mS8# z#tm8Tz|^$-dyzUC@3k+qIRCgA;@+#$!o6xks3Y@bne$hqsNYbhLXD22f@0yZ{{ko~ B5WD~Y delta 2480 zcmZ8jYj9L&8Ghc~O?I=K-6p%_a&p;h?qQQa62hGTp&=y1a4n(S*(3`DHk)*J6ToN} zq@ta+w)7jTFde51gXaD1REwqrOJ5y&9_`vn=)+1M+{989!F!UF<(?VKF~=U}2O zIye?_L!?9#T?*+S5s3}-L=uVcfrv|j)ZIKXJTf{$>7nUef$P}tXgoO@kGZ5=;2unL zhGPRAqtU1v?NY5tjcJI!%qyxzjh?V9Y6oocQ(AiGtMw^a73A#R5? zDCtu#cw0i7UBcwd8i*v4@!?~MNOZqT4$$DtMtES%L^Y_%A$7-lD>oMo51wX+_{1m6~D|`*V#n z2;w5+|2~@WI#$qi7v8`QyhY?c#$gzUVS@0k-~`^rv$%@Wgmsp%&f_{R;|AU#yc@WQ zN&F1I!K7N8_r6T2?EL+nTX5rd@Zo*>`Mo-sKR@+VQeY>VD*N&@@kY|%Mx@BxG{k@I^V^pxXlJ@W^-O+0U_>91zdzFCpP1Ya7~5?t*5I_!nOJQo7c=#2 z0JtQd?AQ>cz6(zKU1UhMO>Hd*$;aw=L9P_2R|;xs?$GpKEmL_E2Hnlj#+k=5C1$s) z+tmA;dQ1;A7D*u;_$j-Zqj2bhOqP7&hEU_>LGjnwD-=R#fS( zZt#8CK-exg1+{hhLgZVKk+2Rd@K#TMK_0 zuXAz1TKLj<&2;KZ(`OnN?X78CP?JT~srlRevS30M-QaOh&$xmqR^d{o?wo}8nwY1H z%~L(oFH33a3K+oMMt3fF?l{NCkArYyviEXKRC1Ru##{9Tsep0tXcSG!kMNf|Hl5U=ui(k@NXAuY02 zmP@Ck)<~DElOFzU)A<9*e^ZOM0s=rc@kN&9Uj@qa@>X4vd01)GRu_L!TpZSvmlr~ zkY~ZSvHU!;jbQ8+81}(kD${ZA|CFm*5?GtlM;HA(9pF!e2$OI?oeq@lu-7$%3vxLmd`(+nXU(eM0We>kBj(scwtF#>er>Z-F&P+ oDXq*uWtr0~&5RjyHrb*of?ZiJv7k?r!1NSwPTVL0tw_4r6#6S!o(RF om^Cz`Hg942$;8Mp`2(x^#>C(Z0GlWrLjV8( delta 96 zcmdnOvxA50)W2Q(7#JAL8C)lFIdib*<(CBHBvx*Wv}01_P0T4uO-!kDEGbD$&Sqp_ w*3gV%WZ=q3EK7w5ZQj82lWFp6R*lIQS)~}ACa+>upDfHK#qJC=kcq(s0P?3D7XSbN diff --git a/src/game/Board.java b/src/game/Board.java index b68791e..8af1ae8 100644 --- a/src/game/Board.java +++ b/src/game/Board.java @@ -1,5 +1,8 @@ package game; +import java.util.Arrays; +import java.util.Iterator; + import game.cards.Card; /** @@ -28,8 +31,8 @@ public class Board { return board[zone]; } - public int getNumberCardInZone() { - return board.length; - } + public Iterator getIterator(){ + return Arrays.stream(board).iterator(); + } } diff --git a/src/game/Joueur.java b/src/game/Joueur.java index 463effb..a039cd5 100644 --- a/src/game/Joueur.java +++ b/src/game/Joueur.java @@ -1,6 +1,7 @@ package game; import java.io.IOException; +import java.util.Iterator; import game.cards.Card; import game.cards.CardRegistery; @@ -219,12 +220,14 @@ public class Joueur { * cette methode a pour but d'executé les evenement de fin de trous des cartes */ public void endPhase() { - for (int i = 0; i < board.getNumberCardInZone(); i++) { - Card c = board.getCardInZone(i); - if (c != null) { - c.resetAttack(); - } - } + Iterator it = board.getIterator(); + while(it.hasNext()) + { + Card c = it.next(); + if (c != null) { + c.resetAttack(); + } + } } public ComsJoueur getComs() { @@ -317,16 +320,17 @@ public class Joueur { if (attackingCard == null) { throw new RuntimeException("invalid attack"); } else { - if (carteCible.equals("100") && attackingCard.alreadyAttack()) { + if (carteCible.equals("100") && !attackingCard.hasAlreadyAttacked()) { boolean isadvDead = handleAttackAgainstPlayer(attackingCard, adversaire); if(isadvDead) { phaseActive = false; } + attackingCard.hasAttacked(); } else { - if (attackingCard.alreadyAttack()) { + if (!attackingCard.hasAlreadyAttacked()) { handleAttackAgainstCard(attackingCard, carteCible, adversaire); - attackingCard.haveAttack(); + attackingCard.hasAttacked(); } } } diff --git a/src/game/cards/Card.java b/src/game/cards/Card.java index 0012454..3600e90 100644 --- a/src/game/cards/Card.java +++ b/src/game/cards/Card.java @@ -4,7 +4,7 @@ public abstract class Card{ private int attack; private int health; - private boolean notPlay=true; + private boolean hasAttacked=true; public Card() { attack = getDefaultAttack(); @@ -78,16 +78,16 @@ public abstract class Card{ return health == 0; } - public boolean alreadyAttack() { - return notPlay; + public boolean hasAlreadyAttacked() { + return hasAttacked; } - public void haveAttack() { - notPlay = false; + public void hasAttacked() { + hasAttacked = true; } public void resetAttack() { - notPlay=true; + hasAttacked=false; } }