first draft of foundigPhase Method
This commit is contained in:
parent
c4a3346fad
commit
9916d38073
|
@ -1,6 +1,6 @@
|
||||||
package ch.zhaw.catan;
|
package ch.zhaw.catan;
|
||||||
|
|
||||||
public class City extends Structure {
|
public class City extends Settlement {
|
||||||
|
|
||||||
public City(Config.Faction faction) {
|
public City(Config.Faction faction) {
|
||||||
super(faction);
|
super(faction);
|
||||||
|
|
|
@ -4,22 +4,79 @@ import org.beryx.textio.TextIO;
|
||||||
import org.beryx.textio.TextIoFactory;
|
import org.beryx.textio.TextIoFactory;
|
||||||
import org.beryx.textio.TextTerminal;
|
import org.beryx.textio.TextTerminal;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class Siedler {
|
public class Siedler {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
//Spiel erstellen
|
//Spiel erstellen
|
||||||
SiedlerGame game = new SiedlerGame(3, 2);
|
|
||||||
|
|
||||||
//Spielfeld ausgeben
|
|
||||||
TextIO textIO = TextIoFactory.getTextIO();
|
|
||||||
TextTerminal<?> textTerminal = textIO.getTextTerminal();
|
|
||||||
textTerminal.println(game.getBoard().getTextView());
|
|
||||||
Parser parser = new Parser();
|
Parser parser = new Parser();
|
||||||
|
SiedlerGame game = foundingPhase(parser);
|
||||||
|
|
||||||
parser.getAction();
|
parser.getAction();
|
||||||
|
|
||||||
|
|
||||||
|
//Spielfeld ausgeben
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,7 +144,7 @@ public class SiedlerGame {
|
||||||
*/
|
*/
|
||||||
public boolean placeInitialSettlement(Point position, boolean payout) {
|
public boolean placeInitialSettlement(Point position, boolean payout) {
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -157,7 +157,7 @@ public class SiedlerGame {
|
||||||
*/
|
*/
|
||||||
public boolean placeInitialRoad(Point roadStart, Point roadEnd) {
|
public boolean placeInitialRoad(Point roadStart, Point roadEnd) {
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -220,6 +220,11 @@ public class SiedlerGame {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean buildSettlementFoundation(Point position) {
|
||||||
|
//todo implement
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds a city at the specified position on the board.
|
* Builds a city at the specified position on the board.
|
||||||
*
|
*
|
||||||
|
@ -276,6 +281,19 @@ public class SiedlerGame {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private boolean validPositionForRoad(Point position){
|
||||||
|
//todo implement
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean validPositionForSettlement(Point position){
|
||||||
|
//todo implement
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trades in {@link #FOUR_TO_ONE_TRADE_OFFER} resource cards of the
|
* Trades in {@link #FOUR_TO_ONE_TRADE_OFFER} resource cards of the
|
||||||
* offered type for {@link #FOUR_TO_ONE_TRADE_WANT} resource cards of the wanted type.
|
* offered type for {@link #FOUR_TO_ONE_TRADE_WANT} resource cards of the wanted type.
|
||||||
|
@ -312,10 +330,10 @@ public class SiedlerGame {
|
||||||
for(Structure structure : structures) {
|
for(Structure structure : structures) {
|
||||||
|
|
||||||
int newWinPoints = 0;
|
int newWinPoints = 0;
|
||||||
if(structure instanceof Settlement){
|
if(structure instanceof City){
|
||||||
newWinPoints = 1;
|
|
||||||
} else if(structure instanceof City) {
|
|
||||||
newWinPoints = 2;
|
newWinPoints = 2;
|
||||||
|
} else if(structure instanceof Settlement) {
|
||||||
|
newWinPoints = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Faction faction = structure.getFaction();
|
Faction faction = structure.getFaction();
|
||||||
|
@ -327,6 +345,7 @@ public class SiedlerGame {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//todo add points for longest road
|
||||||
return winPoints;
|
return winPoints;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue