implemented Method getWinner and getWinPoints
added Class City for later use.
This commit is contained in:
parent
54b1d794f8
commit
3830cf6594
|
@ -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_X" default="true" project-jdk-name="openjdk-17" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_16" 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>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RunConfigurationProducerService">
|
||||||
|
<option name="ignoredProducers">
|
||||||
|
<set>
|
||||||
|
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -0,0 +1,8 @@
|
||||||
|
package ch.zhaw.catan;
|
||||||
|
|
||||||
|
public class City extends Structure {
|
||||||
|
|
||||||
|
public City(Config.Faction faction) {
|
||||||
|
super(faction);
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,12 +4,14 @@ 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.awt.*;
|
||||||
|
|
||||||
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(0, 0);
|
SiedlerGame game = new SiedlerGame(3, 2);
|
||||||
|
|
||||||
//Spielfeld ausgeben
|
//Spielfeld ausgeben
|
||||||
TextIO textIO = TextIoFactory.getTextIO();
|
TextIO textIO = TextIoFactory.getTextIO();
|
||||||
|
@ -18,5 +20,8 @@ public class Siedler {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import java.awt.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class SiedlerBoard extends HexBoard<Land, Settlement, Road, String> {
|
public class SiedlerBoard extends HexBoard<Land, Structure, Road, String> {
|
||||||
|
|
||||||
Map<Point, ch.zhaw.hexboard.Label> lowerFieldLabel = new HashMap<>();
|
Map<Point, ch.zhaw.hexboard.Label> lowerFieldLabel = new HashMap<>();
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import ch.zhaw.hexboard.Label;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
||||||
public class SiedlerBoardTextView extends HexBoardTextView<Land, Settlement, Road, String> {
|
public class SiedlerBoardTextView extends HexBoardTextView<Land, Structure, Road, String> {
|
||||||
|
|
||||||
public SiedlerBoardTextView(SiedlerBoard board) {
|
public SiedlerBoardTextView(SiedlerBoard board) {
|
||||||
super(board);
|
super(board);
|
||||||
|
|
|
@ -7,10 +7,7 @@ import org.beryx.textio.TextIoFactory;
|
||||||
import org.beryx.textio.TextTerminal;
|
import org.beryx.textio.TextTerminal;
|
||||||
|
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -26,7 +23,7 @@ public class SiedlerGame {
|
||||||
|
|
||||||
private SiedlerBoard board;
|
private SiedlerBoard board;
|
||||||
private ArrayList<Player> allPlayers;
|
private ArrayList<Player> allPlayers;
|
||||||
private int winPoints;
|
private int winPointsForWin;
|
||||||
private Bank bank;
|
private Bank bank;
|
||||||
private int activePlayer;
|
private int activePlayer;
|
||||||
|
|
||||||
|
@ -48,7 +45,7 @@ public class SiedlerGame {
|
||||||
allPlayers = new ArrayList<>();
|
allPlayers = new ArrayList<>();
|
||||||
createPlayer(numberOfPlayers);
|
createPlayer(numberOfPlayers);
|
||||||
activePlayer = 0;
|
activePlayer = 0;
|
||||||
this.winPoints = winPoints;
|
this.winPointsForWin = winPoints;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createPlayer(int numberOfPlayers) {
|
private void createPlayer(int numberOfPlayers) {
|
||||||
|
@ -292,9 +289,39 @@ public class SiedlerGame {
|
||||||
*/
|
*/
|
||||||
public Faction getWinner() {
|
public Faction getWinner() {
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
|
HashMap<Faction, Integer> winPoints = getWinPoints();
|
||||||
|
for(Faction faction : winPoints.keySet()){
|
||||||
|
if(winPoints.get(faction) >= winPointsForWin){
|
||||||
|
return faction;
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private HashMap<Faction, Integer> getWinPoints(){
|
||||||
|
HashMap<Faction, Integer> winPoints = new HashMap<>();
|
||||||
|
List<Structure> structures = board.getCorners();
|
||||||
|
for(Structure structure : structures) {
|
||||||
|
|
||||||
|
int newWinPoints = 0;
|
||||||
|
if(structure instanceof Settlement){
|
||||||
|
newWinPoints = 1;
|
||||||
|
} else if(structure instanceof City) {
|
||||||
|
newWinPoints = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
Faction faction = structure.getFaction();
|
||||||
|
if(winPoints.containsKey(faction)) {
|
||||||
|
winPoints.put(faction, winPoints.get(faction) + newWinPoints);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
winPoints.put(faction, newWinPoints);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return winPoints;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Places the thief on the specified field and steals a random resource card (if
|
* Places the thief on the specified field and steals a random resource card (if
|
||||||
|
|
|
@ -10,4 +10,8 @@ public abstract class Structure {
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return faction.toString();
|
return faction.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Config.Faction getFaction() {
|
||||||
|
return faction;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue