summaryrefslogtreecommitdiff
path: root/domain/src/main/java
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2021-06-22 20:14:22 +0200
committerMike Vink <mike1994vink@gmail.com>2021-06-22 20:14:22 +0200
commit2e1a7cbcd36296c5abb1bb6d12fc155e3e3913fb (patch)
tree1c65af2ce5131728b7bf84291fe82b559f93daa4 /domain/src/main/java
parentba2ec6bc470399eb8ed906691626d62ef11d3244 (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.java2
-rw-r--r--domain/src/main/java/mancala/domain/Kalaha.java14
-rw-r--r--domain/src/main/java/mancala/domain/SmallBowl.java29
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);
+ }
+ }
+
}