adjust countRoad in SiedlerGame
This commit is contained in:
parent
ecc75e14c8
commit
46484df77c
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="openjdk-17" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_X" default="true" project-jdk-name="openjdk-17" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -24,6 +24,7 @@ public class SiedlerGame {
|
||||||
private int winPointsForWin;
|
private int winPointsForWin;
|
||||||
private Bank bank;
|
private Bank bank;
|
||||||
private int activePlayer;
|
private int activePlayer;
|
||||||
|
private HashMap<Config.Faction,Integer> longestRoadFaction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a SiedlerGame game state object.
|
* Constructs a SiedlerGame game state object.
|
||||||
|
@ -43,6 +44,7 @@ public class SiedlerGame {
|
||||||
allPlayers = new ArrayList<>();
|
allPlayers = new ArrayList<>();
|
||||||
createPlayer(numberOfPlayers);
|
createPlayer(numberOfPlayers);
|
||||||
activePlayer = 0;
|
activePlayer = 0;
|
||||||
|
longestRoadFaction = new HashMap<>();
|
||||||
this.winPointsForWin = winPoints;
|
this.winPointsForWin = winPoints;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -504,7 +506,8 @@ public class SiedlerGame {
|
||||||
winPoints ++;
|
winPoints ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(getLongestRoadFaction() == getCurrentPlayerFaction()){
|
longestRoadFaction = getLongestRoadFaction(longestRoadFaction);
|
||||||
|
if(longestRoadFaction.get(getCurrentPlayerFaction()) != null){
|
||||||
winPoints += 2;
|
winPoints += 2;
|
||||||
}
|
}
|
||||||
return winPoints;
|
return winPoints;
|
||||||
|
@ -515,12 +518,12 @@ public class SiedlerGame {
|
||||||
* This method returns the faction of the player with the longest road longer than 5.
|
* This method returns the faction of the player with the longest road longer than 5.
|
||||||
* @return null if there is no player with a road longer than 5 otherwise it returns the faction of the specific player
|
* @return null if there is no player with a road longer than 5 otherwise it returns the faction of the specific player
|
||||||
*/
|
*/
|
||||||
private Faction getLongestRoadFaction() {
|
private HashMap<Config.Faction, Integer> getLongestRoadFaction(HashMap<Config.Faction,Integer> currentLongestRoad) {
|
||||||
List<Settlement> corners = board.getCorners();
|
List<Settlement> corners = board.getCorners();
|
||||||
List<Config.Faction> factionList = getPlayerFactions();
|
List<Config.Faction> factionList = getPlayerFactions();
|
||||||
HashMap<Config.Faction,Integer> players = new HashMap<>();
|
HashMap<Config.Faction,Integer> players = new HashMap<>();
|
||||||
int highest = 0;
|
int highest = 0;
|
||||||
Config.Faction longestRoad = null;
|
|
||||||
for(Config.Faction faction : factionList) {
|
for(Config.Faction faction : factionList) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
players.put(faction,count);
|
players.put(faction,count);
|
||||||
|
@ -535,12 +538,14 @@ public class SiedlerGame {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(Config.Faction faction : players.keySet()) {
|
for(Config.Faction faction : players.keySet()) {
|
||||||
if(players.get(faction) >= 5 && players.get(faction)>highest) {
|
for(Config.Faction faction1 : currentLongestRoad.keySet()) {
|
||||||
highest = players.get(faction);
|
if(players.get(faction) >= 5 && players.get(faction) > currentLongestRoad.get(faction1)) {
|
||||||
longestRoad = faction;
|
currentLongestRoad.remove(faction1);
|
||||||
|
currentLongestRoad.put(faction,players.get(faction));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return longestRoad;
|
return currentLongestRoad;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue