diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2021-06-22 20:14:22 +0200 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2021-06-22 20:14:22 +0200 |
| commit | 2e1a7cbcd36296c5abb1bb6d12fc155e3e3913fb (patch) | |
| tree | 1c65af2ce5131728b7bf84291fe82b559f93daa4 /domain/src/main/java | |
| parent | ba2ec6bc470399eb8ed906691626d62ef11d3244 (diff) | |
finished making my life easier (domain tests)
Diffstat (limited to 'domain/src/main/java')
| -rw-r--r-- | domain/src/main/java/mancala/domain/Bowl.java | 2 | ||||
| -rw-r--r-- | domain/src/main/java/mancala/domain/Kalaha.java | 14 | ||||
| -rw-r--r-- | domain/src/main/java/mancala/domain/SmallBowl.java | 29 |
3 files changed, 42 insertions, 3 deletions
diff --git a/domain/src/main/java/mancala/domain/Bowl.java b/domain/src/main/java/mancala/domain/Bowl.java index 8a214da..a36c621 100644 --- a/domain/src/main/java/mancala/domain/Bowl.java +++ b/domain/src/main/java/mancala/domain/Bowl.java @@ -61,5 +61,5 @@ abstract class Bowl { } - + protected abstract String makeString(String playerBowls, String opponentBowls, String kalahas); } diff --git a/domain/src/main/java/mancala/domain/Kalaha.java b/domain/src/main/java/mancala/domain/Kalaha.java index a13ebd8..c85af4a 100644 --- a/domain/src/main/java/mancala/domain/Kalaha.java +++ b/domain/src/main/java/mancala/domain/Kalaha.java @@ -55,6 +55,20 @@ class Kalaha extends Bowl { return true; } + @Override + protected String makeString(String playerBowls, String opponentBowls, String kalahas) { + if (getMyOwner().equals(SmallBowl.referencePoint.getMyOwner().getOpponent())) { + return " " + opponentBowls + "\n" + + getMyStones() + "\t\t\t\t " + kalahas + "\n" + + " " + playerBowls; + } + else { + return getNextBowl().makeString( + playerBowls, + opponentBowls, + kalahas + getMyStones()); + } + } void claimStolenBooty(int booty) { myStones = myStones + booty; diff --git a/domain/src/main/java/mancala/domain/SmallBowl.java b/domain/src/main/java/mancala/domain/SmallBowl.java index b9e4b45..216e2ad 100644 --- a/domain/src/main/java/mancala/domain/SmallBowl.java +++ b/domain/src/main/java/mancala/domain/SmallBowl.java @@ -6,8 +6,11 @@ import java.util.stream.Collectors; public class SmallBowl extends Bowl { + public static SmallBowl referencePoint; + public SmallBowl() throws DomainSmallBowlException { this(Arrays.stream(new int[] {4,4,4,4,4,4,0,4,4,4,4,4,4,0}).boxed().collect(Collectors.toList())); + referencePoint = this; } public SmallBowl(List<Integer> stonesList) throws DomainSmallBowlException { @@ -22,7 +25,7 @@ public class SmallBowl extends Bowl { this.myStones = stonesList.remove(0); this.nextBowl = new SmallBowl(boardSize, bowlsToAdd, stonesList, this, this.getMyOwner()); - + referencePoint = this; } SmallBowl(int boardSize, int bowlsToAdd, List<Integer> stonesList, Bowl startBowl, Player playerOwningThisSide) { @@ -76,9 +79,10 @@ public class SmallBowl extends Bowl { // Did play end in smallbowl of my player? steal, otherwise do nothing if (getMyOwner().hasTheTurn()) stealTheBooty(false); + endTheGame(); + getMyOwner().switchTurn(); - endTheGame(); } SmallBowl getNextSmallBowl() { @@ -100,11 +104,13 @@ public class SmallBowl extends Bowl { private void stealTheBooty(boolean victim) { if (victim){ + System.out.println("help! i'm being robbed, my precious " + getMyStones() + " stones are gone :(."); getOpposite().getKalaha().claimStolenBooty(myStones); myStones = 0; } else if (getMyStones() == 1 && getOpposite().getMyStones() != 0) { + System.out.println("stealing"); getKalaha().claimStolenBooty(myStones); myStones = 0; @@ -120,4 +126,23 @@ public class SmallBowl extends Bowl { count = count + 1; return getNextBowl().getOpposite(count); } + + public String stateString() { + return SmallBowl.referencePoint.makeString("", "", ""); + } + + protected String makeString(String playerBowls, String opponentBowls, String kalahas) { + if (!this.getMyOwner().equals(SmallBowl.referencePoint.getMyOwner())) { + return getNextBowl().makeString( + playerBowls, + (getMyStones() + ", ") + opponentBowls, + kalahas); + } else { + return getNextBowl().makeString( + playerBowls + (playerBowls.equals("") ? getMyStones() : ", " + getMyStones()), + opponentBowls, + kalahas); + } + } + } |
