package com.codingame.game;
+import java.util.regex.Pattern;
+import java.util.Scanner;
+import java.util.InputMismatchException;
+import java.util.NoSuchElementException;
+
import com.codingame.gameengine.core.AbstractMultiplayerPlayer;
import com.codingame.gameengine.module.entities.Group;
import com.codingame.gameengine.module.entities.Text;
import com.codingame.gameengine.module.entities.Sprite;
public class Player extends AbstractMultiplayerPlayer {
- Group hud;
+ Group avatar;
Text stoneCounter;
-
+ Text message;
Sprite castle;
Text stone;
-
+
+ private String messageString;
+ public String getMessageString() { return messageString; }
private int castlePosition;
- public int getCastlePosition() {
- return castlePosition;
- }
- public void setCastlePosition(int pos) {
- castlePosition = pos;
- }
+ public int getCastlePosition() { return castlePosition; }
+ public void setCastlePosition(int pos) { castlePosition = pos; }
private int stones;
- public int getStones()
- {
- return stones;
- }
+ public int getStones() { return stones; }
public void consumeStones(int n) throws InvalidAction {
if (n > stones) {
throw new InvalidAction("attempted to throw more stones than they had.");
}
private int multiplier;
- public int getMultiplier() {
- return multiplier;
- }
- public void setMultiplier(int m){
- multiplier = m;
- }
+ public int getMultiplier() { return multiplier; }
+ public void setMultiplier(int m){ multiplier = m; }
public void adjustScore(int trollPosition) {
setScore(Math.abs(castlePosition - trollPosition));
return 1;
}
+ static final Pattern rest = Pattern.compile(".*");
+ static final Pattern eol = Pattern.compile("\n");
public int getAction() throws TimeoutException, NumberFormatException {
- return Integer.parseInt(getOutputs().get(0));
+ Scanner s = new Scanner(getOutputs().get(0));
+ messageString = "";
+ try {
+ int st = s.nextInt();
+ s.useDelimiter(eol);
+ if (s.hasNext(rest))
+ messageString = s.next(rest);
+ return st;
+ }
+ catch (InputMismatchException e) { throw new NumberFormatException(); }
+ catch (NoSuchElementException e) { throw new NumberFormatException(); }
}
}