first draft of foundigPhase Method

This commit is contained in:
schrom01
2021-12-02 17:13:43 +01:00
parent c4a3346fad
commit 9916d38073
3 changed files with 88 additions and 12 deletions
+63 -6
View File
@@ -4,22 +4,79 @@ import org.beryx.textio.TextIO;
import org.beryx.textio.TextIoFactory;
import org.beryx.textio.TextTerminal;
import java.util.HashMap;
public class Siedler {
public static void main(String[] args) {
//Spiel erstellen
SiedlerGame game = new SiedlerGame(3, 2);
Parser parser = new Parser();
SiedlerGame game = foundingPhase(parser);
parser.getAction();
//Spielfeld ausgeben
TextIO textIO = TextIoFactory.getTextIO();
TextTerminal<?> textTerminal = textIO.getTextTerminal();
textTerminal.println(game.getBoard().getTextView());
Parser parser = new Parser();
parser.getAction();
}
private static SiedlerGame foundingPhase(Parser parser) {
HashMap<String, Integer> gameInfo = parser.gameStart();
SiedlerGame game = new SiedlerGame(gameInfo.get("NumberOfWinPoints"), gameInfo.get("NumberOfPlayers"));
for(int player = 1; player <= gameInfo.get("NumberOfPlayers"); player++){
buildStructuresInFoundingPhase(game, parser, false);
if(player < gameInfo.get("NumberOfPlayers")){
game.switchToPreviousPlayer();
}
}
for(int player = 1; player <= gameInfo.get("NumberOfPlayers"); player++){
buildStructuresInFoundingPhase(game, parser, true);
game.switchToNextPlayer();
}
return game;
}
private static void buildStructuresInFoundingPhase(SiedlerGame game, Parser parser, Boolean payout){
parser.displayGameboard(game.getBoard().getTextView());
parser.playerTurn(game.getCurrentPlayerFaction());
//build Settlement
parser.giveCoordinatesForStructures(Config.Structure.SETTLEMENT);
boolean sucessful = false;
do{
if(game.placeInitialSettlement(parser.getPoint(), payout)) {
sucessful = true;
}
else{
parser.errorMessage();
}
} while(!sucessful);
//build Road
parser.displayGameboard(game.getBoard().getTextView());
parser.giveCoordinatesForStructures(Config.Structure.ROAD);
sucessful = false;
do{
if(game.placeInitialRoad(parser.getPoint(), parser.getPoint())) {
sucessful = true;
}
else{
parser.errorMessage();
}
} while(!sucessful);
}
}