diff --git a/src/ch/zhaw/catan/CommandWords.java b/src/ch/zhaw/catan/CommandWords.java deleted file mode 100644 index d67b327..0000000 --- a/src/ch/zhaw/catan/CommandWords.java +++ /dev/null @@ -1,4 +0,0 @@ -package ch.zhaw.catan; - -public class CommandWords { -} diff --git a/src/ch/zhaw/catan/Parser.java b/src/ch/zhaw/catan/Parser.java index 0632d9d..1a4c6dd 100644 --- a/src/ch/zhaw/catan/Parser.java +++ b/src/ch/zhaw/catan/Parser.java @@ -25,15 +25,16 @@ public class Parser { textTerminal.println(gameboard); } - public void displayPlayerResourceStock(HashMap curruntPlayerResource){ - textTerminal.println("You own the follwing Resources"); - for(Config.Resource resource : curruntPlayerResource.keySet()){ - textTerminal.println(resource.name() + ":" + curruntPlayerResource.get(resource)); + public void displayPlayerInfo(HashMap currentPlayerResource, int winpoints){ + textTerminal.println("You are currently holding" + winpoints + " winpoints."); + textTerminal.println("You own the follwing resources:"); + for(Config.Resource resource : currentPlayerResource.keySet()){ + textTerminal.println(resource.name() + ":" + currentPlayerResource.get(resource)); } } public void displayWinnertext(Config.Faction winner){ - textTerminal.println(winner.name() + "won the game!"); + textTerminal.println(winner.name() + " won the game!"); } public HashMap gameStart(){ @@ -52,8 +53,6 @@ public class Parser { public void thrownDices(int number){ textTerminal.println ("Dices have been thrown, the combined value is: " + number); - - } public void playerTurn(Config.Faction faction) { @@ -68,12 +67,22 @@ public class Parser { return textIO.newEnumInputReader(Command.class).read("What would you like to do?"); } + /** + * + * @param give if true ask for resource to give if false for resource to receive + * @return + */ public Config.Resource trade(boolean give) { String output = "give"; if (!give){ output = "receive"; } - return textIO.newEnumInputReader(Config.Resource.class).read("Which Resource would you like to " + give ); + return textIO.newEnumInputReader(Config.Resource.class).read("Which Resource would you like to " + output ); } + public void quit(){ + textTerminal.dispose(); + textIO.dispose(); + } + } diff --git a/src/ch/zhaw/catan/Siedler.java b/src/ch/zhaw/catan/Siedler.java index df3fc8d..8549296 100644 --- a/src/ch/zhaw/catan/Siedler.java +++ b/src/ch/zhaw/catan/Siedler.java @@ -1,15 +1,8 @@ package ch.zhaw.catan; -import org.beryx.textio.TextIO; -import org.beryx.textio.TextIoFactory; -import org.beryx.textio.TextTerminal; - import java.util.HashMap; import java.util.Random; -import static ch.zhaw.catan.Command.*; -import static ch.zhaw.catan.Command.QUIT; - public class Siedler { public static void main(String[] args) { @@ -20,35 +13,43 @@ public class Siedler { boolean running = true; boolean diceThrown = false; while (running){ + Config.Faction currentPlayerFaction = game.getCurrentPlayerFaction(); parser.displayGameboard(game.getBoard().getTextView()); - parser.playerTurn(game.getCurrentPlayerFaction()); + parser.playerTurn(currentPlayerFaction); if(!diceThrown) { throwDice(game, parser); diceThrown = true; } - parser.displayPlayerResourceStock(game.getCurruntPlayerResource()); + + parser.displayPlayerInfo(game.getCurrentPlayerResource(), game.getCurrentPlayerWinpoints()); switch (parser.getAction()) { case NEXTPLAYER: Config.Faction winner = game.getWinner(); if(winner == null) { game.switchToNextPlayer(); diceThrown = false; - break; } else { parser.displayWinnertext(winner); running = false; } + break; case BUILDSETTLEMENT: parser.giveCoordinatesForStructures(Config.Structure.SETTLEMENT); - game.buildSettlement(parser.getPoint()); + if(!game.buildSettlement(parser.getPoint())){ + parser.errorMessage(); + } break; case BUILDCITY: parser.giveCoordinatesForStructures(Config.Structure.CITY); - game.buildCity(parser.getPoint()); + if(!game.buildCity(parser.getPoint())){ + parser.errorMessage(); + } break; case BUILDROAD: parser.giveCoordinatesForStructures(Config.Structure.ROAD); - game.buildRoad(parser.getPoint(), parser.getPoint()); + if(game.buildRoad(parser.getPoint(), parser.getPoint())){ + parser.errorMessage(); + } break; case TRADEWITHBANK: Config.Resource offer = parser.trade(true); @@ -59,7 +60,7 @@ public class Siedler { break; case QUIT: running = false; - //todo close window + parser.quit(); break; default: parser.errorMessage(); @@ -71,6 +72,7 @@ public class Siedler { Random random = new Random(); //sum of two integers from 0-5 + 2 --> sum of two integers from 1-6 int thrownDices = random.nextInt(6) + random.nextInt(6) + 2; + //todo check if 7 parser.thrownDices(thrownDices); game.throwDice(thrownDices); }