diff --git a/bin/game/Board.class b/bin/game/Board.class index 3067fe9..d863c10 100644 Binary files a/bin/game/Board.class and b/bin/game/Board.class differ diff --git a/bin/game/Joueur.class b/bin/game/Joueur.class index 2f37e86..486b2ba 100644 Binary files a/bin/game/Joueur.class and b/bin/game/Joueur.class differ diff --git a/bin/game/cards/Card.class b/bin/game/cards/Card.class index 919b78c..03b4562 100644 Binary files a/bin/game/cards/Card.class and b/bin/game/cards/Card.class differ diff --git a/src/game/Board.java b/src/game/Board.java index 2d1f94a..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,4 +31,8 @@ public class Board { return board[zone]; } + public Iterator getIterator(){ + return Arrays.stream(board).iterator(); + } + } diff --git a/src/game/Joueur.java b/src/game/Joueur.java index 024045e..e4c997e 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,7 +220,14 @@ 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 + Iterator it = board.getIterator(); + while(it.hasNext()) + { + Card c = it.next(); + if (c != null) { + c.resetAttack(); + } + } } public ComsJoueur getComs() { @@ -312,14 +320,18 @@ public class Joueur { if (attackingCard == null) { throw new RuntimeException("invalid attack"); } else { - if (carteCible.equals("100")) { + if (carteCible.equals("100") && !attackingCard.hasAlreadyAttacked()) { boolean isadvDead = handleAttackAgainstPlayer(attackingCard, adversaire); if(isadvDead) { phaseActive = false; } + attackingCard.hasAttacked(); } else { - handleAttackAgainstCard(attackingCard, carteCible, adversaire); + if (!attackingCard.hasAlreadyAttacked()) { + handleAttackAgainstCard(attackingCard, carteCible, adversaire); + attackingCard.hasAttacked(); + } } } break; diff --git a/src/game/cards/Card.java b/src/game/cards/Card.java index 5ec4396..3600e90 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 hasAttacked=true; public Card() { attack = getDefaultAttack(); @@ -76,5 +77,17 @@ public abstract class Card{ } return health == 0; } + + public boolean hasAlreadyAttacked() { + return hasAttacked; + } + + public void hasAttacked() { + hasAttacked = true; + } + + public void resetAttack() { + hasAttacked=false; + } }