Ça trolle…
/
troll.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FIX: IT belongs in a MODEL!
[troll.git]
/
src
/
main
/
java
/
com
/
codingame
/
game
/
Model.java
diff --git
a/src/main/java/com/codingame/game/Model.java
b/src/main/java/com/codingame/game/Model.java
index
00701d1
..
beff100
100644
(file)
--- a/
src/main/java/com/codingame/game/Model.java
+++ b/
src/main/java/com/codingame/game/Model.java
@@
-9,6
+9,8
@@
import com.google.inject.Inject;
class Model {
@Inject private MultiplayerGameManager<com.codingame.game.Player> gameManager;
class Model {
@Inject private MultiplayerGameManager<com.codingame.game.Player> gameManager;
+ @Inject private LeagueManager league;
+ long seed;
Random random;
int roadLength;
int initialStones;
Random random;
int roadLength;
int initialStones;
@@
-18,8
+20,17
@@
class Model {
class Player {
com.codingame.game.Player gp;
int index;
class Player {
com.codingame.game.Player gp;
int index;
+ boolean hit;
- Player(int i) { index = i; }
+ Player(int i) {
+ index = i;
+ hit = false;
+ }
+
+ void loseRound() {
+ hit = true;
+ winner = 1 - index;
+ }
private int castlePosition;
public int getCastlePosition() { return castlePosition; }
private int castlePosition;
public int getCastlePosition() { return castlePosition; }
@@
-66,7
+77,9
@@
class Model {
}
public void adjustScore(int trollPosition) {
}
public void adjustScore(int trollPosition) {
- gp.setScore(Math.abs(castlePosition - trollPosition));
+ if (gp.isActive()) {
+ gp.setScore(Math.abs(castlePosition - trollPosition));
+ }
}
public int getTrollDistance() {
}
public int getTrollDistance() {
@@
-74,24
+87,39
@@
class Model {
}
}
}
}
- void init(long seed) {
+ void init() {
+ seed = gameManager.getSeed();
random = new Random(seed);
random = new Random(seed);
- switch (random.nextInt(4)) {
- case 0:
+
+ switch(league.mapLevel) {
+ case SINGLE:
roadLength = 6;
initialStones = 15;
break;
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;
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;
}
break;
}
@@
-149,24
+177,38
@@
class Model {
p1.setStones(initialStones);
}
p1.setStones(initialStones);
}
- private int winner;
- boolean haveWinner() {
- if (trollPosition == 0) {
+ void moveTroll(int delta) {
+ trollPosition += delta;
+ if (trollPosition <= 0) {
+ trollPosition = 0;
winner = 1;
winner = 1;
- return true;
}
}
- else if (trollPosition == roadLength) {
+ if (trollPosition >= roadLength) {
+ trollPosition = roadLength;
winner = 0;
winner = 0;
- return true;
}
}
- else {
- return false;
+
+ p0.adjustScore(trollPosition);
+ 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;
+ }
+
int getWinner() { return winner; }
int getLoser() { return 1 - winner; }
boolean exhausted() {
int getWinner() { return winner; }
int getLoser() { return 1 - winner; }
boolean exhausted() {
- return p0.getStones() <= 0
&&
p1.getStones() <= 0;
+ return p0.getStones() <= 0
||
p1.getStones() <= 0;
}
}
}
}