X-Git-Url: https://troll.desast.re/troll.git/blobdiff_plain/2032e4c0fbf3f7a170640aecdf41698f85dd9753..ee0b3a350bf74952ace849ec105866675c91db5c:/src/main/java/com/codingame/game/Model.java?ds=sidebyside diff --git a/src/main/java/com/codingame/game/Model.java b/src/main/java/com/codingame/game/Model.java index 108b5a6..beff100 100644 --- a/src/main/java/com/codingame/game/Model.java +++ b/src/main/java/com/codingame/game/Model.java @@ -9,6 +9,7 @@ import com.google.inject.Inject; class Model { @Inject private MultiplayerGameManager gameManager; + @Inject private LeagueManager league; long seed; Random random; int roadLength; @@ -26,6 +27,11 @@ class Model { hit = false; } + void loseRound() { + hit = true; + winner = 1 - index; + } + private int castlePosition; public int getCastlePosition() { return castlePosition; } public void setCastlePosition(int pos) { castlePosition = pos; } @@ -84,22 +90,36 @@ class Model { void init() { seed = gameManager.getSeed(); random = new Random(seed); - switch (random.nextInt(4)) { - case 0: + + switch(league.mapLevel) { + case SINGLE: roadLength = 6; initialStones = 15; break; - case 1: - roadLength = 6; - initialStones = 30; - break; - case 2: - roadLength = 14; - initialStones = 30; + case DISCRETE: + int i = random.nextInt(4); + switch (i) { + case 0: + roadLength = 6; + initialStones = 15; + break; + case 1: + roadLength = 6; + initialStones = 30; + break; + case 2: + roadLength = 14; + initialStones = 30; + break; + case 3: + roadLength = 14; + initialStones = 50; + break; + } break; - case 3: - roadLength = 14; - initialStones = 50; + case CONTINUOUS: + roadLength = 2 * (3 + random.nextInt(7-3+1)); + initialStones = 15 + random.nextInt(50-15+1); break; } @@ -172,6 +192,14 @@ class Model { p1.adjustScore(trollPosition); } + boolean FIX_IT() { + switch (league.fixLevel) { + case SOMETIMES: return random.nextInt(10) > 0; + case NEVER: return false; + default: throw new JavaLimitationError(); + } + } + private Integer winner; boolean haveWinner() { return winner != null;