diff --git a/bin/game/Board.class b/bin/game/Board.class index d57af3e..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 d079488..3c1e50d 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 b74ecc7..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 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; } }