Merge remote-tracking branch 'origin/main'
# Conflicts: # src/ch/zhaw/catan/SiedlerGame.java
This commit is contained in:
commit
40dcfaa304
|
@ -1,4 +0,0 @@
|
|||
package ch.zhaw.catan;
|
||||
|
||||
public class CommandWords {
|
||||
}
|
|
@ -25,10 +25,11 @@ public class Parser {
|
|||
textTerminal.println(gameboard);
|
||||
}
|
||||
|
||||
public void displayPlayerResourceStock(HashMap<Config.Resource, Integer> 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<Config.Resource, Integer> 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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue