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