From b65d0ffa430558af70f0517643897fa9b19914e2 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 21 Jun 2016 09:01:44 +0200 Subject: [PATCH 01/18] GeneralMap Integration & Erweiterung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Integration des Kampfsystems und des "Einheiten verschieben"-Systems - Vorbereitung des Spielerwechsels - Utils.StringToInt(String) hinzugefügt --- GeneralMap.java | 427 ++++++++++++++++++++++++++++++++++-------------- Utils.java | 140 ++++++++-------- 2 files changed, 377 insertions(+), 190 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 28de775..cbf6672 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -1,134 +1,311 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.lang.Math; +import java.util.Arrays; +import greenfoot.MouseInfo.*; +import javax.swing.JOptionPane; /** - Oberklasse für verschiedene Maps; - neue Maps werden als Unterklasse dieser Klasse eingefügt. +Oberklasse für verschiedene Maps; +neue Maps werden als Unterklasse dieser Klasse eingefügt. - @author GruenerWal, MaxiJohl, Felix Stupp - @version 0.3.0 -*/ -public abstract class GeneralMap extends World +@author GruenerWal, MaxiJohl, Felix Stupp +@version 0.3.0 + */ +public abstract class GeneralMap extends World implements ButtonEvent { - /* - Felder, im Moment nur Anzahl der Provinzen - Später evtl. weitere Werte wie Schwierigkeit denkbar - */ - - private final int X_OFFSET = 0; // Verschiebt die Provinzen nach rechts - private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten - - /* - Die einzelnen Positionen der Provinzen wird mit SCALE_VALUE/10000 multipliziert. - Dies ist nützlich, wenn die Karte beispielsweise nur noch 80% der Originalgröße bei ihrer Darstellung groß ist. - Bei diesem Beispiel wäre hier, neben dem Offset oben, der Wert 0.8 einzutragen. - */ - private final double SCALE_VALUE = 1; - - protected Province[] provinces; - protected Player[] players; - - protected int currentPlayer = 0; - - /** - Erstellt eine GeneralMap mit allen Eigenschaften und initialisiert die Arrays für Provinzen und Spieler. - @param backImage Das Hintergrundbild, welches von dieser Klasse geladen und dargestellt wird. - @param playerList Die Liste mit den Namen der Spieler - @param colorList Die Liste mit den Farben der Spieler - */ - public GeneralMap(String backImage, String[] playerList, int[] colorList) - { + /* + Felder, im Moment nur Anzahl der Provinzen + Später evtl. weitere Werte wie Schwierigkeit denkbar + */ + + private final int X_OFFSET = 0; // Verschiebt die Provinzen nach rechts + private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten + + /* + Die einzelnen Positionen der Provinzen wird mit SCALE_VALUE/10000 multipliziert. + Dies ist nützlich, wenn die Karte beispielsweise nur noch 80% der Originalgröße bei ihrer Darstellung groß ist. + Bei diesem Beispiel wäre hier, neben dem Offset oben, der Wert 0.8 einzutragen. + */ + private final double SCALE_VALUE = 1; + + protected enum GameStates { + KAMPF, + VERSCHIEBEN + } + + protected Province[] provinces; + protected Player[] players; + + protected int currentPlayer = 0; + protected GameStates status = GameStates.VERSCHIEBEN; + + Province offenderProvince; + Province defenderProvince; + + Province savedProvince = null; + + /** + Erstellt eine GeneralMap mit allen Eigenschaften und initialisiert die Arrays für Provinzen und Spieler. + @param backImage Das Hintergrundbild, welches von dieser Klasse geladen und dargestellt wird. + @param playerList Die Liste mit den Namen der Spieler + @param colorList Die Liste mit den Farben der Spieler + */ + public GeneralMap(String backImage, String[] playerList, int[] colorList) + { super(1600,900,1); - players = new Player[playerList.length]; - for (int i = 0; i < playerList.length; i++) { - players[i] = new Player(i,playerList[i],colorList[i]); - } - } - - /** - Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu. - */ - protected void initProvinces() { - for(int i = 1; i < provinces.length; i++) { - addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); - } - } - - /** - Gibt die Anzahl der vorhandenen Spieler aus. - */ - public int getPlayerCount() - { - return players.length; - } - - /** - Gibt den Namen des aktuellen Spielers aus. - @return Der Name des aktuellen Spielers - */ - public String getPlayerName() - { - return players[currentPlayer].getDisplayName(); - } - - /** - Gibt den Namen des Spielers aus, dem dessen ID gehört. - @param plID Die ID des zu findenden Spielers - @return Der Name des Spielers - */ - public String getPlayerName(int plID) - { - return players[plID].getDisplayName(); - } - - /** - Gibt die Anzahl der Sterne des aktuellen Spielers zurück. - @return Die Anzahl der Sterne des aktuellen Spielers - */ - public int getPlayerStars() - { - return players[currentPlayer].getStars(); - } - - /** - Gibt die ID des Spielers zurück, dem die gefragte Provinz gehört. - @param prID Die gefragte Provinz - */ - public int getProvinceOwner(int prID) - { - if(prID < 1 || prID > provinces.length) { - return -1; - } - return provinces[prID].getOwner(); - } - - /** - Gibt eine Liste mit allen Provinzen und deren Besitzern zurück. - @return Array mit der Provinz-ID als Index und dem Besitzer als Wert - */ - public int[] getProvinceOwners() - { - int[] prOwners = new int[provinces.length]; - for (int i = 1; i > provinces.length; i++) { - prOwners[i] = provinces[i].getOwner(); - } - return prOwners; - } - - /** - Zählt die Anzahl der Einheiten von allen Provinzen zusammen, die einem bestimmten Spieler gehört. - @param playerID Die ID des Spielers, für den die Einheiten gezählt werden sollen. - @return Die Anzahl der Einheiten, die dem Spieler gehören. - */ - public int getProvinceEntityCount(int playerID) - { - int c = 0; - for (int i = 1; i > provinces.length; i++) { - if(provinces[i].getOwner() == playerID) { - c = c + provinces[i].getEntityCount(); - } - } - return c; - } + players = new Player[playerList.length]; + for (int i = 0; i < playerList.length; i++) { + players[i] = new Player(i,playerList[i],colorList[i]); + } + } + + /** + Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu. + */ + protected void initProvinces() { + for(int i = 1; i < provinces.length; i++) { + addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); + } + } + + public void act() { + if(status == GameStates.KAMPF) { + if(offenderProvince == null) + { + OffenderProvince(); + } + else + { + defenderProvince(); + } + } else if(status == GameStates.VERSCHIEBEN) { + Province clickedProvince; + + for ( int i = 1; i <= (provinces.length - 1); i++) + { + if (provinces[i].hasClicked() == true) + { + clickedProvince = provinces[i]; + useProvincesToMove(clickedProvince); + break; + } + } + } + } + + /** + Gibt die Anzahl der vorhandenen Spieler aus. + */ + public int getPlayerCount() + { + return players.length; + } + + /** + Gibt den Namen des aktuellen Spielers aus. + @return Der Name des aktuellen Spielers + */ + public String getPlayerName() + { + return players[currentPlayer].getDisplayName(); + } + + /** + Gibt den Namen des Spielers aus, dem dessen ID gehört. + @param plID Die ID des zu findenden Spielers + @return Der Name des Spielers + */ + public String getPlayerName(int plID) + { + return players[plID].getDisplayName(); + } + + /** + Gibt die Anzahl der Sterne des aktuellen Spielers zurück. + @return Die Anzahl der Sterne des aktuellen Spielers + */ + public int getPlayerStars() + { + return players[currentPlayer].getStars(); + } + + /** + Gibt die ID des Spielers zurück, dem die gefragte Provinz gehört. + @param prID Die gefragte Provinz + */ + public int getProvinceOwner(int prID) + { + if(prID < 1 || prID > provinces.length) { + return -1; + } + return provinces[prID].getOwner(); + } + + /** + Gibt eine Liste mit allen Provinzen und deren Besitzern zurück. + @return Array mit der Provinz-ID als Index und dem Besitzer als Wert + */ + public int[] getProvinceOwners() + { + int[] prOwners = new int[provinces.length]; + for (int i = 1; i > provinces.length; i++) { + prOwners[i] = provinces[i].getOwner(); + } + return prOwners; + } + + /** + Zählt die Anzahl der Einheiten von allen Provinzen zusammen, die einem bestimmten Spieler gehört. + @param playerID Die ID des Spielers, für den die Einheiten gezählt werden sollen. + @return Die Anzahl der Einheiten, die dem Spieler gehören. + */ + public int getProvinceEntityCount(int playerID) + { + int c = 0; + for (int i = 1; i > provinces.length; i++) { + if(provinces[i].getOwner() == playerID) { + c = c + provinces[i].getEntityCount(); + } + } + return c; + } + + public void buttonClicked(Button b) { + if(status == GameStates.KAMPF) { + status = GameStates.VERSCHIEBEN; + } else if(status == GameStates.VERSCHIEBEN) { + status = GameStates.KAMPF; + currentPlayer++; + if(currentPlayer >= players.length) { + currentPlayer = 0; + } + } + } + + // Kampfsystem + + private void OffenderProvince() + { + for ( int i = 1; i <= (provinces.length - 1); i++) + { + if (provinces[i].hasClicked() == true) + { + offenderProvince = provinces[i]; + System.out.println("1"); + } + } + } + + private void defenderProvince() + { + { + for (int i = 1; i <= (provinces.length - 1); i++) + { + if (provinces[i].hasClicked() == true)//&& defenderProvince != offenderProvince) + { + defenderProvince = provinces[i]; + System.out.println("2"); + chooser(); + break; + } + } + } + } + + private void chooser() + { + Dice_Offender diceOffender = new Dice_Offender(); + int[] maxDiceOffender = diceOffender.max_offender(offenderProvince.getEntityCount()); + Dice_Defender diceDefender = new Dice_Defender(); + int[] maxDiceDefender = diceDefender.max_defender(defenderProvince.getEntityCount()); + Arrays.sort(maxDiceOffender); + Arrays.sort(maxDiceDefender); + decider(maxDiceOffender, maxDiceDefender); + } + + private void decider(int[] maxDiceOffender, int [] maxDiceDefender) + { + int maxDefender = maxDiceDefender[1]; + int maxOffender = maxDiceOffender[2]; + if (maxOffender>maxDefender && defenderProvince.getEntityCount()>1) + { + int EntitiesOffender = offenderProvince.getEntityCount(); + int EntitiesDefender = defenderProvince.getEntityCount(); + defenderProvince.setEntityCount(EntitiesDefender - 1); + } + + if (maxOffender1) + { + int EntitiesOffender = offenderProvince.getEntityCount(); + int EntitiesDefender = defenderProvince.getEntityCount(); + offenderProvince.setEntityCount(EntitiesOffender - 1); + } + + if (maxOffender>maxDefender && defenderProvince.getEntityCount()==1) + { + defenderProvince.setOwner(offenderProvince.getOwner()); + defenderProvince.setEntityCount(0); + } + + if (maxOffender>maxDefender && offenderProvince.getEntityCount()==1) + { + offenderProvince.setOwner(defenderProvince.getOwner()); + offenderProvince.setEntityCount(0); + } + System.out.println("3"); + offenderProvince = null; + defenderProvince = null; + } + + // Einheiten verschieben + + /** + * Nimmt zwei Provinzen entgegen, und fragt, wieviele Einheiten vom ersten zum zweiten Eintrag verschoben werden sollen. + * Ãœberprüft, ob eine Verschiebung möglich ist und führt sie bei Erfolg aus. + */ + private void moveEntities(Province sourceProvince, Province destinationProvince) + { + String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?"); + int entitiesToMove = Utils.StringToInt(toMoveString); + + if (entitiesToMove == 0) { + JOptionPane.showMessageDialog(null,"Bitte eine Zahl eingeben, Kommandant " + getPlayerName() + "."); + return; + } + + if ( (sourceProvince.getEntityCount() - entitiesToMove) > 0) + { + sourceProvince.removeFromEntities(entitiesToMove); + destinationProvince.addToEntities(entitiesToMove); + JOptionPane.showMessageDialog(null,"Einheiten erfolgreich verschoben, Kommandant " + getPlayerName() + "."); + } + + else if ( (sourceProvince.getEntityCount() - entitiesToMove) <= 0) + { + JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + sourceProvince.getDisplayName() + " nach " + destinationProvince.getDisplayName() + " zu verschieben, Köhler."); + } + } + + /** + * Speichert ein gegebene Provinz als savedProvince ein, insofern dieser Platz nicht bereits belegt ist. + * Ist er das, so wird überprüft, ob eine neue, an savedProvince angrenzende Provinz angeklickt wurde. + * Ist dies der Fall, werden beide Provinzen an moveEntities übergeben. + */ + private void useProvincesToMove(Province givenProvince) + { + if (savedProvince == null) + { + savedProvince = givenProvince; + } + + else if ((savedProvince != null) && (givenProvince != savedProvince) && (savedProvince.getOwner() == givenProvince.getOwner()) && (savedProvince.getOwner() == currentPlayer) ) + { + if (givenProvince.isProvinceNear(savedProvince.getID()) == true) + { + moveEntities(savedProvince,givenProvince); + } + savedProvince = null; + } + } } diff --git a/Utils.java b/Utils.java index cb9680a..ebfadc3 100644 --- a/Utils.java +++ b/Utils.java @@ -3,73 +3,83 @@ import java.awt.Color; import java.util.*; /** - Diese Klasse enthält nur statische Funktionen, welche für euch als Unterstützung gedacht sind. Damit könnt ihr dann hoffentlich viele Code-Zeilen sparen. :) +Diese Klasse enthält nur statische Funktionen, welche für euch als Unterstützung gedacht sind. Damit könnt ihr dann hoffentlich viele Code-Zeilen sparen. :) - @author Zocker1999_NET - @version 15.06.2016 +@author Zocker1999_NET +@version 15.06.2016 */ public final class Utils { - - /** - Kopiert ein boolean-Array und übergibt diese. - @param a Das zu kopierende Array - @return Die Kopie des Arrays - */ - public static boolean[] copyArray(boolean[] a) { - boolean[] b = new boolean[a.length]; - for(int i = 0; i < a.length; i++) { - b[i] = a[i]; - } - return b; - } - /** - Kopiert ein int-Array und übergibt diese. - @param a Das zu kopierende Array - @return Die Kopie des Arrays - */ - public static int[] copyArray(int[] a) { - int[] b = new int[a.length]; - for(int i = 0; i < a.length; i++) { - b[i] = a[i]; - } - return b; - } - /** - Kopiert ein String-Array und übergibt diese. - @param a Das zu kopierende Array - @return Die Kopie des Arrays - */ - public static String[] copyArray(String[] a) { - String[] b = new String[a.length]; - for(int i = 0; i < a.length; i++) { - b[i] = a[i]; - } - return b; - } - - /** - Zeichnet innerhalb eines GreenfootImage ein gefülltes Rechteck in der gegebenen Farbe und mit dem gegebenen Abstand zum Rand. - @param i Das GreenfootImage, in dem gezeichnet werden soll. - @param c Die Farbe, in der das gefüllte Rechteck gezeichnet werden soll. - @param b Der Abstand zum Rand der Grafik. - */ - public static void drawInsideRectangle(GreenfootImage i, Color c, int b) { - int sx = i.getWidth(); - int sy = i.getHeight(); - i.setColor(c); - i.fillRect(b,b,sx-(2*b),sy-(2*b)); - } - - /** - Sortiert ein int[]-Array absteigend. - @param a Das zu sortierende Array - */ - public static void sortDesc(int[] a) { - Arrays.sort(a); - int[] b = copyArray(a); - for(int i = (a.length - 1); i >= 0; i--) { - a[i] = b[i]; - } - } + /** + Kopiert ein boolean-Array und übergibt diese. + @param a Das zu kopierende Array + @return Die Kopie des Arrays + */ + public static boolean[] copyArray(boolean[] a) { + boolean[] b = new boolean[a.length]; + for(int i = 0; i < a.length; i++) { + b[i] = a[i]; + } + return b; + } + + /** + Kopiert ein int-Array und übergibt diese. + @param a Das zu kopierende Array + @return Die Kopie des Arrays + */ + public static int[] copyArray(int[] a) { + int[] b = new int[a.length]; + for(int i = 0; i < a.length; i++) { + b[i] = a[i]; + } + return b; + } + + /** + Kopiert ein String-Array und übergibt diese. + @param a Das zu kopierende Array + @return Die Kopie des Arrays + */ + public static String[] copyArray(String[] a) { + String[] b = new String[a.length]; + for(int i = 0; i < a.length; i++) { + b[i] = a[i]; + } + return b; + } + + /** + Zeichnet innerhalb eines GreenfootImage ein gefülltes Rechteck in der gegebenen Farbe und mit dem gegebenen Abstand zum Rand. + @param i Das GreenfootImage, in dem gezeichnet werden soll. + @param c Die Farbe, in der das gefüllte Rechteck gezeichnet werden soll. + @param b Der Abstand zum Rand der Grafik. + */ + public static void drawInsideRectangle(GreenfootImage i, Color c, int b) { + int sx = i.getWidth(); + int sy = i.getHeight(); + i.setColor(c); + i.fillRect(b,b, sx-(2*b),sy-(2*b)); + } + + /** + Sortiert ein int[]-Array absteigend. + @param a Das zu sortierende Array + */ + public static void sortDesc(int[] a) { + Arrays.sort(a); + int[] b = copyArray(a); + for(int i = (a.length - 1); i >= 0; i--) { + a[i] = b[i]; + } + } + + public static int StringToInt(String s) { + int i = 0; + try { + Integer in = Integer.valueOf(s); + i = in; + } catch (java.lang.NumberFormatException e) {} + return i; + } } From e109fbe5e9a4bf320e265e4431341a14ca448657 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 21 Jun 2016 09:02:50 +0200 Subject: [PATCH 02/18] Delete Fight.java Entfernen des extra Kampfsystems nach der Integration. --- Fight.java | 112 ----------------------------------------------------- 1 file changed, 112 deletions(-) delete mode 100644 Fight.java diff --git a/Fight.java b/Fight.java deleted file mode 100644 index 0debbd5..0000000 --- a/Fight.java +++ /dev/null @@ -1,112 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) -import java.util.Arrays; - -/** - * Write a description of class Fight here. - * - * @author (your name) - * @version (a version number or a date) - */ -public class Fight extends Map_World -{ - - /** - * Constructor for objects of class Fight. - * - */ - Province offenderProvince; - Province defenderProvince; - - public Fight(String[] playerList, int[] colorList) - { - super(playerList,colorList); - } - - public void act() - { - if(offenderProvince == null) - { - OffenderProvince(); - } - else - { - defenderProvince(); - } - } - - private void OffenderProvince() - { - for ( int i = 1; i <= provinceCount; i++) - { - if (provinces[i].hasClicked() == true) - { - offenderProvince = provinces[i]; - System.out.println("1"); - } - } - } - - private void defenderProvince() - { - { - for (int i = 1; i <= provinceCount; i++) - { - if (provinces[i].hasClicked() == true)//&& defenderProvince != offenderProvince) - { - defenderProvince = provinces[i]; - System.out.println("2"); - chooser(); - break; - } - } - } - } - - private void chooser() - { - Dice_Offender diceOffender = new Dice_Offender(); - int[] maxDiceOffender = diceOffender.max_offender(offenderProvince.getEntityCount()); - Dice_Defender diceDefender = new Dice_Defender(); - int[] maxDiceDefender = diceDefender.max_defender(defenderProvince.getEntityCount()); - Arrays.sort(maxDiceOffender); - Arrays.sort(maxDiceDefender); - decider(maxDiceOffender, maxDiceDefender); - } - - private void decider(int[] maxDiceOffender, int [] maxDiceDefender) - { - - int maxDefender = maxDiceDefender[1]; - int maxOffender = maxDiceOffender[2]; - if (maxOffender>maxDefender && defenderProvince.getEntityCount()>1) - { - int EntitiesOffender = offenderProvince.getEntityCount(); - int EntitiesDefender = defenderProvince.getEntityCount(); - defenderProvince.setEntityCount(EntitiesDefender - 1); - } - - if (maxOffender1) - { - int EntitiesOffender = offenderProvince.getEntityCount(); - int EntitiesDefender = defenderProvince.getEntityCount(); - offenderProvince.setEntityCount(EntitiesOffender - 1); - } - - if (maxOffender>maxDefender && defenderProvince.getEntityCount()==1) - { - defenderProvince.setOwner(offenderProvince.getOwner()); - defenderProvince.setEntityCount(0); - } - - if (maxOffender>maxDefender && offenderProvince.getEntityCount()==1) - { - offenderProvince.setOwner(defenderProvince.getOwner()); - offenderProvince.setEntityCount(0); - } - System.out.println("3"); - offenderProvince = null; - defenderProvince = null; - } -} - -//Ein <3 für Felix (von Aaron)(geschrieben von Samuel)(aber Aaron wollte das ich des schreib) From 358e514df6948a49c185592785d075eeb7827439 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 21 Jun 2016 09:03:14 +0200 Subject: [PATCH 03/18] Delete ArmySchubser.java Entfernen des extra "Einheiten verschieben"-Systems nach der Integration. --- ArmySchubser.java | 95 ----------------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 ArmySchubser.java diff --git a/ArmySchubser.java b/ArmySchubser.java deleted file mode 100644 index 9bd5bc9..0000000 --- a/ArmySchubser.java +++ /dev/null @@ -1,95 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) -import greenfoot.MouseInfo.*; -import javax.swing.JOptionPane; - -/** - * Schubst Einheiten umher. - * - * @author MaxiJohl, GruenerWal - * @version 1.1.0 - */ - -public class ArmySchubser extends Map_World -{ - static Province savedProvince = null; - - /** - * Konstruktor für ArmySchubser. - * - * NICHT BENUTZEN! - * Sämtliche benötigten Methoden sind static! - */ - public ArmySchubser(String[] playerList, int[] colorList) - { - super(playerList,colorList); - } - - /** - * Nimmt zwei Provinzen entgegen, und fragt, wieviele Einheiten vom ersten zum zweiten Eintrag verschoben werden sollen. - * Ãœberprüft, ob eine Verschiebung möglich ist und führt sie bei Erfolg aus. - */ - public void moveEntities(Province sourceProvince, Province destinationProvince) - { - String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?"); - Integer entitiesToMove = Integer.valueOf(toMoveString); - - if ( entitiesToMove != null ) - { - if ( (sourceProvince.getEntityCount() - entitiesToMove) > 0) - { - sourceProvince.removeFromEntities(entitiesToMove); - destinationProvince.addToEntities(entitiesToMove); - JOptionPane.showMessageDialog(null,"Einheiten erfolgreich verschoben, Kommandant " + getPlayerName() + "."); - } - - else if ( (sourceProvince.getEntityCount() - entitiesToMove) <= 0) - { - JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + sourceProvince.getDisplayName() + " nach " + destinationProvince.getDisplayName() + " zu verschieben, Köhler."); - } - } - } - - /** - * Speichert ein gegebene Provinz als savedProvince ein, insofern dieser Platz nicht bereits belegt ist. - * Ist er das, so wird überprüft, ob eine neue, an savedProvince angrenzende Provinz angeklickt wurde. - * Ist dies der Fall, werden beide Provinzen an moveEntities übergeben. - */ - public void useProvincesToMove(Province givenProvince) - { - if (savedProvince == null) - { - savedProvince = givenProvince; - } - - else if ((savedProvince != null) && (givenProvince != savedProvince) && (savedProvince.getOwner() == givenProvince.getOwner()) && (savedProvince.getOwner() == currentPlayer) ) - { - if (givenProvince.isProvinceNear(savedProvince.getID()) == true) - { - moveEntities(savedProvince,givenProvince); - } - - savedProvince = null; - } - } - - /** - * Ãœberprüft, ob eine Provinz angeklickt wurde. - * Wenn ja, wird diese als clickedProvince eingespeichert und useProvincesToMove aufgerufen. - * - * Kommt nachher in die GeneralMap! - */ - public void act() - { - Province clickedProvince; - - for ( int i = 1; i <= (provinces.length - 1); i++) - { - if (provinces[i].hasClicked() == true) - { - clickedProvince = provinces[i]; - useProvincesToMove(clickedProvince); - break; - } - } - } -} \ No newline at end of file From 11c0ffc087f5e88934c92728a19f080ea009507f Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 21 Jun 2016 09:16:10 +0200 Subject: [PATCH 04/18] Architektur mit Farbzuordnung erweitert Farbenzuordnung in der Architektur festgehalten. --- planung/architektur.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/planung/architektur.md b/planung/architektur.md index 7bb1dba..c95ef4a 100644 --- a/planung/architektur.md +++ b/planung/architektur.md @@ -41,6 +41,17 @@ Hier werden alle Klassen mit deren öffentliche Methoden (**public** und **prote - Arbeitet bitte, wenn möglich, mit der *Utils*-Klasse, diese kann helfen den Code übersichtlicher und kürzer zu gestalten, da häufige und allgemein umsetzbare Aufgaben über diese einheitlich abgearbeitet werden sollen. Das Debuggen wird somit auch einfacher, sowohl für mich als auch für euch selbst. - Ihr könnt auch ab und zu in die Dokumentationen der offiziellen Java-Bibliotheken schauen, falls ihr denkt, dass es bereits eine Methode geben sollte für den Vorgang, den ihr sonst selbst programmieren müsstet. +### Color-Zuweisung + +An verschiedenen Stellen (wie beispielsweise beim Erstellen eines *Player*-Objektes) benötigt man eine Zahl als Farbwert, die einem Spieler eine Farbe zuweisen können. Auf folgende Zuordnung haben wir uns geeinigt: + +0. schwarz +0. blau +0. grün +0. rot +0. gelb +0. lila + --- ## Klassenverzeichnis @@ -876,4 +887,4 @@ Zeichnet innerhalb eines *GreenfootImage* ein Rechteck gefüllt mit der angegebe #### sortDesc() -Sortiert ein *int[]*-Array absteigend. \ No newline at end of file +Sortiert ein *int[]*-Array absteigend. From f1ae4696295795b81230c66edef2201074955ae5 Mon Sep 17 00:00:00 2001 From: Achim Date: Tue, 21 Jun 2016 09:18:58 +0200 Subject: [PATCH 05/18] Add files via upload --- GeneralMap.java | 35 ++++++++++++++++++++++++++++++++++- Map_World.java | 3 ++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 28de775..48d710f 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -15,7 +15,7 @@ public abstract class GeneralMap extends World Später evtl. weitere Werte wie Schwierigkeit denkbar */ - private final int X_OFFSET = 0; // Verschiebt die Provinzen nach rechts + private final int X_OFFSET = 160; // Verschiebt die Provinzen nach rechts private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten /* @@ -43,8 +43,41 @@ public abstract class GeneralMap extends World for (int i = 0; i < playerList.length; i++) { players[i] = new Player(i,playerList[i],colorList[i]); } + + createPlayerObjects(playerList.length); } + private void createPlayerObjects(int playerCount) + { + addObject(players[0],82,110); + + if (playerCount > 1) + { + addObject(players[1],82,230); + + if (playerCount > 2) + { + addObject(players[2],82,350); + + if (playerCount > 3) + { + addObject(players[3],1512,110); + + if (playerCount > 4) + { + addObject(players[4],1512,230); + + if (playerCount > 5) + + { + addObject(players[5],1512,350); + } + } + } + } + } + } + /** Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu. */ diff --git a/Map_World.java b/Map_World.java index dc1dfab..b809539 100644 --- a/Map_World.java +++ b/Map_World.java @@ -24,6 +24,7 @@ public class Map_World extends GeneralMap public Map_World(String[] playerList, int[] colorList) { super("",playerList,colorList); + setBackground("Map_World.png"); /* Hier werden später sämtliche Provinzen der Standard-Map erstellt. Dies funktioniert folgendermassen: @@ -52,7 +53,7 @@ public class Map_World extends GeneralMap // cID 1 - Nordamerika provinces[1] = new Province( 1 , 1 , 64 , 106 , 1 , "Alaska" , new int[] {2 , 3 , 36}); provinces[2] = new Province( 2 , 1 , 162 , 106 , 1 , "NW-Territorien" , new int[] {1 , 3 , 4 , 9}); - provinces[3] = new Province( 3 , 1 , 53 , 170 , 1 , "Alberta" , new int[] {1 , 2 , 4 , 5}); + provinces[3] = new Province( 3 , 1 , 153 , 170 , 1 , "Alberta" , new int[] {1 , 2 , 4 , 5}); provinces[4] = new Province( 4 , 1 , 223 , 177 , 2 , "Ontario" , new int[] {2 , 3 , 5 , 6 , 7 , 9}); provinces[5] = new Province( 5 , 1 , 160 , 236 , 2 , "Weststaaten" , new int[] {3 , 4 , 6 , 8}); provinces[6] = new Province( 6 , 1 , 232 , 273 , 2 , "Oststaaten" , new int[] {4 , 5 , 7 , 8}); From 1a7bc86b415a3e3558637e2a773967b42b48ef8f Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Fri, 24 Jun 2016 22:56:52 +0200 Subject: [PATCH 06/18] Umschreibung bei GeneralMap.createPlayerObjects In der Methode wurde die zuvor eingesetzte If-Verschachtelung durch eine durchaus besser lesbaren und funktionell identischen Switch-Block ersetzt. --- GeneralMap.java | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index b9a43b2..28b3be7 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -63,34 +63,23 @@ public abstract class GeneralMap extends World implements ButtonEvent private void createPlayerObjects(int playerCount) { - addObject(players[0],82,110); - - if (playerCount > 1) - { - addObject(players[1],82,230); - - if (playerCount > 2) - { - addObject(players[2],82,350); - - if (playerCount > 3) - { - addObject(players[3],1512,110); - - if (playerCount > 4) - { - addObject(players[4],1512,230); - - if (playerCount > 5) - - { + if(playerCount > 6) { + playerCount = 6; // Um denselben Effekt wie beim Code zuvor zu erzeugen + } + switch (playerCount) { + case 6: addObject(players[5],1512,350); + case 5: + addObject(players[4],1512,230); + case 4: + addObject(players[3],1512,110); + case 3: + addObject(players[2],82,350); + case 2: + addObject(players[1],82,230); } + addObject(players[0],82,110); } - } - } - } - } /** Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu. From 8cc4370b1fa822ad9bbe33025bdfa6c2a0b25b87 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Fri, 24 Jun 2016 22:58:34 +0200 Subject: [PATCH 07/18] =?UTF-8?q?Einf=C3=BChrung=20der=20=C3=84nderungen?= =?UTF-8?q?=20bei=20Fight=20Diese=20=C3=84nderungen=20sind=20nun=20mit=20i?= =?UTF-8?q?n=20die=20GeneralMap-Klasse=20integriert.=20Damit=20wird=20auch?= =?UTF-8?q?=20wieder=20die=20Fight-Klasse=20aus=20diesem=20Branch=20entfer?= =?UTF-8?q?nt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Fight.java | 164 ---------------------------------------- GeneralMap.java | 195 ++++++++++++++++++++++++++++-------------------- 2 files changed, 115 insertions(+), 244 deletions(-) delete mode 100644 Fight.java diff --git a/Fight.java b/Fight.java deleted file mode 100644 index 93cb8ec..0000000 --- a/Fight.java +++ /dev/null @@ -1,164 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) -import java.util.Arrays; -import javax.swing.JOptionPane; - -/** - * Write a description of class Fight here. - * - * @author (your name) - * @version (a version number or a date) - */ -public class Fight extends Map_World -{ - - /** - * Constructor for objects of class Fight. - * - */ - Province offenderProvince; - Province defenderProvince; - String maxDiceOffender = ""; - String maxDiceDefender = ""; - - public Fight(String[] playerList, int[] colorList) - { - super(playerList,colorList); - - } - - public void test() - { - provinces[1].setEntityCount(10); - provinces[2].setEntityCount(20); - provinces[1].setOwner(1); - provinces[2].setOwner(2); - provinces[1].redrawProvince(); - provinces[2].redrawProvince(); - - } - - public void act() - { - if(offenderProvince == null) - { - - OffenderProvince(); - } - else - { - defenderProvince(); - } - } - - private void OffenderProvince() - { - for ( int i = 1; i <= provinceCount; i++) - { - if (provinces[i].hasClicked() == true) - { - offenderProvince = provinces[i]; - // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als angreifende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); - } - } - } - - private void defenderProvince() - { - { - for (int i = 1; i <= provinceCount; i++) - { - if (provinces[i].hasClicked() == true)//&& defenderProvince != offenderProvince) - { - defenderProvince = provinces[i]; - // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als verteidigende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); - chooser(); - break; - } - } - } - } - - private void chooser() - { - System.out.println("Es wird gewürfelt!"); - Dice_Offender diceOffender = new Dice_Offender(); - // System.out.println("Der Angreifer ereichte folgende Würfelzahlen:"); - int[] maxDiceOffenderArray = diceOffender.dice_offender(offenderProvince.getEntityCount()); - Dice_Defender diceDefender = new Dice_Defender(); - // System.out.println("Der Verteidiger ereichte folgende Würfelzahlen:"); - int[] maxDiceDefenderArray = diceDefender.dice_defender(defenderProvince.getEntityCount()); - Arrays.sort(maxDiceOffenderArray); - Arrays.sort(maxDiceDefenderArray); - - for(int i = 0;i<3;i++) - { - if(i == 0) - { - maxDiceOffender = "" + maxDiceOffenderArray[i]; - } - else - { - maxDiceOffender = maxDiceOffender + ";" + maxDiceOffenderArray[i]; - } - } - for(int i = 0;i<2;i++) - { - if(i == 0) - { - maxDiceDefender = "" + maxDiceDefenderArray[i]; - } - else - { - maxDiceDefender = maxDiceDefender + ";" + maxDiceDefenderArray[i]; - } - - } - JOptionPane.showMessageDialog(null,"Es wurde gewürfelt. Der Angreifer erreichte folgende Würfelzahlen: " + maxDiceOffender + "\n Der Verteidiger erreichte diese Würfelzahlen: " + maxDiceDefender); - diceOffender = null; - diceDefender = null; - decider(maxDiceOffenderArray, maxDiceDefenderArray); - } - - private void decider(int[] maxDiceOffender, int [] maxDiceDefender) - { - - int maxDefender = maxDiceDefender[1]; - int maxOffender = maxDiceOffender[2]; - if (maxOffender > maxDefender && defenderProvince.getEntityCount()>1) - { - int EntitiesOffender = offenderProvince.getEntityCount(); - int EntitiesDefender = defenderProvince.getEntityCount(); - defenderProvince.setEntityCount(EntitiesDefender - 1); - JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (Spieler " + offenderProvince.getOwner() + ").Dem Verteidiger (Spieler " + defenderProvince.getOwner() + ") wird eine Einheit abgezogen. Er hat nun noch " + defenderProvince.getEntityCount() + " Einheiten"); - - } - - if (maxOffender < maxDefender && offenderProvince.getEntityCount()>1) - { - int EntitiesOffender = offenderProvince.getEntityCount(); - int EntitiesDefender = defenderProvince.getEntityCount(); - offenderProvince.setEntityCount(EntitiesOffender - 1); - JOptionPane.showMessageDialog(null,"Somit gewinnt der Verteidiger (Spieler " + defenderProvince.getOwner() + ").Dem Angreifer (Spieler " + defenderProvince.getOwner() + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten"); - } - - if (maxOffender == maxDefender && offenderProvince.getEntityCount()>1) - { - int EntitiesOffender = offenderProvince.getEntityCount(); - int EntitiesDefender = defenderProvince.getEntityCount(); - offenderProvince.setEntityCount(EntitiesOffender - 1); - JOptionPane.showMessageDialog(null,"Da es unentschieden ist, gewinnt der Verteidiger (Spieler " + defenderProvince.getOwner() + ").Dem Angreifer (Spieler " + defenderProvince.getOwner() + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten"); - } - - if (maxOffender>maxDefender && defenderProvince.getEntityCount()==1) - { - defenderProvince.setOwner(offenderProvince.getOwner()); - defenderProvince.setEntityCount(0); - JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (Spieler " + offenderProvince.getOwner() + "). Die Provinz gehört fortan dem Angreifer (" + offenderProvince.getOwner() + ")"); - } - offenderProvince = null; - defenderProvince = null; - - } -} - -//Ein <3 für Felix (von Aaron)(geschrieben von Samuel)(aber Aaron wollte das ich des schreib) diff --git a/GeneralMap.java b/GeneralMap.java index 28b3be7..43d72c7 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -5,27 +5,27 @@ import greenfoot.MouseInfo.*; import javax.swing.JOptionPane; /** -Oberklasse für verschiedene Maps; -neue Maps werden als Unterklasse dieser Klasse eingefügt. + Oberklasse für verschiedene Maps; + neue Maps werden als Unterklasse dieser Klasse eingefügt. -@author GruenerWal, MaxiJohl, Felix Stupp -@version 0.3.0 - */ + @author GruenerWal, MaxiJohl, Felix Stupp + @version 0.3.0 +*/ public abstract class GeneralMap extends World implements ButtonEvent { /* - Felder, im Moment nur Anzahl der Provinzen - Später evtl. weitere Werte wie Schwierigkeit denkbar - */ + Felder, im Moment nur Anzahl der Provinzen + Später evtl. weitere Werte wie Schwierigkeit denkbar + */ private final int X_OFFSET = 160; // Verschiebt die Provinzen nach rechts private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten /* - Die einzelnen Positionen der Provinzen wird mit SCALE_VALUE/10000 multipliziert. - Dies ist nützlich, wenn die Karte beispielsweise nur noch 80% der Originalgröße bei ihrer Darstellung groß ist. - Bei diesem Beispiel wäre hier, neben dem Offset oben, der Wert 0.8 einzutragen. - */ + Die einzelnen Positionen der Provinzen wird mit SCALE_VALUE/10000 multipliziert. + Dies ist nützlich, wenn die Karte beispielsweise nur noch 80% der Originalgröße bei ihrer Darstellung groß ist. + Bei diesem Beispiel wäre hier, neben dem Offset oben, der Wert 0.8 einzutragen. + */ private final double SCALE_VALUE = 1; protected enum GameStates { @@ -39,17 +39,21 @@ public abstract class GeneralMap extends World implements ButtonEvent protected int currentPlayer = 0; protected GameStates status = GameStates.VERSCHIEBEN; + // Kampfsystem Province offenderProvince; Province defenderProvince; + String maxDiceOffender = ""; + String maxDiceDefender = ""; + // Einheiten verschieben Province savedProvince = null; /** - Erstellt eine GeneralMap mit allen Eigenschaften und initialisiert die Arrays für Provinzen und Spieler. - @param backImage Das Hintergrundbild, welches von dieser Klasse geladen und dargestellt wird. - @param playerList Die Liste mit den Namen der Spieler - @param colorList Die Liste mit den Farben der Spieler - */ + Erstellt eine GeneralMap mit allen Eigenschaften und initialisiert die Arrays für Provinzen und Spieler. + @param backImage Das Hintergrundbild, welches von dieser Klasse geladen und dargestellt wird. + @param playerList Die Liste mit den Namen der Spieler + @param colorList Die Liste mit den Farben der Spieler + */ public GeneralMap(String backImage, String[] playerList, int[] colorList) { super(1600,900,1); @@ -68,7 +72,7 @@ public abstract class GeneralMap extends World implements ButtonEvent } switch (playerCount) { case 6: - addObject(players[5],1512,350); + addObject(players[5],1512,350); case 5: addObject(players[4],1512,230); case 4: @@ -77,13 +81,13 @@ public abstract class GeneralMap extends World implements ButtonEvent addObject(players[2],82,350); case 2: addObject(players[1],82,230); - } + } addObject(players[0],82,110); - } + } /** - Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu. - */ + Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu. + */ protected void initProvinces() { for(int i = 1; i < provinces.length; i++) { addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); @@ -92,21 +96,15 @@ public abstract class GeneralMap extends World implements ButtonEvent public void act() { if(status == GameStates.KAMPF) { - if(offenderProvince == null) - { + if(offenderProvince == null) { OffenderProvince(); - } - else - { + } else { defenderProvince(); } - } else if(status == GameStates.VERSCHIEBEN) { - Province clickedProvince; - - for ( int i = 1; i <= (provinces.length - 1); i++) - { - if (provinces[i].hasClicked() == true) - { + } else if (status == GameStates.VERSCHIEBEN) { + Province clickedProvince; + for ( int i = 1; i <= (provinces.length - 1); i++) { + if (provinces[i].hasClicked() == true) { clickedProvince = provinces[i]; useProvincesToMove(clickedProvince); break; @@ -116,8 +114,8 @@ public abstract class GeneralMap extends World implements ButtonEvent } /** - Gibt die Anzahl der vorhandenen Spieler aus. - */ + Gibt die Anzahl der vorhandenen Spieler aus. + */ public int getPlayerCount() { return players.length; @@ -126,35 +124,35 @@ public abstract class GeneralMap extends World implements ButtonEvent /** Gibt den Namen des aktuellen Spielers aus. @return Der Name des aktuellen Spielers - */ + */ public String getPlayerName() { return players[currentPlayer].getDisplayName(); } /** - Gibt den Namen des Spielers aus, dem dessen ID gehört. - @param plID Die ID des zu findenden Spielers - @return Der Name des Spielers - */ + Gibt den Namen des Spielers aus, dem dessen ID gehört. + @param plID Die ID des zu findenden Spielers + @return Der Name des Spielers + */ public String getPlayerName(int plID) { return players[plID].getDisplayName(); } /** - Gibt die Anzahl der Sterne des aktuellen Spielers zurück. - @return Die Anzahl der Sterne des aktuellen Spielers - */ + Gibt die Anzahl der Sterne des aktuellen Spielers zurück. + @return Die Anzahl der Sterne des aktuellen Spielers + */ public int getPlayerStars() { return players[currentPlayer].getStars(); } /** - Gibt die ID des Spielers zurück, dem die gefragte Provinz gehört. - @param prID Die gefragte Provinz - */ + Gibt die ID des Spielers zurück, dem die gefragte Provinz gehört. + @param prID Die gefragte Provinz + */ public int getProvinceOwner(int prID) { if(prID < 1 || prID > provinces.length) { @@ -164,9 +162,9 @@ public abstract class GeneralMap extends World implements ButtonEvent } /** - Gibt eine Liste mit allen Provinzen und deren Besitzern zurück. - @return Array mit der Provinz-ID als Index und dem Besitzer als Wert - */ + Gibt eine Liste mit allen Provinzen und deren Besitzern zurück. + @return Array mit der Provinz-ID als Index und dem Besitzer als Wert + */ public int[] getProvinceOwners() { int[] prOwners = new int[provinces.length]; @@ -177,10 +175,10 @@ public abstract class GeneralMap extends World implements ButtonEvent } /** - Zählt die Anzahl der Einheiten von allen Provinzen zusammen, die einem bestimmten Spieler gehört. - @param playerID Die ID des Spielers, für den die Einheiten gezählt werden sollen. - @return Die Anzahl der Einheiten, die dem Spieler gehören. - */ + Zählt die Anzahl der Einheiten von allen Provinzen zusammen, die einem bestimmten Spieler gehört. + @param playerID Die ID des Spielers, für den die Einheiten gezählt werden sollen. + @return Die Anzahl der Einheiten, die dem Spieler gehören. + */ public int getProvinceEntityCount(int playerID) { int c = 0; @@ -213,7 +211,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if (provinces[i].hasClicked() == true) { offenderProvince = provinces[i]; - System.out.println("1"); + // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als angreifende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); } } } @@ -226,7 +224,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if (provinces[i].hasClicked() == true)//&& defenderProvince != offenderProvince) { defenderProvince = provinces[i]; - System.out.println("2"); + // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als verteidigende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); chooser(); break; } @@ -236,55 +234,92 @@ public abstract class GeneralMap extends World implements ButtonEvent private void chooser() { - Dice_Offender diceOffender = new Dice_Offender(); - int[] maxDiceOffender = diceOffender.max_offender(offenderProvince.getEntityCount()); + System.out.println("Es wird gewürfelt!"); + Dice_Offender diceOffender = new Dice_Offender(); + // System.out.println("Der Angreifer ereichte folgende Würfelzahlen:"); + int[] maxDiceOffenderArray = diceOffender.dice_offender(offenderProvince.getEntityCount()); Dice_Defender diceDefender = new Dice_Defender(); - int[] maxDiceDefender = diceDefender.max_defender(defenderProvince.getEntityCount()); - Arrays.sort(maxDiceOffender); - Arrays.sort(maxDiceDefender); - decider(maxDiceOffender, maxDiceDefender); + // System.out.println("Der Verteidiger ereichte folgende Würfelzahlen:"); + int[] maxDiceDefenderArray = diceDefender.dice_defender(defenderProvince.getEntityCount()); + Arrays.sort(maxDiceOffenderArray); + Arrays.sort(maxDiceDefenderArray); + + for(int i = 0;i<3;i++) + { + if(i == 0) + { + maxDiceOffender = "" + maxDiceOffenderArray[i]; + } + else + { + maxDiceOffender = maxDiceOffender + ";" + maxDiceOffenderArray[i]; + } + } + for(int i = 0;i<2;i++) + { + if(i == 0) + { + maxDiceDefender = "" + maxDiceDefenderArray[i]; + } + else + { + maxDiceDefender = maxDiceDefender + ";" + maxDiceDefenderArray[i]; + } + + } + JOptionPane.showMessageDialog(null,"Es wurde gewürfelt. Der Angreifer erreichte folgende Würfelzahlen: " + maxDiceOffender + "\n Der Verteidiger erreichte diese Würfelzahlen: " + maxDiceDefender); + diceOffender = null; + diceDefender = null; + decider(maxDiceOffenderArray, maxDiceDefenderArray); } private void decider(int[] maxDiceOffender, int [] maxDiceDefender) { + int maxDefender = maxDiceDefender[1]; int maxOffender = maxDiceOffender[2]; - if (maxOffender>maxDefender && defenderProvince.getEntityCount()>1) + if (maxOffender > maxDefender && defenderProvince.getEntityCount()>1) { int EntitiesOffender = offenderProvince.getEntityCount(); int EntitiesDefender = defenderProvince.getEntityCount(); - defenderProvince.setEntityCount(EntitiesDefender - 1); + defenderProvince.setEntityCount(EntitiesDefender - 1); + JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (Spieler " + offenderProvince.getOwner() + ").Dem Verteidiger (Spieler " + defenderProvince.getOwner() + ") wird eine Einheit abgezogen. Er hat nun noch " + defenderProvince.getEntityCount() + " Einheiten"); + } - if (maxOffender1) + if (maxOffender < maxDefender && offenderProvince.getEntityCount()>1) { int EntitiesOffender = offenderProvince.getEntityCount(); int EntitiesDefender = defenderProvince.getEntityCount(); - offenderProvince.setEntityCount(EntitiesOffender - 1); + offenderProvince.setEntityCount(EntitiesOffender - 1); + JOptionPane.showMessageDialog(null,"Somit gewinnt der Verteidiger (Spieler " + defenderProvince.getOwner() + ").Dem Angreifer (Spieler " + defenderProvince.getOwner() + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten"); } - if (maxOffender>maxDefender && defenderProvince.getEntityCount()==1) + if (maxOffender == maxDefender && offenderProvince.getEntityCount()>1) { - defenderProvince.setOwner(offenderProvince.getOwner()); - defenderProvince.setEntityCount(0); + int EntitiesOffender = offenderProvince.getEntityCount(); + int EntitiesDefender = defenderProvince.getEntityCount(); + offenderProvince.setEntityCount(EntitiesOffender - 1); + JOptionPane.showMessageDialog(null,"Da es unentschieden ist, gewinnt der Verteidiger (Spieler " + defenderProvince.getOwner() + ").Dem Angreifer (Spieler " + defenderProvince.getOwner() + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten"); } - if (maxOffender>maxDefender && offenderProvince.getEntityCount()==1) + if (maxOffender>maxDefender && defenderProvince.getEntityCount()==1) { - offenderProvince.setOwner(defenderProvince.getOwner()); - offenderProvince.setEntityCount(0); + defenderProvince.setOwner(offenderProvince.getOwner()); + defenderProvince.setEntityCount(0); + JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (Spieler " + offenderProvince.getOwner() + "). Die Provinz gehört fortan dem Angreifer (" + offenderProvince.getOwner() + ")"); } - System.out.println("3"); offenderProvince = null; defenderProvince = null; + } // Einheiten verschieben /** - * Nimmt zwei Provinzen entgegen, und fragt, wieviele Einheiten vom ersten zum zweiten Eintrag verschoben werden sollen. - * Ãœberprüft, ob eine Verschiebung möglich ist und führt sie bei Erfolg aus. - */ + Nimmt zwei Provinzen entgegen, und fragt, wieviele Einheiten vom ersten zum zweiten Eintrag verschoben werden sollen. + Ãœberprüft, ob eine Verschiebung möglich ist und führt sie bei Erfolg aus. + */ private void moveEntities(Province sourceProvince, Province destinationProvince) { String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?"); @@ -309,10 +344,10 @@ public abstract class GeneralMap extends World implements ButtonEvent } /** - * Speichert ein gegebene Provinz als savedProvince ein, insofern dieser Platz nicht bereits belegt ist. - * Ist er das, so wird überprüft, ob eine neue, an savedProvince angrenzende Provinz angeklickt wurde. - * Ist dies der Fall, werden beide Provinzen an moveEntities übergeben. - */ + Speichert ein gegebene Provinz als savedProvince ein, insofern dieser Platz nicht bereits belegt ist. + Ist er das, so wird überprüft, ob eine neue, an savedProvince angrenzende Provinz angeklickt wurde. + Ist dies der Fall, werden beide Provinzen an moveEntities übergeben. + */ private void useProvincesToMove(Province givenProvince) { if (savedProvince == null) From 1fece4de383b9d12908aab1dbe065d34cf53c5be Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Fri, 24 Jun 2016 23:13:29 +0200 Subject: [PATCH 08/18] =?UTF-8?q?=C3=84nderung=20des=20Bild-Verweises=20Di?= =?UTF-8?q?eser=20Bildverweis=20f=C3=BChrte=20zu=20einer=20nicht=20existen?= =?UTF-8?q?den=20Datei.=20Er=20wurde,=20um=20Ausf=C3=BChrungsfehler=20zu?= =?UTF-8?q?=20vermeiden,=20auf=20die=20richtige=20Datei=20abge=C3=A4ndert.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Map_World.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Map_World.java b/Map_World.java index b809539..0551a78 100644 --- a/Map_World.java +++ b/Map_World.java @@ -24,7 +24,7 @@ public class Map_World extends GeneralMap public Map_World(String[] playerList, int[] colorList) { super("",playerList,colorList); - setBackground("Map_World.png"); + setBackground("Risiko Karte.png"); /* Hier werden später sämtliche Provinzen der Standard-Map erstellt. Dies funktioniert folgendermassen: From 5f59d3094e7ff398792d0ab4415c813acf2eb825 Mon Sep 17 00:00:00 2001 From: MaxiJohl Date: Sun, 26 Jun 2016 17:45:52 +0200 Subject: [PATCH 09/18] Add files via upload --- GeneralMap.java | 656 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 532 insertions(+), 124 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 28de775..80f7321 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -2,133 +2,541 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.lang.Math; /** - Oberklasse für verschiedene Maps; - neue Maps werden als Unterklasse dieser Klasse eingefügt. +Oberklasse für verschiedene Maps; +neue Maps werden als Unterklasse dieser Klasse eingefügt. - @author GruenerWal, MaxiJohl, Felix Stupp - @version 0.3.0 -*/ +@author GruenerWal, MaxiJohl, Felix Stupp +@version 0.3.0 + */ public abstract class GeneralMap extends World { - /* - Felder, im Moment nur Anzahl der Provinzen - Später evtl. weitere Werte wie Schwierigkeit denkbar - */ - - private final int X_OFFSET = 0; // Verschiebt die Provinzen nach rechts - private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten - - /* - Die einzelnen Positionen der Provinzen wird mit SCALE_VALUE/10000 multipliziert. - Dies ist nützlich, wenn die Karte beispielsweise nur noch 80% der Originalgröße bei ihrer Darstellung groß ist. - Bei diesem Beispiel wäre hier, neben dem Offset oben, der Wert 0.8 einzutragen. - */ - private final double SCALE_VALUE = 1; - - protected Province[] provinces; - protected Player[] players; - - protected int currentPlayer = 0; - - /** - Erstellt eine GeneralMap mit allen Eigenschaften und initialisiert die Arrays für Provinzen und Spieler. - @param backImage Das Hintergrundbild, welches von dieser Klasse geladen und dargestellt wird. - @param playerList Die Liste mit den Namen der Spieler - @param colorList Die Liste mit den Farben der Spieler - */ - public GeneralMap(String backImage, String[] playerList, int[] colorList) - { + /* + Felder, im Moment nur Anzahl der Provinzen + Später evtl. weitere Werte wie Schwierigkeit denkbar + */ + + private final int X_OFFSET = 0; // Verschiebt die Provinzen nach rechts + private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten + + /* + Die einzelnen Positionen der Provinzen wird mit SCALE_VALUE/10000 multipliziert. + Dies ist nützlich, wenn die Karte beispielsweise nur noch 80% der Originalgröße bei ihrer Darstellung groß ist. + Bei diesem Beispiel wäre hier, neben dem Offset oben, der Wert 0.8 einzutragen. + */ + private final double SCALE_VALUE = 1; + + protected Province[] provinces; + protected Player[] players; + + protected int currentPlayer = 0; + + /** + Erstellt eine GeneralMap mit allen Eigenschaften und initialisiert die Arrays für Provinzen und Spieler. + @param backImage Das Hintergrundbild, welches von dieser Klasse geladen und dargestellt wird. + @param playerList Die Liste mit den Namen der Spieler + @param colorList Die Liste mit den Farben der Spieler + */ + public GeneralMap(String backImage, String[] playerList, int[] colorList) + { super(1600,900,1); - players = new Player[playerList.length]; - for (int i = 0; i < playerList.length; i++) { - players[i] = new Player(i,playerList[i],colorList[i]); - } - } - - /** - Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu. - */ - protected void initProvinces() { - for(int i = 1; i < provinces.length; i++) { - addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); - } - } - - /** - Gibt die Anzahl der vorhandenen Spieler aus. - */ - public int getPlayerCount() - { - return players.length; - } - - /** - Gibt den Namen des aktuellen Spielers aus. - @return Der Name des aktuellen Spielers - */ - public String getPlayerName() - { - return players[currentPlayer].getDisplayName(); - } - - /** - Gibt den Namen des Spielers aus, dem dessen ID gehört. - @param plID Die ID des zu findenden Spielers - @return Der Name des Spielers - */ - public String getPlayerName(int plID) - { - return players[plID].getDisplayName(); - } - - /** - Gibt die Anzahl der Sterne des aktuellen Spielers zurück. - @return Die Anzahl der Sterne des aktuellen Spielers - */ - public int getPlayerStars() - { - return players[currentPlayer].getStars(); - } - - /** - Gibt die ID des Spielers zurück, dem die gefragte Provinz gehört. - @param prID Die gefragte Provinz - */ - public int getProvinceOwner(int prID) - { - if(prID < 1 || prID > provinces.length) { - return -1; - } - return provinces[prID].getOwner(); - } - - /** - Gibt eine Liste mit allen Provinzen und deren Besitzern zurück. - @return Array mit der Provinz-ID als Index und dem Besitzer als Wert - */ - public int[] getProvinceOwners() - { - int[] prOwners = new int[provinces.length]; - for (int i = 1; i > provinces.length; i++) { - prOwners[i] = provinces[i].getOwner(); - } - return prOwners; - } - - /** - Zählt die Anzahl der Einheiten von allen Provinzen zusammen, die einem bestimmten Spieler gehört. - @param playerID Die ID des Spielers, für den die Einheiten gezählt werden sollen. - @return Die Anzahl der Einheiten, die dem Spieler gehören. - */ - public int getProvinceEntityCount(int playerID) - { - int c = 0; - for (int i = 1; i > provinces.length; i++) { - if(provinces[i].getOwner() == playerID) { - c = c + provinces[i].getEntityCount(); - } - } - return c; - } + players = new Player[playerList.length]; + for (int i = 0; i < playerList.length; i++) { + players[i] = new Player(i,playerList[i],colorList[i]); + } + } + + /** + Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu. + */ + protected void initProvinces() { + for(int i = 1; i < provinces.length; i++) { + addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); + } + /** + Legt die Startprovincen der Spieler fest. + */ + if(players.length==3) + { + /*Spieler 1 darf beginnen Hauptstadt: 40 + * Spieler 2 ist als zweites dran Hauptstadt: 20 + * Spieler 3 ist als drittes dran und bekommt eine Karte Hauptstadt: 9 + */ + + provinces[1].setOwner(1); + provinces[1].setEntityCount(1); + provinces[1].redrawProvince(); + provinces[2].setOwner(3); + provinces[2].setEntityCount(2); + provinces[2].redrawProvince(); + provinces[3].setOwner(2); + provinces[3].setEntityCount(2); + provinces[3].redrawProvince(); + provinces[4].setOwner(2); //Fabrik + provinces[4].setEntityCount(1); + provinces[4].redrawProvince(); + provinces[5].setOwner(1);//Fabrik + provinces[5].setEntityCount(1); + provinces[5].redrawProvince(); + provinces[6].setOwner(1);//Fabrik + provinces[6].setEntityCount(1); + provinces[6].redrawProvince(); + provinces[7].setOwner(3); + provinces[7].setEntityCount(2); + provinces[7].redrawProvince(); + provinces[8].setOwner(1); + provinces[8].setEntityCount(1); + provinces[8].redrawProvince(); + provinces[9].setOwner(3); + provinces[9].setEntityCount(4); + provinces[9].redrawProvince(); + provinces[10].setOwner(3); + provinces[10].setEntityCount(1); + provinces[10].redrawProvince(); + provinces[11].setOwner(2);//Fabrik + provinces[11].setEntityCount(2); + provinces[11].redrawProvince(); + provinces[12].setOwner(1); + provinces[12].setEntityCount(2); + provinces[12].redrawProvince(); + provinces[13].setOwner(1);//Fabrik + provinces[13].setEntityCount(2); + provinces[13].redrawProvince(); + provinces[14].setOwner(3);//Fabrik + provinces[14].setEntityCount(3); + provinces[14].redrawProvince(); + provinces[15].setOwner(3);//Fabrik + provinces[15].setEntityCount(3); + provinces[15].redrawProvince(); + provinces[16].setOwner(3);//Fabrik + provinces[16].setEntityCount(3); + provinces[16].redrawProvince(); + provinces[17].setOwner(1); + provinces[17].setEntityCount(1); + provinces[17].redrawProvince(); + provinces[18].setOwner(2); + provinces[18].setEntityCount(2); + provinces[18].redrawProvince(); + provinces[19].setOwner(2);//Fabrik + provinces[19].setEntityCount(4); + provinces[19].redrawProvince(); + provinces[20].setOwner(2); + provinces[20].setEntityCount(3); + provinces[20].redrawProvince(); + provinces[21].setOwner(1); + provinces[21].setEntityCount(1); + provinces[21].redrawProvince(); + provinces[22].setOwner(3);//Fabrik + provinces[22].setEntityCount(4); + provinces[22].redrawProvince(); + provinces[23].setOwner(1); + provinces[23].setEntityCount(2); + provinces[23].redrawProvince(); + provinces[24].setOwner(3); + provinces[24].setEntityCount(4); + provinces[24].redrawProvince(); + provinces[25].setOwner(2); + provinces[25].setEntityCount(2); + provinces[25].redrawProvince(); + provinces[26].setOwner(2);//Fabrik + provinces[26].setEntityCount(1); + provinces[26].redrawProvince(); + provinces[27].setOwner(3); + provinces[27].setEntityCount(1); + provinces[27].redrawProvince(); + provinces[28].setOwner(1);//Fabrik + provinces[28].setEntityCount(3); + provinces[28].redrawProvince(); + provinces[29].setOwner(1);//Fabrik + provinces[29].setEntityCount(3); + provinces[29].redrawProvince(); + provinces[30].setOwner(1); + provinces[30].setEntityCount(4); + provinces[30].redrawProvince(); + provinces[31].setOwner(3); + provinces[31].setEntityCount(1); + provinces[31].redrawProvince(); + provinces[32].setOwner(2); + provinces[32].setEntityCount(1); + provinces[32].redrawProvince(); + provinces[33].setOwner(2); + provinces[33].setEntityCount(1); + provinces[33].redrawProvince(); + provinces[34].setOwner(1); + provinces[34].setEntityCount(2); + provinces[34].redrawProvince(); + provinces[35].setOwner(2); + provinces[35].setEntityCount(2); + provinces[35].redrawProvince(); + provinces[36].setOwner(3); + provinces[36].setEntityCount(1); + provinces[36].redrawProvince(); + provinces[37].setOwner(2); + provinces[37].setEntityCount(2); + provinces[37].redrawProvince(); + provinces[38].setOwner(2);//Fabrik + provinces[38].setEntityCount(4); + provinces[38].redrawProvince(); + provinces[39].setOwner(2); + provinces[39].setEntityCount(3); + provinces[39].redrawProvince(); + provinces[40].setOwner(1); + provinces[40].setEntityCount(4); + provinces[40].redrawProvince(); + provinces[41].setOwner(3);//Fabrik + provinces[41].setEntityCount(1); + provinces[41].redrawProvince(); + provinces[42].setOwner(1); + provinces[42].setEntityCount(2); + provinces[42].redrawProvince(); + } + if(players.length==4) + { + /*Spieler 1 darf beginnen Hauptstadt:22 + * Spieler 2 ist als zweites dran Hauptstadt:20 + * Spieler 3 ist als drittes dran und bekommt eine Karte Hauptstadt:2 + * Spieler 4 ist als viertes dran und bekommt eine Karte Hauptstadt:39 + */ + + provinces[1].setOwner(1); + provinces[1].setEntityCount(1); + provinces[1].redrawProvince(); + provinces[2].setOwner(3); + provinces[2].setEntityCount(3); + provinces[2].redrawProvince(); + provinces[3].setOwner(3); + provinces[3].setEntityCount(3); + provinces[3].redrawProvince(); + provinces[4].setOwner(3);//Fabrik + provinces[4].setEntityCount(2); + provinces[4].redrawProvince(); + provinces[5].setOwner(3);//Fabrik + provinces[5].setEntityCount(2); + provinces[5].redrawProvince(); + provinces[6].setOwner(3);//Fabrik + provinces[6].setEntityCount(3); + provinces[6].redrawProvince(); + provinces[7].setOwner(2); + provinces[7].setEntityCount(2); + provinces[7].redrawProvince(); + provinces[8].setOwner(1); + provinces[8].setEntityCount(2); + provinces[8].redrawProvince(); + provinces[9].setOwner(2); + provinces[9].setEntityCount(2); + provinces[9].redrawProvince(); + provinces[10].setOwner(3);//Fabrik + provinces[10].setEntityCount(2); + provinces[10].redrawProvince(); + provinces[11].setOwner(2);//Fabrik + provinces[11].setEntityCount(3); + provinces[11].redrawProvince(); + provinces[12].setOwner(3); + provinces[12].setEntityCount(2); + provinces[12].redrawProvince(); + provinces[13].setOwner(2);//Fabrik + provinces[13].setEntityCount(3); + provinces[13].redrawProvince(); + provinces[14].setOwner(1);//Fabrik + provinces[14].setEntityCount(3); + provinces[14].redrawProvince(); + provinces[15].setOwner(1);//Fabrik + provinces[15].setEntityCount(3); + provinces[15].redrawProvince(); + provinces[16].setOwner(1);//Fabrik + provinces[16].setEntityCount(3); + provinces[16].redrawProvince(); + provinces[17].setOwner(3); + provinces[17].setEntityCount(2); + provinces[17].redrawProvince(); + provinces[18].setOwner(4); + provinces[18].setEntityCount(2); + provinces[18].redrawProvince(); + provinces[19].setOwner(2);//Fabrik + provinces[19].setEntityCount(4); + provinces[19].redrawProvince(); + provinces[20].setOwner(2); + provinces[20].setEntityCount(4); + provinces[20].redrawProvince(); + provinces[21].setOwner(1); + provinces[21].setEntityCount(1); + provinces[21].redrawProvince(); + provinces[22].setOwner(1);//Fabrik + provinces[22].setEntityCount(2); + provinces[22].redrawProvince(); + provinces[23].setOwner(1); + provinces[23].setEntityCount(5); + provinces[23].redrawProvince(); + provinces[24].setOwner(1); + provinces[24].setEntityCount(3); + provinces[24].redrawProvince(); + provinces[25].setOwner(2); + provinces[25].setEntityCount(2); + provinces[25].redrawProvince(); + provinces[26].setOwner(4);//Fabrik + provinces[26].setEntityCount(3); + provinces[26].redrawProvince(); + provinces[27].setOwner(4); + provinces[27].setEntityCount(1); + provinces[27].redrawProvince(); + provinces[28].setOwner(4);//Fabrik + provinces[28].setEntityCount(2); + provinces[28].redrawProvince(); + provinces[29].setOwner(2);//Fabrik + provinces[29].setEntityCount(2); + provinces[29].redrawProvince(); + provinces[30].setOwner(2); + provinces[30].setEntityCount(2); + provinces[30].redrawProvince(); + provinces[31].setOwner(4); + provinces[31].setEntityCount(1); + provinces[31].redrawProvince(); + provinces[32].setOwner(2); + provinces[32].setEntityCount(1); + provinces[32].redrawProvince(); + provinces[33].setOwner(4); + provinces[33].setEntityCount(5); + provinces[33].redrawProvince(); + provinces[34].setOwner(3); + provinces[34].setEntityCount(2); + provinces[34].redrawProvince(); + provinces[35].setOwner(3); + provinces[35].setEntityCount(2); + provinces[35].redrawProvince(); + provinces[36].setOwner(3); + provinces[36].setEntityCount(2); + provinces[36].redrawProvince(); + provinces[37].setOwner(4); + provinces[37].setEntityCount(1); + provinces[37].redrawProvince(); + provinces[38].setOwner(4);//Fabrik + provinces[38].setEntityCount(1); + provinces[38].redrawProvince(); + provinces[39].setOwner(4); + provinces[39].setEntityCount(4); + provinces[39].redrawProvince(); + provinces[40].setOwner(4); + provinces[40].setEntityCount(1); + provinces[40].redrawProvince(); + provinces[41].setOwner(1);//Fabrik + provinces[41].setEntityCount(2); + provinces[41].redrawProvince(); + provinces[42].setOwner(4); + provinces[42].setEntityCount(4); + provinces[42].redrawProvince(); + } + if(players.length==5) + { + /*Spieler 1 darf beginnen Hauptstadt:13 + * Spieler 2 ist als zweites dran Hauptstadt:7 + * Spieler 3 ist als drittes dran und bekommt eine Karte Hauptstadt:22 + * Spieler 4 ist als viertes dran und bekommt eine Karte Hauptstadt:20 + * Spieler 5 ist als fünftes dran und bekommt zwei Karte Hauptstadt:41 + */ + + provinces[1].setOwner(3); + provinces[1].setEntityCount(1); + provinces[1].redrawProvince(); + provinces[2].setOwner(1); + provinces[2].setEntityCount(2); + provinces[2].redrawProvince(); + provinces[3].setOwner(4); + provinces[3].setEntityCount(2); + provinces[3].redrawProvince(); + provinces[4].setOwner(2);//Fabrik + provinces[4].setEntityCount(2); + provinces[4].redrawProvince(); + provinces[5].setOwner(2);//Fabrik + provinces[5].setEntityCount(2); + provinces[5].redrawProvince(); + provinces[6].setOwner(2);//Fabrik + provinces[6].setEntityCount(2); + provinces[6].redrawProvince(); + provinces[7].setOwner(2); + provinces[7].setEntityCount(4); + provinces[7].redrawProvince(); + provinces[8].setOwner(4); + provinces[8].setEntityCount(1); + provinces[8].redrawProvince(); + provinces[9].setOwner(2); + provinces[9].setEntityCount(2); + provinces[9].redrawProvince(); + provinces[10].setOwner(4); + provinces[10].setEntityCount(1); + provinces[10].redrawProvince(); + provinces[11].setOwner(4);//Fabrik + provinces[11].setEntityCount(3); + provinces[11].redrawProvince(); + provinces[12].setOwner(3); + provinces[12].setEntityCount(1); + provinces[12].redrawProvince(); + provinces[13].setOwner(1); + provinces[13].setEntityCount(4); + provinces[13].redrawProvince(); + provinces[14].setOwner(1);//Fabrik + provinces[14].setEntityCount(2); + provinces[14].redrawProvince(); + provinces[15].setOwner(3);//Fabrik + provinces[15].setEntityCount(3); + provinces[15].redrawProvince(); + provinces[16].setOwner(1);//Fabrik + provinces[16].setEntityCount(2); + provinces[16].redrawProvince(); + provinces[17].setOwner(2); + provinces[17].setEntityCount(3); + provinces[17].redrawProvince(); + provinces[18].setOwner(4); + provinces[18].setEntityCount(2); + provinces[18].redrawProvince(); + provinces[19].setOwner(4);//Fabrik + provinces[19].setEntityCount(5); + provinces[19].redrawProvince(); + provinces[20].setOwner(4); + provinces[20].setEntityCount(3); + provinces[20].redrawProvince(); + provinces[21].setOwner(2); + provinces[21].setEntityCount(2); + provinces[21].redrawProvince(); + provinces[22].setOwner(3);//Fabrik + provinces[22].setEntityCount(5); + provinces[22].redrawProvince(); + provinces[23].setOwner(3); + provinces[23].setEntityCount(3); + provinces[23].redrawProvince(); + provinces[24].setOwner(1); + provinces[24].setEntityCount(2); + provinces[24].redrawProvince(); + provinces[25].setOwner(3); + provinces[25].setEntityCount(3); + provinces[25].redrawProvince(); + provinces[26].setOwner(3);//Fabrik + provinces[26].setEntityCount(2); + provinces[26].redrawProvince(); + provinces[27].setOwner(2); + provinces[27].setEntityCount(3); + provinces[27].redrawProvince(); + provinces[28].setOwner(5);//Fabrik + provinces[28].setEntityCount(2); + provinces[28].redrawProvince(); + provinces[29].setOwner(5);//Fabrik + provinces[29].setEntityCount(3); + provinces[29].redrawProvince(); + provinces[30].setOwner(5); + provinces[30].setEntityCount(3); + provinces[30].redrawProvince(); + provinces[31].setOwner(1); + provinces[31].setEntityCount(3); + provinces[31].redrawProvince(); + provinces[32].setOwner(1); + provinces[32].setEntityCount(3); + provinces[32].redrawProvince(); + provinces[33].setOwner(4); + provinces[33].setEntityCount(1); + provinces[33].redrawProvince(); + provinces[34].setOwner(5); + provinces[34].setEntityCount(1); + provinces[34].redrawProvince(); + provinces[35].setOwner(5); + provinces[35].setEntityCount(1); + provinces[35].redrawProvince(); + provinces[36].setOwner(5); + provinces[36].setEntityCount(2); + provinces[36].redrawProvince(); + provinces[37].setOwner(3); + provinces[37].setEntityCount(2); + provinces[37].redrawProvince(); + provinces[38].setOwner(4);//Fabrik + provinces[38].setEntityCount(2); + provinces[38].redrawProvince(); + provinces[39].setOwner(5); + provinces[39].setEntityCount(2); + provinces[39].redrawProvince(); + provinces[40].setOwner(1); + provinces[40].setEntityCount(2); + provinces[40].redrawProvince(); + provinces[41].setOwner(5);//Fabrik + provinces[41].setEntityCount(4); + provinces[41].redrawProvince(); + provinces[42].setOwner(5); + provinces[42].setEntityCount(2); + provinces[42].redrawProvince(); + } + } + + /** + Gibt die Anzahl der vorhandenen Spieler aus. + */ + public int getPlayerCount() + { + return players.length; + } + + /** + Gibt den Namen des aktuellen Spielers aus. + @return Der Name des aktuellen Spielers + */ + public String getPlayerName() + { + return players[currentPlayer].getDisplayName(); + } + + /** + Gibt den Namen des Spielers aus, dem dessen ID gehört. + @param plID Die ID des zu findenden Spielers + @return Der Name des Spielers + */ + public String getPlayerName(int plID) + { + return players[plID].getDisplayName(); + } + + /** + Gibt die Anzahl der Sterne des aktuellen Spielers zurück. + @return Die Anzahl der Sterne des aktuellen Spielers + */ + public int getPlayerStars() + { + return players[currentPlayer].getStars(); + } + + /** + Gibt die ID des Spielers zurück, dem die gefragte Provinz gehört. + @param prID Die gefragte Provinz + */ + public int getProvinceOwner(int prID) + { + if(prID < 1 || prID > provinces.length) { + return -1; + } + return provinces[prID].getOwner(); + } + + /** + Gibt eine Liste mit allen Provinzen und deren Besitzern zurück. + @return Array mit der Provinz-ID als Index und dem Besitzer als Wert + */ + public int[] getProvinceOwners() + { + int[] prOwners = new int[provinces.length]; + for (int i = 1; i > provinces.length; i++) { + prOwners[i] = provinces[i].getOwner(); + } + return prOwners; + } + + /** + Zählt die Anzahl der Einheiten von allen Provinzen zusammen, die einem bestimmten Spieler gehört. + @param playerID Die ID des Spielers, für den die Einheiten gezählt werden sollen. + @return Die Anzahl der Einheiten, die dem Spieler gehören. + */ + public int getProvinceEntityCount(int playerID) + { + int c = 0; + for (int i = 1; i > provinces.length; i++) { + if(provinces[i].getOwner() == playerID) { + c = c + provinces[i].getEntityCount(); + } + } + return c; + } } From 6067ac44730a85b19a66f951841e234feb7a708a Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Mon, 27 Jun 2016 09:39:09 +0200 Subject: [PATCH 10/18] Anpassung an den letzten Pull Request - Tabs angepasst - abgeschnittenen If-Block korrigiert --- GeneralMap.java | 800 ++++++++++++++++++++++++------------------------ 1 file changed, 401 insertions(+), 399 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 0edc697..20bb4ce 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -92,405 +92,407 @@ public abstract class GeneralMap extends World implements ButtonEvent for(int i = 1; i < provinces.length; i++) { addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); } - provinces[1].setOwner(1); - provinces[1].setEntityCount(1); - provinces[1].redrawProvince(); - provinces[2].setOwner(3); - provinces[2].setEntityCount(2); - provinces[2].redrawProvince(); - provinces[3].setOwner(2); - provinces[3].setEntityCount(2); - provinces[3].redrawProvince(); - provinces[4].setOwner(2); //Fabrik - provinces[4].setEntityCount(1); - provinces[4].redrawProvince(); - provinces[5].setOwner(1);//Fabrik - provinces[5].setEntityCount(1); - provinces[5].redrawProvince(); - provinces[6].setOwner(1);//Fabrik - provinces[6].setEntityCount(1); - provinces[6].redrawProvince(); - provinces[7].setOwner(3); - provinces[7].setEntityCount(2); - provinces[7].redrawProvince(); - provinces[8].setOwner(1); - provinces[8].setEntityCount(1); - provinces[8].redrawProvince(); - provinces[9].setOwner(3); - provinces[9].setEntityCount(4); - provinces[9].redrawProvince(); - provinces[10].setOwner(3); - provinces[10].setEntityCount(1); - provinces[10].redrawProvince(); - provinces[11].setOwner(2);//Fabrik - provinces[11].setEntityCount(2); - provinces[11].redrawProvince(); - provinces[12].setOwner(1); - provinces[12].setEntityCount(2); - provinces[12].redrawProvince(); - provinces[13].setOwner(1);//Fabrik - provinces[13].setEntityCount(2); - provinces[13].redrawProvince(); - provinces[14].setOwner(3);//Fabrik - provinces[14].setEntityCount(3); - provinces[14].redrawProvince(); - provinces[15].setOwner(3);//Fabrik - provinces[15].setEntityCount(3); - provinces[15].redrawProvince(); - provinces[16].setOwner(3);//Fabrik - provinces[16].setEntityCount(3); - provinces[16].redrawProvince(); - provinces[17].setOwner(1); - provinces[17].setEntityCount(1); - provinces[17].redrawProvince(); - provinces[18].setOwner(2); - provinces[18].setEntityCount(2); - provinces[18].redrawProvince(); - provinces[19].setOwner(2);//Fabrik - provinces[19].setEntityCount(4); - provinces[19].redrawProvince(); - provinces[20].setOwner(2); - provinces[20].setEntityCount(3); - provinces[20].redrawProvince(); - provinces[21].setOwner(1); - provinces[21].setEntityCount(1); - provinces[21].redrawProvince(); - provinces[22].setOwner(3);//Fabrik - provinces[22].setEntityCount(4); - provinces[22].redrawProvince(); - provinces[23].setOwner(1); - provinces[23].setEntityCount(2); - provinces[23].redrawProvince(); - provinces[24].setOwner(3); - provinces[24].setEntityCount(4); - provinces[24].redrawProvince(); - provinces[25].setOwner(2); - provinces[25].setEntityCount(2); - provinces[25].redrawProvince(); - provinces[26].setOwner(2);//Fabrik - provinces[26].setEntityCount(1); - provinces[26].redrawProvince(); - provinces[27].setOwner(3); - provinces[27].setEntityCount(1); - provinces[27].redrawProvince(); - provinces[28].setOwner(1);//Fabrik - provinces[28].setEntityCount(3); - provinces[28].redrawProvince(); - provinces[29].setOwner(1);//Fabrik - provinces[29].setEntityCount(3); - provinces[29].redrawProvince(); - provinces[30].setOwner(1); - provinces[30].setEntityCount(4); - provinces[30].redrawProvince(); - provinces[31].setOwner(3); - provinces[31].setEntityCount(1); - provinces[31].redrawProvince(); - provinces[32].setOwner(2); - provinces[32].setEntityCount(1); - provinces[32].redrawProvince(); - provinces[33].setOwner(2); - provinces[33].setEntityCount(1); - provinces[33].redrawProvince(); - provinces[34].setOwner(1); - provinces[34].setEntityCount(2); - provinces[34].redrawProvince(); - provinces[35].setOwner(2); - provinces[35].setEntityCount(2); - provinces[35].redrawProvince(); - provinces[36].setOwner(3); - provinces[36].setEntityCount(1); - provinces[36].redrawProvince(); - provinces[37].setOwner(2); - provinces[37].setEntityCount(2); - provinces[37].redrawProvince(); - provinces[38].setOwner(2);//Fabrik - provinces[38].setEntityCount(4); - provinces[38].redrawProvince(); - provinces[39].setOwner(2); - provinces[39].setEntityCount(3); - provinces[39].redrawProvince(); - provinces[40].setOwner(1); - provinces[40].setEntityCount(4); - provinces[40].redrawProvince(); - provinces[41].setOwner(3);//Fabrik - provinces[41].setEntityCount(1); - provinces[41].redrawProvince(); - provinces[42].setOwner(1); - provinces[42].setEntityCount(2); - provinces[42].redrawProvince(); - } - if(players.length==4) - { - /*Spieler 1 darf beginnen Hauptstadt:22 - * Spieler 2 ist als zweites dran Hauptstadt:20 - * Spieler 3 ist als drittes dran und bekommt eine Karte Hauptstadt:2 - * Spieler 4 ist als viertes dran und bekommt eine Karte Hauptstadt:39 - */ - - provinces[1].setOwner(1); - provinces[1].setEntityCount(1); - provinces[1].redrawProvince(); - provinces[2].setOwner(3); - provinces[2].setEntityCount(3); - provinces[2].redrawProvince(); - provinces[3].setOwner(3); - provinces[3].setEntityCount(3); - provinces[3].redrawProvince(); - provinces[4].setOwner(3);//Fabrik - provinces[4].setEntityCount(2); - provinces[4].redrawProvince(); - provinces[5].setOwner(3);//Fabrik - provinces[5].setEntityCount(2); - provinces[5].redrawProvince(); - provinces[6].setOwner(3);//Fabrik - provinces[6].setEntityCount(3); - provinces[6].redrawProvince(); - provinces[7].setOwner(2); - provinces[7].setEntityCount(2); - provinces[7].redrawProvince(); - provinces[8].setOwner(1); - provinces[8].setEntityCount(2); - provinces[8].redrawProvince(); - provinces[9].setOwner(2); - provinces[9].setEntityCount(2); - provinces[9].redrawProvince(); - provinces[10].setOwner(3);//Fabrik - provinces[10].setEntityCount(2); - provinces[10].redrawProvince(); - provinces[11].setOwner(2);//Fabrik - provinces[11].setEntityCount(3); - provinces[11].redrawProvince(); - provinces[12].setOwner(3); - provinces[12].setEntityCount(2); - provinces[12].redrawProvince(); - provinces[13].setOwner(2);//Fabrik - provinces[13].setEntityCount(3); - provinces[13].redrawProvince(); - provinces[14].setOwner(1);//Fabrik - provinces[14].setEntityCount(3); - provinces[14].redrawProvince(); - provinces[15].setOwner(1);//Fabrik - provinces[15].setEntityCount(3); - provinces[15].redrawProvince(); - provinces[16].setOwner(1);//Fabrik - provinces[16].setEntityCount(3); - provinces[16].redrawProvince(); - provinces[17].setOwner(3); - provinces[17].setEntityCount(2); - provinces[17].redrawProvince(); - provinces[18].setOwner(4); - provinces[18].setEntityCount(2); - provinces[18].redrawProvince(); - provinces[19].setOwner(2);//Fabrik - provinces[19].setEntityCount(4); - provinces[19].redrawProvince(); - provinces[20].setOwner(2); - provinces[20].setEntityCount(4); - provinces[20].redrawProvince(); - provinces[21].setOwner(1); - provinces[21].setEntityCount(1); - provinces[21].redrawProvince(); - provinces[22].setOwner(1);//Fabrik - provinces[22].setEntityCount(2); - provinces[22].redrawProvince(); - provinces[23].setOwner(1); - provinces[23].setEntityCount(5); - provinces[23].redrawProvince(); - provinces[24].setOwner(1); - provinces[24].setEntityCount(3); - provinces[24].redrawProvince(); - provinces[25].setOwner(2); - provinces[25].setEntityCount(2); - provinces[25].redrawProvince(); - provinces[26].setOwner(4);//Fabrik - provinces[26].setEntityCount(3); - provinces[26].redrawProvince(); - provinces[27].setOwner(4); - provinces[27].setEntityCount(1); - provinces[27].redrawProvince(); - provinces[28].setOwner(4);//Fabrik - provinces[28].setEntityCount(2); - provinces[28].redrawProvince(); - provinces[29].setOwner(2);//Fabrik - provinces[29].setEntityCount(2); - provinces[29].redrawProvince(); - provinces[30].setOwner(2); - provinces[30].setEntityCount(2); - provinces[30].redrawProvince(); - provinces[31].setOwner(4); - provinces[31].setEntityCount(1); - provinces[31].redrawProvince(); - provinces[32].setOwner(2); - provinces[32].setEntityCount(1); - provinces[32].redrawProvince(); - provinces[33].setOwner(4); - provinces[33].setEntityCount(5); - provinces[33].redrawProvince(); - provinces[34].setOwner(3); - provinces[34].setEntityCount(2); - provinces[34].redrawProvince(); - provinces[35].setOwner(3); - provinces[35].setEntityCount(2); - provinces[35].redrawProvince(); - provinces[36].setOwner(3); - provinces[36].setEntityCount(2); - provinces[36].redrawProvince(); - provinces[37].setOwner(4); - provinces[37].setEntityCount(1); - provinces[37].redrawProvince(); - provinces[38].setOwner(4);//Fabrik - provinces[38].setEntityCount(1); - provinces[38].redrawProvince(); - provinces[39].setOwner(4); - provinces[39].setEntityCount(4); - provinces[39].redrawProvince(); - provinces[40].setOwner(4); - provinces[40].setEntityCount(1); - provinces[40].redrawProvince(); - provinces[41].setOwner(1);//Fabrik - provinces[41].setEntityCount(2); - provinces[41].redrawProvince(); - provinces[42].setOwner(4); - provinces[42].setEntityCount(4); - provinces[42].redrawProvince(); - } - if(players.length==5) - { - /*Spieler 1 darf beginnen Hauptstadt:13 - * Spieler 2 ist als zweites dran Hauptstadt:7 - * Spieler 3 ist als drittes dran und bekommt eine Karte Hauptstadt:22 - * Spieler 4 ist als viertes dran und bekommt eine Karte Hauptstadt:20 - * Spieler 5 ist als fünftes dran und bekommt zwei Karte Hauptstadt:41 - */ - - provinces[1].setOwner(3); - provinces[1].setEntityCount(1); - provinces[1].redrawProvince(); - provinces[2].setOwner(1); - provinces[2].setEntityCount(2); - provinces[2].redrawProvince(); - provinces[3].setOwner(4); - provinces[3].setEntityCount(2); - provinces[3].redrawProvince(); - provinces[4].setOwner(2);//Fabrik - provinces[4].setEntityCount(2); - provinces[4].redrawProvince(); - provinces[5].setOwner(2);//Fabrik - provinces[5].setEntityCount(2); - provinces[5].redrawProvince(); - provinces[6].setOwner(2);//Fabrik - provinces[6].setEntityCount(2); - provinces[6].redrawProvince(); - provinces[7].setOwner(2); - provinces[7].setEntityCount(4); - provinces[7].redrawProvince(); - provinces[8].setOwner(4); - provinces[8].setEntityCount(1); - provinces[8].redrawProvince(); - provinces[9].setOwner(2); - provinces[9].setEntityCount(2); - provinces[9].redrawProvince(); - provinces[10].setOwner(4); - provinces[10].setEntityCount(1); - provinces[10].redrawProvince(); - provinces[11].setOwner(4);//Fabrik - provinces[11].setEntityCount(3); - provinces[11].redrawProvince(); - provinces[12].setOwner(3); - provinces[12].setEntityCount(1); - provinces[12].redrawProvince(); - provinces[13].setOwner(1); - provinces[13].setEntityCount(4); - provinces[13].redrawProvince(); - provinces[14].setOwner(1);//Fabrik - provinces[14].setEntityCount(2); - provinces[14].redrawProvince(); - provinces[15].setOwner(3);//Fabrik - provinces[15].setEntityCount(3); - provinces[15].redrawProvince(); - provinces[16].setOwner(1);//Fabrik - provinces[16].setEntityCount(2); - provinces[16].redrawProvince(); - provinces[17].setOwner(2); - provinces[17].setEntityCount(3); - provinces[17].redrawProvince(); - provinces[18].setOwner(4); - provinces[18].setEntityCount(2); - provinces[18].redrawProvince(); - provinces[19].setOwner(4);//Fabrik - provinces[19].setEntityCount(5); - provinces[19].redrawProvince(); - provinces[20].setOwner(4); - provinces[20].setEntityCount(3); - provinces[20].redrawProvince(); - provinces[21].setOwner(2); - provinces[21].setEntityCount(2); - provinces[21].redrawProvince(); - provinces[22].setOwner(3);//Fabrik - provinces[22].setEntityCount(5); - provinces[22].redrawProvince(); - provinces[23].setOwner(3); - provinces[23].setEntityCount(3); - provinces[23].redrawProvince(); - provinces[24].setOwner(1); - provinces[24].setEntityCount(2); - provinces[24].redrawProvince(); - provinces[25].setOwner(3); - provinces[25].setEntityCount(3); - provinces[25].redrawProvince(); - provinces[26].setOwner(3);//Fabrik - provinces[26].setEntityCount(2); - provinces[26].redrawProvince(); - provinces[27].setOwner(2); - provinces[27].setEntityCount(3); - provinces[27].redrawProvince(); - provinces[28].setOwner(5);//Fabrik - provinces[28].setEntityCount(2); - provinces[28].redrawProvince(); - provinces[29].setOwner(5);//Fabrik - provinces[29].setEntityCount(3); - provinces[29].redrawProvince(); - provinces[30].setOwner(5); - provinces[30].setEntityCount(3); - provinces[30].redrawProvince(); - provinces[31].setOwner(1); - provinces[31].setEntityCount(3); - provinces[31].redrawProvince(); - provinces[32].setOwner(1); - provinces[32].setEntityCount(3); - provinces[32].redrawProvince(); - provinces[33].setOwner(4); - provinces[33].setEntityCount(1); - provinces[33].redrawProvince(); - provinces[34].setOwner(5); - provinces[34].setEntityCount(1); - provinces[34].redrawProvince(); - provinces[35].setOwner(5); - provinces[35].setEntityCount(1); - provinces[35].redrawProvince(); - provinces[36].setOwner(5); - provinces[36].setEntityCount(2); - provinces[36].redrawProvince(); - provinces[37].setOwner(3); - provinces[37].setEntityCount(2); - provinces[37].redrawProvince(); - provinces[38].setOwner(4);//Fabrik - provinces[38].setEntityCount(2); - provinces[38].redrawProvince(); - provinces[39].setOwner(5); - provinces[39].setEntityCount(2); - provinces[39].redrawProvince(); - provinces[40].setOwner(1); - provinces[40].setEntityCount(2); - provinces[40].redrawProvince(); - provinces[41].setOwner(5);//Fabrik - provinces[41].setEntityCount(4); - provinces[41].redrawProvince(); - provinces[42].setOwner(5); - provinces[42].setEntityCount(2); - provinces[42].redrawProvince(); - } - } + if(players.length == 3) { + provinces[1].setOwner(1); + provinces[1].setEntityCount(1); + provinces[1].redrawProvince(); + provinces[2].setOwner(3); + provinces[2].setEntityCount(2); + provinces[2].redrawProvince(); + provinces[3].setOwner(2); + provinces[3].setEntityCount(2); + provinces[3].redrawProvince(); + provinces[4].setOwner(2); //Fabrik + provinces[4].setEntityCount(1); + provinces[4].redrawProvince(); + provinces[5].setOwner(1);//Fabrik + provinces[5].setEntityCount(1); + provinces[5].redrawProvince(); + provinces[6].setOwner(1);//Fabrik + provinces[6].setEntityCount(1); + provinces[6].redrawProvince(); + provinces[7].setOwner(3); + provinces[7].setEntityCount(2); + provinces[7].redrawProvince(); + provinces[8].setOwner(1); + provinces[8].setEntityCount(1); + provinces[8].redrawProvince(); + provinces[9].setOwner(3); + provinces[9].setEntityCount(4); + provinces[9].redrawProvince(); + provinces[10].setOwner(3); + provinces[10].setEntityCount(1); + provinces[10].redrawProvince(); + provinces[11].setOwner(2);//Fabrik + provinces[11].setEntityCount(2); + provinces[11].redrawProvince(); + provinces[12].setOwner(1); + provinces[12].setEntityCount(2); + provinces[12].redrawProvince(); + provinces[13].setOwner(1);//Fabrik + provinces[13].setEntityCount(2); + provinces[13].redrawProvince(); + provinces[14].setOwner(3);//Fabrik + provinces[14].setEntityCount(3); + provinces[14].redrawProvince(); + provinces[15].setOwner(3);//Fabrik + provinces[15].setEntityCount(3); + provinces[15].redrawProvince(); + provinces[16].setOwner(3);//Fabrik + provinces[16].setEntityCount(3); + provinces[16].redrawProvince(); + provinces[17].setOwner(1); + provinces[17].setEntityCount(1); + provinces[17].redrawProvince(); + provinces[18].setOwner(2); + provinces[18].setEntityCount(2); + provinces[18].redrawProvince(); + provinces[19].setOwner(2);//Fabrik + provinces[19].setEntityCount(4); + provinces[19].redrawProvince(); + provinces[20].setOwner(2); + provinces[20].setEntityCount(3); + provinces[20].redrawProvince(); + provinces[21].setOwner(1); + provinces[21].setEntityCount(1); + provinces[21].redrawProvince(); + provinces[22].setOwner(3);//Fabrik + provinces[22].setEntityCount(4); + provinces[22].redrawProvince(); + provinces[23].setOwner(1); + provinces[23].setEntityCount(2); + provinces[23].redrawProvince(); + provinces[24].setOwner(3); + provinces[24].setEntityCount(4); + provinces[24].redrawProvince(); + provinces[25].setOwner(2); + provinces[25].setEntityCount(2); + provinces[25].redrawProvince(); + provinces[26].setOwner(2);//Fabrik + provinces[26].setEntityCount(1); + provinces[26].redrawProvince(); + provinces[27].setOwner(3); + provinces[27].setEntityCount(1); + provinces[27].redrawProvince(); + provinces[28].setOwner(1);//Fabrik + provinces[28].setEntityCount(3); + provinces[28].redrawProvince(); + provinces[29].setOwner(1);//Fabrik + provinces[29].setEntityCount(3); + provinces[29].redrawProvince(); + provinces[30].setOwner(1); + provinces[30].setEntityCount(4); + provinces[30].redrawProvince(); + provinces[31].setOwner(3); + provinces[31].setEntityCount(1); + provinces[31].redrawProvince(); + provinces[32].setOwner(2); + provinces[32].setEntityCount(1); + provinces[32].redrawProvince(); + provinces[33].setOwner(2); + provinces[33].setEntityCount(1); + provinces[33].redrawProvince(); + provinces[34].setOwner(1); + provinces[34].setEntityCount(2); + provinces[34].redrawProvince(); + provinces[35].setOwner(2); + provinces[35].setEntityCount(2); + provinces[35].redrawProvince(); + provinces[36].setOwner(3); + provinces[36].setEntityCount(1); + provinces[36].redrawProvince(); + provinces[37].setOwner(2); + provinces[37].setEntityCount(2); + provinces[37].redrawProvince(); + provinces[38].setOwner(2);//Fabrik + provinces[38].setEntityCount(4); + provinces[38].redrawProvince(); + provinces[39].setOwner(2); + provinces[39].setEntityCount(3); + provinces[39].redrawProvince(); + provinces[40].setOwner(1); + provinces[40].setEntityCount(4); + provinces[40].redrawProvince(); + provinces[41].setOwner(3);//Fabrik + provinces[41].setEntityCount(1); + provinces[41].redrawProvince(); + provinces[42].setOwner(1); + provinces[42].setEntityCount(2); + provinces[42].redrawProvince(); + } + if(players.length==4) + { + /* + Spieler 1 darf beginnen; Hauptstadt:22 + Spieler 2 ist als zweites dran; Hauptstadt:20 + Spieler 3 ist als drittes dran und bekommt eine Karte; Hauptstadt:2 + Spieler 4 ist als viertes dran und bekommt eine Karte; Hauptstadt:39 + */ + + provinces[1].setOwner(1); + provinces[1].setEntityCount(1); + provinces[1].redrawProvince(); + provinces[2].setOwner(3); + provinces[2].setEntityCount(3); + provinces[2].redrawProvince(); + provinces[3].setOwner(3); + provinces[3].setEntityCount(3); + provinces[3].redrawProvince(); + provinces[4].setOwner(3);//Fabrik + provinces[4].setEntityCount(2); + provinces[4].redrawProvince(); + provinces[5].setOwner(3);//Fabrik + provinces[5].setEntityCount(2); + provinces[5].redrawProvince(); + provinces[6].setOwner(3);//Fabrik + provinces[6].setEntityCount(3); + provinces[6].redrawProvince(); + provinces[7].setOwner(2); + provinces[7].setEntityCount(2); + provinces[7].redrawProvince(); + provinces[8].setOwner(1); + provinces[8].setEntityCount(2); + provinces[8].redrawProvince(); + provinces[9].setOwner(2); + provinces[9].setEntityCount(2); + provinces[9].redrawProvince(); + provinces[10].setOwner(3);//Fabrik + provinces[10].setEntityCount(2); + provinces[10].redrawProvince(); + provinces[11].setOwner(2);//Fabrik + provinces[11].setEntityCount(3); + provinces[11].redrawProvince(); + provinces[12].setOwner(3); + provinces[12].setEntityCount(2); + provinces[12].redrawProvince(); + provinces[13].setOwner(2);//Fabrik + provinces[13].setEntityCount(3); + provinces[13].redrawProvince(); + provinces[14].setOwner(1);//Fabrik + provinces[14].setEntityCount(3); + provinces[14].redrawProvince(); + provinces[15].setOwner(1);//Fabrik + provinces[15].setEntityCount(3); + provinces[15].redrawProvince(); + provinces[16].setOwner(1);//Fabrik + provinces[16].setEntityCount(3); + provinces[16].redrawProvince(); + provinces[17].setOwner(3); + provinces[17].setEntityCount(2); + provinces[17].redrawProvince(); + provinces[18].setOwner(4); + provinces[18].setEntityCount(2); + provinces[18].redrawProvince(); + provinces[19].setOwner(2);//Fabrik + provinces[19].setEntityCount(4); + provinces[19].redrawProvince(); + provinces[20].setOwner(2); + provinces[20].setEntityCount(4); + provinces[20].redrawProvince(); + provinces[21].setOwner(1); + provinces[21].setEntityCount(1); + provinces[21].redrawProvince(); + provinces[22].setOwner(1);//Fabrik + provinces[22].setEntityCount(2); + provinces[22].redrawProvince(); + provinces[23].setOwner(1); + provinces[23].setEntityCount(5); + provinces[23].redrawProvince(); + provinces[24].setOwner(1); + provinces[24].setEntityCount(3); + provinces[24].redrawProvince(); + provinces[25].setOwner(2); + provinces[25].setEntityCount(2); + provinces[25].redrawProvince(); + provinces[26].setOwner(4);//Fabrik + provinces[26].setEntityCount(3); + provinces[26].redrawProvince(); + provinces[27].setOwner(4); + provinces[27].setEntityCount(1); + provinces[27].redrawProvince(); + provinces[28].setOwner(4);//Fabrik + provinces[28].setEntityCount(2); + provinces[28].redrawProvince(); + provinces[29].setOwner(2);//Fabrik + provinces[29].setEntityCount(2); + provinces[29].redrawProvince(); + provinces[30].setOwner(2); + provinces[30].setEntityCount(2); + provinces[30].redrawProvince(); + provinces[31].setOwner(4); + provinces[31].setEntityCount(1); + provinces[31].redrawProvince(); + provinces[32].setOwner(2); + provinces[32].setEntityCount(1); + provinces[32].redrawProvince(); + provinces[33].setOwner(4); + provinces[33].setEntityCount(5); + provinces[33].redrawProvince(); + provinces[34].setOwner(3); + provinces[34].setEntityCount(2); + provinces[34].redrawProvince(); + provinces[35].setOwner(3); + provinces[35].setEntityCount(2); + provinces[35].redrawProvince(); + provinces[36].setOwner(3); + provinces[36].setEntityCount(2); + provinces[36].redrawProvince(); + provinces[37].setOwner(4); + provinces[37].setEntityCount(1); + provinces[37].redrawProvince(); + provinces[38].setOwner(4);//Fabrik + provinces[38].setEntityCount(1); + provinces[38].redrawProvince(); + provinces[39].setOwner(4); + provinces[39].setEntityCount(4); + provinces[39].redrawProvince(); + provinces[40].setOwner(4); + provinces[40].setEntityCount(1); + provinces[40].redrawProvince(); + provinces[41].setOwner(1);//Fabrik + provinces[41].setEntityCount(2); + provinces[41].redrawProvince(); + provinces[42].setOwner(4); + provinces[42].setEntityCount(4); + provinces[42].redrawProvince(); + } + if(players.length==5) + { + /*Spieler 1 darf beginnen Hauptstadt:13 + * Spieler 2 ist als zweites dran Hauptstadt:7 + * Spieler 3 ist als drittes dran und bekommt eine Karte Hauptstadt:22 + * Spieler 4 ist als viertes dran und bekommt eine Karte Hauptstadt:20 + * Spieler 5 ist als fünftes dran und bekommt zwei Karte Hauptstadt:41 + */ + + provinces[1].setOwner(3); + provinces[1].setEntityCount(1); + provinces[1].redrawProvince(); + provinces[2].setOwner(1); + provinces[2].setEntityCount(2); + provinces[2].redrawProvince(); + provinces[3].setOwner(4); + provinces[3].setEntityCount(2); + provinces[3].redrawProvince(); + provinces[4].setOwner(2);//Fabrik + provinces[4].setEntityCount(2); + provinces[4].redrawProvince(); + provinces[5].setOwner(2);//Fabrik + provinces[5].setEntityCount(2); + provinces[5].redrawProvince(); + provinces[6].setOwner(2);//Fabrik + provinces[6].setEntityCount(2); + provinces[6].redrawProvince(); + provinces[7].setOwner(2); + provinces[7].setEntityCount(4); + provinces[7].redrawProvince(); + provinces[8].setOwner(4); + provinces[8].setEntityCount(1); + provinces[8].redrawProvince(); + provinces[9].setOwner(2); + provinces[9].setEntityCount(2); + provinces[9].redrawProvince(); + provinces[10].setOwner(4); + provinces[10].setEntityCount(1); + provinces[10].redrawProvince(); + provinces[11].setOwner(4);//Fabrik + provinces[11].setEntityCount(3); + provinces[11].redrawProvince(); + provinces[12].setOwner(3); + provinces[12].setEntityCount(1); + provinces[12].redrawProvince(); + provinces[13].setOwner(1); + provinces[13].setEntityCount(4); + provinces[13].redrawProvince(); + provinces[14].setOwner(1);//Fabrik + provinces[14].setEntityCount(2); + provinces[14].redrawProvince(); + provinces[15].setOwner(3);//Fabrik + provinces[15].setEntityCount(3); + provinces[15].redrawProvince(); + provinces[16].setOwner(1);//Fabrik + provinces[16].setEntityCount(2); + provinces[16].redrawProvince(); + provinces[17].setOwner(2); + provinces[17].setEntityCount(3); + provinces[17].redrawProvince(); + provinces[18].setOwner(4); + provinces[18].setEntityCount(2); + provinces[18].redrawProvince(); + provinces[19].setOwner(4);//Fabrik + provinces[19].setEntityCount(5); + provinces[19].redrawProvince(); + provinces[20].setOwner(4); + provinces[20].setEntityCount(3); + provinces[20].redrawProvince(); + provinces[21].setOwner(2); + provinces[21].setEntityCount(2); + provinces[21].redrawProvince(); + provinces[22].setOwner(3);//Fabrik + provinces[22].setEntityCount(5); + provinces[22].redrawProvince(); + provinces[23].setOwner(3); + provinces[23].setEntityCount(3); + provinces[23].redrawProvince(); + provinces[24].setOwner(1); + provinces[24].setEntityCount(2); + provinces[24].redrawProvince(); + provinces[25].setOwner(3); + provinces[25].setEntityCount(3); + provinces[25].redrawProvince(); + provinces[26].setOwner(3);//Fabrik + provinces[26].setEntityCount(2); + provinces[26].redrawProvince(); + provinces[27].setOwner(2); + provinces[27].setEntityCount(3); + provinces[27].redrawProvince(); + provinces[28].setOwner(5);//Fabrik + provinces[28].setEntityCount(2); + provinces[28].redrawProvince(); + provinces[29].setOwner(5);//Fabrik + provinces[29].setEntityCount(3); + provinces[29].redrawProvince(); + provinces[30].setOwner(5); + provinces[30].setEntityCount(3); + provinces[30].redrawProvince(); + provinces[31].setOwner(1); + provinces[31].setEntityCount(3); + provinces[31].redrawProvince(); + provinces[32].setOwner(1); + provinces[32].setEntityCount(3); + provinces[32].redrawProvince(); + provinces[33].setOwner(4); + provinces[33].setEntityCount(1); + provinces[33].redrawProvince(); + provinces[34].setOwner(5); + provinces[34].setEntityCount(1); + provinces[34].redrawProvince(); + provinces[35].setOwner(5); + provinces[35].setEntityCount(1); + provinces[35].redrawProvince(); + provinces[36].setOwner(5); + provinces[36].setEntityCount(2); + provinces[36].redrawProvince(); + provinces[37].setOwner(3); + provinces[37].setEntityCount(2); + provinces[37].redrawProvince(); + provinces[38].setOwner(4);//Fabrik + provinces[38].setEntityCount(2); + provinces[38].redrawProvince(); + provinces[39].setOwner(5); + provinces[39].setEntityCount(2); + provinces[39].redrawProvince(); + provinces[40].setOwner(1); + provinces[40].setEntityCount(2); + provinces[40].redrawProvince(); + provinces[41].setOwner(5);//Fabrik + provinces[41].setEntityCount(4); + provinces[41].redrawProvince(); + provinces[42].setOwner(5); + provinces[42].setEntityCount(2); + provinces[42].redrawProvince(); + } + } public void act() { if(status == GameStates.KAMPF) { From 8b6044f74929a166ebffe4ff6639d8e02470fb61 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Mon, 27 Jun 2016 10:18:37 +0200 Subject: [PATCH 11/18] Zweite Verbesserung nach Pull Request + Anfang Vereinfachung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Verbesserung: Abgeschnittener Kommentar ergänzt - If-Blöcke zu einem If-Block kombiniert mit "else if" - Anfang Kürzung der vielen Befehle durch ein Ersetzen mit **ownerL** und **entitiesL** als *int[]* --- GeneralMap.java | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 20bb4ce..5c375bb 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -92,7 +92,17 @@ public abstract class GeneralMap extends World implements ButtonEvent for(int i = 1; i < provinces.length; i++) { addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); } - if(players.length == 3) { + /* + Legt die Startprovincen der Spieler fest. + */ + int[] ownerL; + int[] entitiesL; + if(players.length==3) { + /* + Spieler 1 darf beginnen; Hauptstadt: 40 + Spieler 2 ist als zweites dran; Hauptstadt: 20 + Spieler 3 ist als drittes dran und bekommt eine Karte; Hauptstadt: 9 + */ provinces[1].setOwner(1); provinces[1].setEntityCount(1); provinces[1].redrawProvince(); @@ -219,16 +229,13 @@ public abstract class GeneralMap extends World implements ButtonEvent provinces[42].setOwner(1); provinces[42].setEntityCount(2); provinces[42].redrawProvince(); - } - if(players.length==4) - { + } else if(players.length==4) { /* Spieler 1 darf beginnen; Hauptstadt:22 Spieler 2 ist als zweites dran; Hauptstadt:20 Spieler 3 ist als drittes dran und bekommt eine Karte; Hauptstadt:2 Spieler 4 ist als viertes dran und bekommt eine Karte; Hauptstadt:39 */ - provinces[1].setOwner(1); provinces[1].setEntityCount(1); provinces[1].redrawProvince(); @@ -355,16 +362,16 @@ public abstract class GeneralMap extends World implements ButtonEvent provinces[42].setOwner(4); provinces[42].setEntityCount(4); provinces[42].redrawProvince(); - } - if(players.length==5) - { - /*Spieler 1 darf beginnen Hauptstadt:13 - * Spieler 2 ist als zweites dran Hauptstadt:7 - * Spieler 3 ist als drittes dran und bekommt eine Karte Hauptstadt:22 - * Spieler 4 ist als viertes dran und bekommt eine Karte Hauptstadt:20 - * Spieler 5 ist als fünftes dran und bekommt zwei Karte Hauptstadt:41 - */ - + } else if(players.length==5) { + /* + Spieler 1 darf beginnen; Hauptstadt:13 + Spieler 2 ist als zweites dran; Hauptstadt:7 + Spieler 3 ist als drittes dran und bekommt eine Karte; Hauptstadt:22 + Spieler 4 ist als viertes dran und bekommt eine Karte; Hauptstadt:20 + Spieler 5 ist als fünftes dran und bekommt zwei Karte; Hauptstadt:41 + */ + ownerL = {3,1,4,2,2,2,2,4,2,4,4,3,1,1,3,1,2,4,4,4,2,3,3,1,3,3,2,5,5,5,1,1,4,5,5,5,3,4,5,1,5,5}; + entitiesL = {}; provinces[1].setOwner(3); provinces[1].setEntityCount(1); provinces[1].redrawProvince(); @@ -492,6 +499,11 @@ public abstract class GeneralMap extends World implements ButtonEvent provinces[42].setEntityCount(2); provinces[42].redrawProvince(); } + for(int i = 1; i < provinces.length; i++) { + provinces[i].setOwner(ownerL[i-1]); + provinces[i].setEntityCount(entitiesL[i-1]); + provinces[i].redrawProvince(); + } } public void act() { From 3575aeb53a16b8c0f9445225c5513c29764e4d25 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 28 Jun 2016 08:51:55 +0200 Subject: [PATCH 12/18] Update Utils.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neue Methode "cutArray" für *Province* hinzugefügt. --- Utils.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Utils.java b/Utils.java index fbc668a..fe3cd3c 100644 --- a/Utils.java +++ b/Utils.java @@ -1,6 +1,7 @@ import greenfoot.*; import java.awt.Color; import java.util.*; +import java.lang.Object; /** Diese Klasse enthält nur statische Funktionen, welche für euch als Unterstützung gedacht sind. Damit könnt ihr dann hoffentlich viele Code-Zeilen sparen. :) @@ -82,4 +83,24 @@ public final class Utils { } catch (java.lang.NumberFormatException e) {} return i; } + + public static Province[] cutArray(Province[] obA) { + boolean[] l = new boolean[obA.length]; + int c = 0; + for(int i = 0; i < obA.length; i++) { + if(obA[i] != null) { + l[i] = true; + c++; + } + } + int p = 0; + Province[] ret = new Province[c]; + for(int i = 0; i < l.length; i++) { + if(l[i]) { + ret[p] = obA[i]; + p++; + } + } + return ret; + } } From abebbf3ea59138ce63eac81f08fdfcdbc26a0f8e Mon Sep 17 00:00:00 2001 From: MaxiJohl Date: Tue, 28 Jun 2016 09:09:54 +0200 Subject: [PATCH 13/18] Add files via upload --- ArmyPlacer.java | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 ArmyPlacer.java diff --git a/ArmyPlacer.java b/ArmyPlacer.java new file mode 100644 index 0000000..e707ed4 --- /dev/null +++ b/ArmyPlacer.java @@ -0,0 +1,74 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class ArmyPlacer here. + * + * @author GruenerWal, MaxiJohl + * @version 1.0.0 + */ +public class ArmyPlacer extends Map_World +{ + + + public int armiesToPlace; + public int armyMinimum; + + + /** + * Constructor for objects of class ArmyPlacer. + * + */ + public ArmyPlacer(String[] a1, int[] a2) + { + super(a1,a2); + // Hi. + // Dies + // ist + // ein + // unnützer + // Kommentar + // um + // Zeilen + // zu + // farmen + // :) + // Mit + // freundlichen + // Grüßen + // , + // GruenerWal + } + + + public int calculateArmies() + { + armiesToPlace = armyMinimum; + + armiesToPlace = armiesToPlace + Math.round(players[currentPlayer].getProvinceCount() / 3); + + return 0; + } + + + public Province[] giveContinentArray(int cID) + { + Province[] savedProvinces = new Province[provinceCount +1]; + Province[] continentProvinces; + for (int i = 1; i <= provinceCount; i++) + { + if (provinces[i].getContinentID() == cID) + { + savedProvinces[i] = provinces[i]; + } + } + + return Utils.cutArray(savedProvinces); + + } + + + public void placeArmies() + { + + } +} From 47da46ec33a46826c7afc9c9ac2df400e50b82f1 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Wed, 29 Jun 2016 19:11:33 +0200 Subject: [PATCH 14/18] =?UTF-8?q?Vereinfachung=20erweitert/verbessert=20Bi?= =?UTF-8?q?sher=20unvollst=C3=A4ndige=20und=20daher=20fehlerverursachende?= =?UTF-8?q?=20Vereinfachungen=20wurden=20entfernt.=20Alle=20zuk=C3=BCnftig?= =?UTF-8?q?en=20=C3=84nderungen=20f=C3=BCr=20partialle=20Vereinfachungen?= =?UTF-8?q?=20werden=20fehlerfrei=20sein!=20*.redrawProvince()=20f=C3=BCr?= =?UTF-8?q?=20jede=20Provinz=20wurde=20entfernt=20zusammen=20mit=20der=20F?= =?UTF-8?q?or-Schleife,=20die=20dies=20erledigen=20sollte,=20da=20die=20Pr?= =?UTF-8?q?ovinz=20dies=20selbst=20beim=20Festlegen=20einer=20Einheitenanz?= =?UTF-8?q?ahl=20macht.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GeneralMap.java | 133 ------------------------------------------------ 1 file changed, 133 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 5c375bb..5cf4c62 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -105,130 +105,88 @@ public abstract class GeneralMap extends World implements ButtonEvent */ provinces[1].setOwner(1); provinces[1].setEntityCount(1); - provinces[1].redrawProvince(); provinces[2].setOwner(3); provinces[2].setEntityCount(2); - provinces[2].redrawProvince(); provinces[3].setOwner(2); provinces[3].setEntityCount(2); - provinces[3].redrawProvince(); provinces[4].setOwner(2); //Fabrik provinces[4].setEntityCount(1); - provinces[4].redrawProvince(); provinces[5].setOwner(1);//Fabrik provinces[5].setEntityCount(1); - provinces[5].redrawProvince(); provinces[6].setOwner(1);//Fabrik provinces[6].setEntityCount(1); - provinces[6].redrawProvince(); provinces[7].setOwner(3); provinces[7].setEntityCount(2); - provinces[7].redrawProvince(); provinces[8].setOwner(1); provinces[8].setEntityCount(1); - provinces[8].redrawProvince(); provinces[9].setOwner(3); provinces[9].setEntityCount(4); - provinces[9].redrawProvince(); provinces[10].setOwner(3); provinces[10].setEntityCount(1); - provinces[10].redrawProvince(); provinces[11].setOwner(2);//Fabrik provinces[11].setEntityCount(2); - provinces[11].redrawProvince(); provinces[12].setOwner(1); provinces[12].setEntityCount(2); - provinces[12].redrawProvince(); provinces[13].setOwner(1);//Fabrik provinces[13].setEntityCount(2); - provinces[13].redrawProvince(); provinces[14].setOwner(3);//Fabrik provinces[14].setEntityCount(3); - provinces[14].redrawProvince(); provinces[15].setOwner(3);//Fabrik provinces[15].setEntityCount(3); - provinces[15].redrawProvince(); provinces[16].setOwner(3);//Fabrik provinces[16].setEntityCount(3); - provinces[16].redrawProvince(); provinces[17].setOwner(1); provinces[17].setEntityCount(1); - provinces[17].redrawProvince(); provinces[18].setOwner(2); provinces[18].setEntityCount(2); - provinces[18].redrawProvince(); provinces[19].setOwner(2);//Fabrik provinces[19].setEntityCount(4); - provinces[19].redrawProvince(); provinces[20].setOwner(2); provinces[20].setEntityCount(3); - provinces[20].redrawProvince(); provinces[21].setOwner(1); provinces[21].setEntityCount(1); - provinces[21].redrawProvince(); provinces[22].setOwner(3);//Fabrik provinces[22].setEntityCount(4); - provinces[22].redrawProvince(); provinces[23].setOwner(1); provinces[23].setEntityCount(2); - provinces[23].redrawProvince(); provinces[24].setOwner(3); provinces[24].setEntityCount(4); - provinces[24].redrawProvince(); provinces[25].setOwner(2); provinces[25].setEntityCount(2); - provinces[25].redrawProvince(); provinces[26].setOwner(2);//Fabrik provinces[26].setEntityCount(1); - provinces[26].redrawProvince(); provinces[27].setOwner(3); provinces[27].setEntityCount(1); - provinces[27].redrawProvince(); provinces[28].setOwner(1);//Fabrik provinces[28].setEntityCount(3); - provinces[28].redrawProvince(); provinces[29].setOwner(1);//Fabrik provinces[29].setEntityCount(3); - provinces[29].redrawProvince(); provinces[30].setOwner(1); provinces[30].setEntityCount(4); - provinces[30].redrawProvince(); provinces[31].setOwner(3); provinces[31].setEntityCount(1); - provinces[31].redrawProvince(); provinces[32].setOwner(2); provinces[32].setEntityCount(1); - provinces[32].redrawProvince(); provinces[33].setOwner(2); provinces[33].setEntityCount(1); - provinces[33].redrawProvince(); provinces[34].setOwner(1); provinces[34].setEntityCount(2); - provinces[34].redrawProvince(); provinces[35].setOwner(2); provinces[35].setEntityCount(2); - provinces[35].redrawProvince(); provinces[36].setOwner(3); provinces[36].setEntityCount(1); - provinces[36].redrawProvince(); provinces[37].setOwner(2); provinces[37].setEntityCount(2); - provinces[37].redrawProvince(); provinces[38].setOwner(2);//Fabrik provinces[38].setEntityCount(4); - provinces[38].redrawProvince(); provinces[39].setOwner(2); provinces[39].setEntityCount(3); - provinces[39].redrawProvince(); provinces[40].setOwner(1); provinces[40].setEntityCount(4); - provinces[40].redrawProvince(); provinces[41].setOwner(3);//Fabrik provinces[41].setEntityCount(1); - provinces[41].redrawProvince(); provinces[42].setOwner(1); provinces[42].setEntityCount(2); - provinces[42].redrawProvince(); } else if(players.length==4) { /* Spieler 1 darf beginnen; Hauptstadt:22 @@ -238,130 +196,88 @@ public abstract class GeneralMap extends World implements ButtonEvent */ provinces[1].setOwner(1); provinces[1].setEntityCount(1); - provinces[1].redrawProvince(); provinces[2].setOwner(3); provinces[2].setEntityCount(3); - provinces[2].redrawProvince(); provinces[3].setOwner(3); provinces[3].setEntityCount(3); - provinces[3].redrawProvince(); provinces[4].setOwner(3);//Fabrik provinces[4].setEntityCount(2); - provinces[4].redrawProvince(); provinces[5].setOwner(3);//Fabrik provinces[5].setEntityCount(2); - provinces[5].redrawProvince(); provinces[6].setOwner(3);//Fabrik provinces[6].setEntityCount(3); - provinces[6].redrawProvince(); provinces[7].setOwner(2); provinces[7].setEntityCount(2); - provinces[7].redrawProvince(); provinces[8].setOwner(1); provinces[8].setEntityCount(2); - provinces[8].redrawProvince(); provinces[9].setOwner(2); provinces[9].setEntityCount(2); - provinces[9].redrawProvince(); provinces[10].setOwner(3);//Fabrik provinces[10].setEntityCount(2); - provinces[10].redrawProvince(); provinces[11].setOwner(2);//Fabrik provinces[11].setEntityCount(3); - provinces[11].redrawProvince(); provinces[12].setOwner(3); provinces[12].setEntityCount(2); - provinces[12].redrawProvince(); provinces[13].setOwner(2);//Fabrik provinces[13].setEntityCount(3); - provinces[13].redrawProvince(); provinces[14].setOwner(1);//Fabrik provinces[14].setEntityCount(3); - provinces[14].redrawProvince(); provinces[15].setOwner(1);//Fabrik provinces[15].setEntityCount(3); - provinces[15].redrawProvince(); provinces[16].setOwner(1);//Fabrik provinces[16].setEntityCount(3); - provinces[16].redrawProvince(); provinces[17].setOwner(3); provinces[17].setEntityCount(2); - provinces[17].redrawProvince(); provinces[18].setOwner(4); provinces[18].setEntityCount(2); - provinces[18].redrawProvince(); provinces[19].setOwner(2);//Fabrik provinces[19].setEntityCount(4); - provinces[19].redrawProvince(); provinces[20].setOwner(2); provinces[20].setEntityCount(4); - provinces[20].redrawProvince(); provinces[21].setOwner(1); provinces[21].setEntityCount(1); - provinces[21].redrawProvince(); provinces[22].setOwner(1);//Fabrik provinces[22].setEntityCount(2); - provinces[22].redrawProvince(); provinces[23].setOwner(1); provinces[23].setEntityCount(5); - provinces[23].redrawProvince(); provinces[24].setOwner(1); provinces[24].setEntityCount(3); - provinces[24].redrawProvince(); provinces[25].setOwner(2); provinces[25].setEntityCount(2); - provinces[25].redrawProvince(); provinces[26].setOwner(4);//Fabrik provinces[26].setEntityCount(3); - provinces[26].redrawProvince(); provinces[27].setOwner(4); provinces[27].setEntityCount(1); - provinces[27].redrawProvince(); provinces[28].setOwner(4);//Fabrik provinces[28].setEntityCount(2); - provinces[28].redrawProvince(); provinces[29].setOwner(2);//Fabrik provinces[29].setEntityCount(2); - provinces[29].redrawProvince(); provinces[30].setOwner(2); provinces[30].setEntityCount(2); - provinces[30].redrawProvince(); provinces[31].setOwner(4); provinces[31].setEntityCount(1); - provinces[31].redrawProvince(); provinces[32].setOwner(2); provinces[32].setEntityCount(1); - provinces[32].redrawProvince(); provinces[33].setOwner(4); provinces[33].setEntityCount(5); - provinces[33].redrawProvince(); provinces[34].setOwner(3); provinces[34].setEntityCount(2); - provinces[34].redrawProvince(); provinces[35].setOwner(3); provinces[35].setEntityCount(2); - provinces[35].redrawProvince(); provinces[36].setOwner(3); provinces[36].setEntityCount(2); - provinces[36].redrawProvince(); provinces[37].setOwner(4); provinces[37].setEntityCount(1); - provinces[37].redrawProvince(); provinces[38].setOwner(4);//Fabrik provinces[38].setEntityCount(1); - provinces[38].redrawProvince(); provinces[39].setOwner(4); provinces[39].setEntityCount(4); - provinces[39].redrawProvince(); provinces[40].setOwner(4); provinces[40].setEntityCount(1); - provinces[40].redrawProvince(); provinces[41].setOwner(1);//Fabrik provinces[41].setEntityCount(2); - provinces[41].redrawProvince(); provinces[42].setOwner(4); provinces[42].setEntityCount(4); - provinces[42].redrawProvince(); } else if(players.length==5) { /* Spieler 1 darf beginnen; Hauptstadt:13 @@ -370,139 +286,90 @@ public abstract class GeneralMap extends World implements ButtonEvent Spieler 4 ist als viertes dran und bekommt eine Karte; Hauptstadt:20 Spieler 5 ist als fünftes dran und bekommt zwei Karte; Hauptstadt:41 */ - ownerL = {3,1,4,2,2,2,2,4,2,4,4,3,1,1,3,1,2,4,4,4,2,3,3,1,3,3,2,5,5,5,1,1,4,5,5,5,3,4,5,1,5,5}; - entitiesL = {}; provinces[1].setOwner(3); provinces[1].setEntityCount(1); - provinces[1].redrawProvince(); provinces[2].setOwner(1); provinces[2].setEntityCount(2); - provinces[2].redrawProvince(); provinces[3].setOwner(4); provinces[3].setEntityCount(2); - provinces[3].redrawProvince(); provinces[4].setOwner(2);//Fabrik provinces[4].setEntityCount(2); - provinces[4].redrawProvince(); provinces[5].setOwner(2);//Fabrik provinces[5].setEntityCount(2); - provinces[5].redrawProvince(); provinces[6].setOwner(2);//Fabrik provinces[6].setEntityCount(2); - provinces[6].redrawProvince(); provinces[7].setOwner(2); provinces[7].setEntityCount(4); - provinces[7].redrawProvince(); provinces[8].setOwner(4); provinces[8].setEntityCount(1); - provinces[8].redrawProvince(); provinces[9].setOwner(2); provinces[9].setEntityCount(2); - provinces[9].redrawProvince(); provinces[10].setOwner(4); provinces[10].setEntityCount(1); - provinces[10].redrawProvince(); provinces[11].setOwner(4);//Fabrik provinces[11].setEntityCount(3); - provinces[11].redrawProvince(); provinces[12].setOwner(3); provinces[12].setEntityCount(1); - provinces[12].redrawProvince(); provinces[13].setOwner(1); provinces[13].setEntityCount(4); - provinces[13].redrawProvince(); provinces[14].setOwner(1);//Fabrik provinces[14].setEntityCount(2); - provinces[14].redrawProvince(); provinces[15].setOwner(3);//Fabrik provinces[15].setEntityCount(3); - provinces[15].redrawProvince(); provinces[16].setOwner(1);//Fabrik provinces[16].setEntityCount(2); - provinces[16].redrawProvince(); provinces[17].setOwner(2); provinces[17].setEntityCount(3); - provinces[17].redrawProvince(); provinces[18].setOwner(4); provinces[18].setEntityCount(2); - provinces[18].redrawProvince(); provinces[19].setOwner(4);//Fabrik provinces[19].setEntityCount(5); - provinces[19].redrawProvince(); provinces[20].setOwner(4); provinces[20].setEntityCount(3); - provinces[20].redrawProvince(); provinces[21].setOwner(2); provinces[21].setEntityCount(2); - provinces[21].redrawProvince(); provinces[22].setOwner(3);//Fabrik provinces[22].setEntityCount(5); - provinces[22].redrawProvince(); provinces[23].setOwner(3); provinces[23].setEntityCount(3); - provinces[23].redrawProvince(); provinces[24].setOwner(1); provinces[24].setEntityCount(2); - provinces[24].redrawProvince(); provinces[25].setOwner(3); provinces[25].setEntityCount(3); - provinces[25].redrawProvince(); provinces[26].setOwner(3);//Fabrik provinces[26].setEntityCount(2); - provinces[26].redrawProvince(); provinces[27].setOwner(2); provinces[27].setEntityCount(3); - provinces[27].redrawProvince(); provinces[28].setOwner(5);//Fabrik provinces[28].setEntityCount(2); - provinces[28].redrawProvince(); provinces[29].setOwner(5);//Fabrik provinces[29].setEntityCount(3); - provinces[29].redrawProvince(); provinces[30].setOwner(5); provinces[30].setEntityCount(3); - provinces[30].redrawProvince(); provinces[31].setOwner(1); provinces[31].setEntityCount(3); - provinces[31].redrawProvince(); provinces[32].setOwner(1); provinces[32].setEntityCount(3); - provinces[32].redrawProvince(); provinces[33].setOwner(4); provinces[33].setEntityCount(1); - provinces[33].redrawProvince(); provinces[34].setOwner(5); provinces[34].setEntityCount(1); - provinces[34].redrawProvince(); provinces[35].setOwner(5); provinces[35].setEntityCount(1); - provinces[35].redrawProvince(); provinces[36].setOwner(5); provinces[36].setEntityCount(2); - provinces[36].redrawProvince(); provinces[37].setOwner(3); provinces[37].setEntityCount(2); - provinces[37].redrawProvince(); provinces[38].setOwner(4);//Fabrik provinces[38].setEntityCount(2); - provinces[38].redrawProvince(); provinces[39].setOwner(5); provinces[39].setEntityCount(2); - provinces[39].redrawProvince(); provinces[40].setOwner(1); provinces[40].setEntityCount(2); - provinces[40].redrawProvince(); provinces[41].setOwner(5);//Fabrik provinces[41].setEntityCount(4); - provinces[41].redrawProvince(); provinces[42].setOwner(5); provinces[42].setEntityCount(2); - provinces[42].redrawProvince(); - } - for(int i = 1; i < provinces.length; i++) { - provinces[i].setOwner(ownerL[i-1]); - provinces[i].setEntityCount(entitiesL[i-1]); - provinces[i].redrawProvince(); } } From 6591e7b999b1ae95d8c79ed252ec78617f9c2b96 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Wed, 29 Jun 2016 19:41:11 +0200 Subject: [PATCH 15/18] =?UTF-8?q?Debug=20Klassen=20hinzugef=C3=BCgt=20Die?= =?UTF-8?q?=20Debug=20Klassen=20"Debug3",=20"Debug4"=20und=20"Debug5"=20st?= =?UTF-8?q?ellen=20eine=20Map=5FWorld=20dar,=20welcher=20direkt=20die=20Na?= =?UTF-8?q?men=20und=20Farben=20einer=20entsprechenden=20Anzahl=20an=20Spi?= =?UTF-8?q?elern=20(3,4,5)=20=C3=BCbergeben=20wird.=20Damit=20sollte=20das?= =?UTF-8?q?=20Debuggen=20wesentlich=20schneller=20umsetzbar=20sein.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Debug3.java | 8 ++++++++ Debug4.java | 8 ++++++++ Debug5.java | 8 ++++++++ 3 files changed, 24 insertions(+) create mode 100644 Debug3.java create mode 100644 Debug4.java create mode 100644 Debug5.java diff --git a/Debug3.java b/Debug3.java new file mode 100644 index 0000000..f9e70c0 --- /dev/null +++ b/Debug3.java @@ -0,0 +1,8 @@ +public class Debug3 extends Map_World { + public Debug3() { + super( + new String[] {"Spieler Nr. 1", "Player No. 2", "Spieler Nr. 3"}, + new int[] {0,1,2} + ); + } +} \ No newline at end of file diff --git a/Debug4.java b/Debug4.java new file mode 100644 index 0000000..1b200bf --- /dev/null +++ b/Debug4.java @@ -0,0 +1,8 @@ +public class Debug4 extends Map_World { + public Debug4() { + super( + new String[] {"Spieler Nr. 1", "Player No. 2", "Spieler Nr. 3","Player No. 4"}, + new int[] {0,1,2,3} + ); + } +} \ No newline at end of file diff --git a/Debug5.java b/Debug5.java new file mode 100644 index 0000000..30644e1 --- /dev/null +++ b/Debug5.java @@ -0,0 +1,8 @@ +public class Debug5 extends Map_World { + public Debug5() { + super( + new String[] {"Spieler Nr. 1", "Player No. 2", "Spieler Nr. 3", "Player No. 4", "Spieler Nr. 5"}, + new int[] {0,1,2,3,4} + ); + } +} \ No newline at end of file From 191c4e9e24b230c8ad0fb4f3ec86bb3a85bfead0 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Wed, 29 Jun 2016 19:48:42 +0200 Subject: [PATCH 16/18] =?UTF-8?q?Vereinfachung=20bei=20initProvinces=20(fe?= =?UTF-8?q?hlerfrei)=20Diese=20Vereinfachung=20fasst=20die=20Daten=20der?= =?UTF-8?q?=20Provinzen=20zum=20Besitzer=20und=20zur=20Einheitenanzahl=20i?= =?UTF-8?q?n=20ein=20Array=20namens=20dataL=20zusammen.=20Bisher=20ist=20d?= =?UTF-8?q?er=20alte=20Code=20noch=20im=20Einsatz,=20eine=20For-Schleife?= =?UTF-8?q?=20=C3=BCberpr=C3=BCft=20bisher=20nur=20den=20Inhalt=20des=20da?= =?UTF-8?q?taL-Arrays=20mit=20den=20vom=20alten=20Code=20gegeben=20Daten.?= =?UTF-8?q?=20Sp=C3=A4ter,=20sobald=20feststeht,=20dass=20die=20Arrays=20k?= =?UTF-8?q?orrekt=20erzeugt=20werden,=20der=20Pr=C3=BCfcode=20durch=20eine?= =?UTF-8?q?n=20Code=20ersetzt=20werden,=20der=20die=20Daten=20des=20Arrays?= =?UTF-8?q?=20verwendet=20und=20den=20Provinzen=20=C3=BCbergibt.=20Damit?= =?UTF-8?q?=20werden=20die=20langen=20Zeilen=20dann=20ersetzt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GeneralMap.java | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 5cf4c62..0fc3ce3 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -95,14 +95,21 @@ public abstract class GeneralMap extends World implements ButtonEvent /* Legt die Startprovincen der Spieler fest. */ - int[] ownerL; - int[] entitiesL; + int[] dataL = new int[(provinces.length-1)*2]; + /* + dataL speichert folgende Daten: + 0. Spieler-ID des Besitzers (Provinz 1) + 1. Einheitenanzahl (Provinz 1) + 2. Spieler-ID des Besitzers (Provinz 2) + 3. [...] + */ if(players.length==3) { /* Spieler 1 darf beginnen; Hauptstadt: 40 Spieler 2 ist als zweites dran; Hauptstadt: 20 Spieler 3 ist als drittes dran und bekommt eine Karte; Hauptstadt: 9 */ + dataL = new int[] {1,1,3,2,2,2,2,1,1,1,1,1,3,2,1,1,3,4,3,1,2,2,1,2,1,2,3,3,3,3,3,3,1,1,2,2,2,4,2,3,1,1,3,4,1,2,3,4,2,2,2,1,3,1,1,3,1,3,1,4,3,1,2,1,2,1,1,2,2,2,3,1,2,2,2,4,2,3,1,4,3,1,1,2}; provinces[1].setOwner(1); provinces[1].setEntityCount(1); provinces[2].setOwner(3); @@ -194,6 +201,7 @@ public abstract class GeneralMap extends World implements ButtonEvent Spieler 3 ist als drittes dran und bekommt eine Karte; Hauptstadt:2 Spieler 4 ist als viertes dran und bekommt eine Karte; Hauptstadt:39 */ + dataL = new int[] {1,1,3,3,3,3,3,2,3,2,3,3,2,2,1,2,2,2,3,2,2,3,3,2,2,3,1,3,1,3,1,3,3,2,4,2,2,4,2,4,1,1,1,2,1,5,1,3,2,2,4,3,4,1,4,2,2,2,2,2,4,1,2,1,4,5,3,2,3,2,3,2,4,1,4,1,4,4,4,1,1,2,4,4}; provinces[1].setOwner(1); provinces[1].setEntityCount(1); provinces[2].setOwner(3); @@ -286,6 +294,7 @@ public abstract class GeneralMap extends World implements ButtonEvent Spieler 4 ist als viertes dran und bekommt eine Karte; Hauptstadt:20 Spieler 5 ist als fünftes dran und bekommt zwei Karte; Hauptstadt:41 */ + dataL = new int[] {3,1,1,2,4,2,2,2,2,2,2,2,2,4,4,1,2,2,4,1,4,3,3,1,1,4,1,2,3,3,1,2,2,3,4,2,4,5,4,3,2,2,3,5,3,3,1,2,3,3,3,2,2,3,5,2,5,3,5,3,1,3,1,3,4,1,5,1,5,1,5,2,3,2,4,2,5,2,1,2,5,4,5,2}; provinces[1].setOwner(3); provinces[1].setEntityCount(1); provinces[2].setOwner(1); @@ -371,6 +380,31 @@ public abstract class GeneralMap extends World implements ButtonEvent provinces[42].setOwner(5); provinces[42].setEntityCount(2); } + int errors = 0; + for(int i = 1; i < provinces.length; i++) { + Province p = provinces[i]; + int oI = (i-1)*2; // ownerID inside dataL + int eI = oI+1; // entitiesCountID inside dataL + // Dieser Code überprüft die Datenliste mit den Daten, die die alte Methode (mit den vielen Zeilen) bereits hinterlegt haben sollte. Nur für Debugging! + if(p.getOwner() != dataL[oI]) { + errors++; + showDialog("dataL-Index " + oI + ", got " + dataL[oI] + ", expected " + p.getOwner()); + } else if(p.getEntityCount() != dataL[eI]) { + errors++; + showDialog("dataL-Index " + eI + ", got " + dataL[eI] + ", expected " + p.getEntityCount()); + } + } + if(errors == 0) { + showDialog("No errors found!"); + } + } + + /** + Zeigt die angegebene Nachricht in einem JOptionPane Dialogfeld an. + @param msg Die anzuzeigende Nachricht + */ + private void showDialog(String msg) { + JOptionPane.showMessageDialog(null,msg); } public void act() { From dd1efe383609c87da4f953bb428cbda4345f21b3 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Fri, 1 Jul 2016 13:15:02 +0200 Subject: [PATCH 17/18] Province Update Update vom Master --- Province.java | 785 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 514 insertions(+), 271 deletions(-) diff --git a/Province.java b/Province.java index 864e495..1517272 100644 --- a/Province.java +++ b/Province.java @@ -9,277 +9,520 @@ import java.awt.Color; */ public class Province extends Actor { - @Override public GeneralMap getWorld() { - return (GeneralMap) super.getWorld(); - } - - private int stars = 1; - private int provinceID; - private String displayName; - private int owner = 0; - private boolean[] nextProvinces; - private int continentID; - private int xPos; - private int yPos; - private int eCount; - - private boolean clicked = false; - - /** - * Ãœberprüft, ob die Provinz angeklickt wurde. - */ - public void act() - { - if(Greenfoot.mouseClicked(this)) { - clicked = true; - } - } - - // Haupt-Konstruktor - public Province(int pID, int cID, int x, int y, int st, String s1, int[] ia1) - { - provinceID = pID; - continentID = cID; - xPos = x; - yPos = y; - if(st > 0) { - stars = st; - } - displayName = s1; - // Der Teil, der sich um die Konvertierung des int-Array in ein boolean-Array kümmert. - int maxNum = 0; - for(int i = 0; i < ia1.length; i++) { - if(maxNum < ia1[i]) { - maxNum = ia1[i]; - } - } - nextProvinces = new boolean[maxNum+1]; - for(int i = 0; i < ia1.length; i++) { - if(ia1[i] >= 0) { - nextProvinces[ia1[i]] = true; - } - } - } - - // Zweiter Konstruktor, um auch das boolean-Array gegebenenfalls verwenden zu könnnen. - public Province(int pID, int cID, int x, int y, int st, String s1, boolean[] ba1) - { - provinceID = pID; - continentID = cID; - xPos = x; - yPos = y; - if(st > 0) { - stars = st; - } - displayName = s1; - nextProvinces = Utils.copyArray(ba1); - } - - // Liefert die X-Position als Integer - public int getXPos() - { - return xPos; - } - - // Liefert die Y-Position als Integer - public int getYPos() - { - return yPos; - } - - // Liefert die Provinz-ID als Integer - public int getID() - { - return provinceID; - } - - // Liefert die Kontinent-ID als Integer - public int getContinentID() - { - return continentID; - } - - // Fragt ab, ob die angegebene Provinz in der Nähe von dieser liegt. - public boolean isProvinceNear(int i) { - if(i >= nextProvinces.length) { - return false; - } - return nextProvinces[i]; - } - - // Liefert den Anzeigenamen als String - public String getDisplayName() - { - return displayName; - } - - // Liefert die Sterne als Integer - public int getStars() - { - return stars; - } - - // Liefert den Owner als String - public int getOwner() - { - return owner; - } - - // Setzt den Owner, benötigt String - public void setOwner(int o) - { - if(o < -1) { - o = -1; - } - owner = o; - } - - public int getEntityCount() { - return eCount; - } - - private void checkEntityCount() { - if(eCount < 0) { - eCount = 0; - } - } - - public int addToEntities(int a) { - eCount = eCount + a; - checkEntityCount(); - redrawProvince(); - return eCount; - } - - public int removeFromEntities(int a) { - eCount = eCount - a; - checkEntityCount(); - redrawProvince(); - return eCount; - } - - public int setEntityCount(int a) { - eCount = a; - checkEntityCount(); - redrawProvince(); - return eCount; - } - - public void redrawProvince() - { - int textSize; - textSize = 20; - GreenfootImage province = new GreenfootImage(120,100); - GreenfootImage provinceName = new GreenfootImage(displayName,textSize,new Color(0,0,0),new Color(1.0f,1.0f,1.0f,0.5f)); - province.drawImage(provinceName,0,0); - oDecide(province,textSize); - } - - public void oDecide(GreenfootImage province,int textSize) - { - String ownerString; - if(owner == 0) - { - ownerString = "schwarz"; - eCalculate(province,ownerString,textSize); - } - else - { - switch(owner) - { - case 1: - ownerString = "schwarz"; - eCalculate(province,ownerString,textSize); - break; - case 2: - ownerString = "rot"; - eCalculate(province,ownerString,textSize); - break; - case 3: - ownerString = "blau"; - eCalculate(province,ownerString,textSize); - break; - case 4: - ownerString = "gelb"; - eCalculate(province,ownerString,textSize); - break; - case 5: - ownerString = "gr++n"; - eCalculate(province,ownerString,textSize); - break; - case 6: - ownerString = "lila"; - eCalculate(province,ownerString,textSize); - break; - - } - } - - } - - private void eCalculate(GreenfootImage province, String ownerString,int textSize) - { - int eCountTanks = eCount / 5; - GreenfootImage tank = new GreenfootImage("images\\dickebertaskal-" + ownerString + ".png"); - tank.scale(textSize,textSize); - if(eCountTanks <= 3) - { - if(eCountTanks == 0) - { - - } - if(eCountTanks == 1) - { - province.drawImage(tank,0,textSize); - } - if(eCountTanks == 2) - { - province.drawImage(tank,0,textSize); - province.drawImage(tank,textSize,textSize); - } - if(eCountTanks == 3) - { - province.drawImage(tank,0,textSize); - province.drawImage(tank,textSize,textSize); - province.drawImage(tank,textSize*2,textSize); - } - } - else - { - GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); - province.drawImage(eCountTanksImage,0,textSize); - province.drawImage(tank,45,textSize); - } - int eCountHorse = (eCount - (eCountTanks * 5))/3; - GreenfootImage horse = new GreenfootImage("images\\pferdreiterskal-" + ownerString + ".png"); - horse.scale(textSize,textSize); - if(eCountHorse == 1) - { - province.drawImage(horse,4*textSize,textSize); - } - GreenfootImage Inf = new GreenfootImage("images\\infanterieskal-" + ownerString + ".png"); - int eCountInf = eCount - (eCountTanks * 5) - (eCountHorse * 3); - Inf.scale(textSize,textSize); - if(eCountInf <= 4) - { - if(eCountInf == 1) - { - province.drawImage(Inf,5*textSize,textSize); - } - if(eCountInf == 2) - { - province.drawImage(Inf,5*textSize,textSize); - province.drawImage(Inf,5*textSize,textSize); - } - } - setImage(province); - } - - public boolean hasClicked() { - boolean b = clicked; - clicked = false; - return b; - } + @Override public GeneralMap getWorld() { + return (GeneralMap) super.getWorld(); + } + + private int stars = 1; + private int provinceID; + private String displayName; + private int owner = 0; + private boolean[] nextProvinces; + private int continentID; + private int xPos; + private int yPos; + private int eCount; + + private boolean clicked = false; + /** + * Überprüft, ob die Provinz angeklickt wurde. + */ + public void act() + { + if(Greenfoot.mouseClicked(this)) { + clicked = true; + } + } + + // Haupt-Konstruktor + public Province(int pID, int cID, int x, int y, int st, String s1, int[] ia1) + { + provinceID = pID; + continentID = cID; + xPos = x; + yPos = y; + if(st > 0) { + stars = st; + } + displayName = s1; + // Der Teil, der sich um die Konvertierung des int-Array in ein boolean-Array kümmert. + int maxNum = 0; + for(int i = 0; i < ia1.length; i++) { + if(maxNum < ia1[i]) { + maxNum = ia1[i]; + } + } + nextProvinces = new boolean[maxNum+1]; + for(int i = 0; i < ia1.length; i++) { + if(ia1[i] >= 0) { + nextProvinces[ia1[i]] = true; + } + } + } + + // Zweiter Konstruktor, um auch das boolean-Array gegebenenfalls verwenden zu könnnen. + public Province(int pID, int cID, int x, int y, int st, String s1, boolean[] ba1) + { + provinceID = pID; + continentID = cID; + xPos = x; + yPos = y; + if(st > 0) { + stars = st; + } + displayName = s1; + nextProvinces = Utils.copyArray(ba1); + } + + // Liefert die X-Position als Integer + public int getXPos() + { + return xPos; + } + + // Liefert die Y-Position als Integer + public int getYPos() + { + return yPos; + } + + // Liefert die Provinz-ID als Integer + public int getID() + { + return provinceID; + } + + // Liefert die Kontinent-ID als Integer + public int getContinentID() + { + return continentID; + } + + // Fragt ab, ob die angegebene Provinz in der Nähe von dieser liegt. + public boolean isProvinceNear(int i) { + if(i >= nextProvinces.length) { + return false; + } + return nextProvinces[i]; + } + + // Liefert den Anzeigenamen als String + public String getDisplayName() + { + return displayName; + } + + // Liefert die Sterne als Integer + public int getStars() + { + return stars; + } + + // Liefert den Owner als String + public int getOwner() + { + return owner; + } + + // Setzt den Owner, benötigt String + public void setOwner(int o) + { + if(o < -1) { + o = -1; + } + owner = o; + } + + public int getEntityCount() { + return eCount; + } + + private void checkEntityCount() { + if(eCount < 0) { + eCount = 0; + } + } + + public int addToEntities(int a) { + eCount = eCount + a; + checkEntityCount(); + redrawProvince(); + return eCount; + } + + public int removeFromEntities(int a) { + eCount = eCount - a; + checkEntityCount(); + redrawProvince(); + return eCount; + } + + public int setEntityCount(int a) { + eCount = a; + checkEntityCount(); + redrawProvince(); + return eCount; + } + + public void redrawProvince() + { + int textSize; + textSize = 20; + GreenfootImage province = new GreenfootImage(120,100); + GreenfootImage provinceName = new GreenfootImage(displayName,textSize,new Color(0,0,0),new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(provinceName,0,0); + setImage(province); + oDecide(province,textSize,owner,eCount); + + } + + public void oDecide(GreenfootImage province,int textSize, int owner, int eCount) + { + String ownerString; + if(owner == 0) + { + ownerString = "schwarz"; + eCalculate(province,ownerString,textSize); + } + else + { + switch(owner) + { + case 1: + ownerString = "schwarz"; + eCalculate(province,ownerString,textSize); + break; + case 2: + ownerString = "rot"; + eCalculate(province,ownerString,textSize); + break; + case 3: + ownerString = "blau"; + eCalculate(province,ownerString,textSize); + break; + case 4: + ownerString = "gelb"; + eCalculate(province,ownerString,textSize); + break; + case 5: + ownerString = "gr++n"; + eCalculate(province,ownerString,textSize); + break; + case 6: + ownerString = "lila"; + eCalculate(province,ownerString,textSize); + break; + + } + } + } + + private void eCalculate(GreenfootImage province, String ownerString,int textSize) + { + int eCountTanks = eCount / 5; + int eCountHorse = (eCount - (eCountTanks * 5))/3; + int eCountInf = eCount - (eCountTanks * 5) - (eCountHorse * 3); + + if(eCountTanks >= 1 && eCountInf == 0 && eCountHorse == 0) + { + OnlyTanks(province,eCountTanks,ownerString,textSize); + } + if(eCountTanks == 0 && eCountInf == 0 && eCountHorse != 0) + { + OnlyHorses(province,eCountHorse,ownerString,textSize); + } + if(eCountTanks == 0 && eCountInf != 0 && eCountHorse == 0) + { + OnlyInf(province,eCountInf,ownerString,textSize); + } + if(eCountTanks == 0 && eCountInf != 0 && eCountHorse != 0) + { + NoTanks(province,eCountInf,eCountHorse, ownerString, textSize); + } + if(eCountTanks != 0 && eCountInf != 0 && eCountHorse == 0) + { + NoHorse(province,eCountInf,eCountTanks, ownerString, textSize); + } + if(eCountTanks != 0 && eCountInf == 0 && eCountHorse != 0) + { + NoInf(province,eCountInf,eCountTanks, ownerString, textSize); + } + if(eCountTanks == 0 && eCountInf == 0 && eCountHorse == 0) + { + NoEntity(province, ownerString, textSize); + } + if(eCountTanks != 0 && eCountInf != 0 && eCountHorse != 0) + { + AllEntity(province, ownerString,eCountTanks, eCountHorse, eCountInf, textSize); + } + + } + + private void NoEntity(GreenfootImage province, String ownerString, int textSize) + { + + } + + private void OnlyTanks(GreenfootImage province,int eCountTanks, String ownerString, int textSize) + { + GreenfootImage tank = new GreenfootImage("images\\dickebertaskal-" + ownerString + ".png"); + tank.scale(textSize,textSize); + if(eCountTanks <= 3) + { + if(eCountTanks == 1) + { + province.drawImage(tank,0,textSize); + } + if(eCountTanks == 2) + { + province.drawImage(tank,0,textSize); + province.drawImage(tank,textSize,textSize); + } + if(eCountTanks == 3) + { + province.drawImage(tank,0,textSize); + province.drawImage(tank,textSize,textSize); + province.drawImage(tank,textSize*2,textSize); + } + } + else + { + GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(eCountTanksImage,0,textSize); + province.drawImage(tank,eCountTanksImage.getWidth(),textSize); + } + setImage(province); + } + + private void OnlyHorses(GreenfootImage province,int eCountHorse, String ownerString, int textSize) + { + GreenfootImage horse = new GreenfootImage("images\\pferdreiterskal-" + ownerString + ".png"); + horse.scale(textSize,textSize); + province.drawImage(horse,0,textSize); + setImage(province); + } + + private void OnlyInf(GreenfootImage province,int eCountInf, String ownerString, int textSize) + { + GreenfootImage Inf = new GreenfootImage("images\\infanterieskal-" + ownerString + ".png"); + Inf.scale(textSize,textSize); + if(eCountInf == 1) + { + province.drawImage(Inf,0,textSize); + } + if(eCountInf == 2) + { + province.drawImage(Inf,0,textSize); + province.drawImage(Inf,textSize,textSize); + } + setImage(province); + } + + private void NoTanks(GreenfootImage province,int eCountInf,int eCountHorse, String ownerString, int textSize) + { + GreenfootImage Inf = new GreenfootImage("images\\infanterieskal-" + ownerString + ".png"); + Inf.scale(textSize,textSize); + GreenfootImage horse = new GreenfootImage("images\\pferdreiterskal-" + ownerString + ".png"); + horse.scale(textSize,textSize); + province.drawImage(horse,0,textSize); + setImage(province); + if(eCountInf == 1) + { + province.drawImage(Inf,textSize,textSize); + } + if(eCountInf == 2) + { + province.drawImage(Inf,textSize,textSize); + province.drawImage(Inf,2*textSize,textSize); + } + setImage(province); + } + + private void NoHorse(GreenfootImage province,int eCountInf,int eCountTanks, String ownerString, int textSize) + { + GreenfootImage Inf = new GreenfootImage("images\\infanterieskal-" + ownerString + ".png"); + Inf.scale(textSize,textSize); + GreenfootImage tank = new GreenfootImage("images\\dickebertaskal-" + ownerString + ".png"); + tank.scale(textSize,textSize); + if(eCountTanks <= 3) + { + if(eCountTanks == 1) + { + province.drawImage(tank,0,textSize); + } + if(eCountTanks == 2) + { + province.drawImage(tank,0,textSize); + province.drawImage(tank,textSize,textSize); + } + if(eCountTanks == 3) + { + province.drawImage(tank,0,textSize); + province.drawImage(tank,textSize,textSize); + province.drawImage(tank,textSize*2,textSize); + } + } + else + { + GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(eCountTanksImage,0,textSize); + province.drawImage(tank,eCountTanksImage.getWidth(),textSize); + } + if(eCountTanks<=3) + { + if(eCountInf == 1) + { + province.drawImage(Inf,eCountTanks * textSize,textSize); + } + if(eCountInf == 2) + { + province.drawImage(Inf,eCountTanks * textSize,textSize); + province.drawImage(Inf,eCountTanks * 2 *textSize,textSize); + } + } + if(eCountTanks>3) + { + if(eCountInf == 1) + { + GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(Inf,eCountTanksImage.getWidth() + textSize,textSize); + } + if(eCountInf == 2) + { + GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(Inf,eCountTanksImage.getWidth() + textSize,textSize); + province.drawImage(Inf,eCountTanksImage.getWidth() + (2 *textSize),textSize); + } + } + setImage(province); + } + + private void NoInf(GreenfootImage province,int eCountHorse,int eCountTanks, String ownerString, int textSize) + { + + GreenfootImage tank = new GreenfootImage("images\\dickebertaskal-" + ownerString + ".png"); + tank.scale(textSize,textSize); + GreenfootImage horse = new GreenfootImage("images\\pferdreiterskal-" + ownerString + ".png"); + horse.scale(textSize,textSize); + + if(eCountTanks <= 3) + { + if(eCountTanks == 1) + { + province.drawImage(tank,0,textSize); + } + if(eCountTanks == 2) + { + province.drawImage(tank,0,textSize); + province.drawImage(tank,textSize,textSize); + } + if(eCountTanks == 3) + { + province.drawImage(tank,0,textSize); + province.drawImage(tank,textSize,textSize); + province.drawImage(tank,textSize*2,textSize); + } + } + else + { + GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(eCountTanksImage,0,textSize); + province.drawImage(tank,eCountTanksImage.getWidth(),textSize); + } + if(eCountTanks<=3) + { + + province.drawImage(horse,eCountTanks * textSize,textSize); + setImage(province); + + } + if(eCountTanks>3) + { + + GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(horse,eCountTanksImage.getWidth() + textSize,textSize); + setImage(province); + + } + setImage(province); + } + + private void AllEntity(GreenfootImage province, String ownerString,int eCountTanks, int eCountHorse, int eCountInf,int textSize) + { + GreenfootImage tank = new GreenfootImage("images\\dickebertaskal-" + ownerString + ".png"); + tank.scale(textSize,textSize); + GreenfootImage horse = new GreenfootImage("images\\pferdreiterskal-" + ownerString + ".png"); + horse.scale(textSize,textSize); + GreenfootImage Inf = new GreenfootImage("images\\infanterieskal-" + ownerString + ".png"); + Inf.scale(textSize,textSize); + if(eCountTanks <= 3) + { + if(eCountTanks == 1) + { + province.drawImage(tank,0,textSize); + } + if(eCountTanks == 2) + { + province.drawImage(tank,0,textSize); + province.drawImage(tank,textSize,textSize); + } + if(eCountTanks == 3) + { + province.drawImage(tank,0,textSize); + province.drawImage(tank,textSize,textSize); + province.drawImage(tank,textSize*2,textSize); + } + } + else + { + GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(eCountTanksImage,0,textSize); + province.drawImage(tank,eCountTanksImage.getWidth(),textSize); + } + if(eCountHorse == 1) + { + if(eCountTanks<=3) + { + + province.drawImage(horse,eCountTanks * textSize,textSize); + if(eCountInf == 1) + { + province.drawImage(Inf,eCountTanks * textSize + textSize,textSize); + } + if(eCountInf == 2) + { + province.drawImage(Inf,eCountTanks * textSize + textSize + textSize,textSize); + } + setImage(province); + + } + if(eCountTanks>3) + { + + GreenfootImage eCountTanksImage = new GreenfootImage(Integer.toString(eCountTanks) + "x",textSize,Color.BLACK,new Color(1.0f,1.0f,1.0f,0.5f)); + province.drawImage(horse,eCountTanksImage.getWidth() + textSize,textSize); + if(eCountInf == 1) + { + province.drawImage(Inf,eCountTanksImage.getWidth() + textSize + textSize,textSize); + } + if(eCountInf == 2) + { + province.drawImage(Inf,eCountTanksImage.getWidth() + textSize + textSize + textSize + textSize,textSize); + } + setImage(province); + + } + } + setImage(province); + } + + + public boolean hasClicked() + { + boolean b = clicked; + clicked = false; + return b; + } } From 5bf19250260873cb2189a5e333f9b4e29f472847 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Fri, 1 Jul 2016 14:00:36 +0200 Subject: [PATCH 18/18] =?UTF-8?q?GeneralMap:=20N=C3=A4chster=20Modi-Button?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Von Angelica, Andreas, Julien --- GeneralMap.java | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 0fc3ce3..0882dbc 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -17,7 +17,7 @@ public abstract class GeneralMap extends World implements ButtonEvent Felder, im Moment nur Anzahl der Provinzen Später evtl. weitere Werte wie Schwierigkeit denkbar */ - + Button modus = new Button("Kampf",25,this); private final int X_OFFSET = 160; // Verschiebt die Provinzen nach rechts private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten @@ -30,15 +30,20 @@ public abstract class GeneralMap extends World implements ButtonEvent protected enum GameStates { KAMPF, - VERSCHIEBEN + VERSCHIEBEN, + SETZEN } protected Province[] provinces; + protected int[] continentBoni; protected Player[] players; protected int currentPlayer = 0; protected GameStates status = GameStates.VERSCHIEBEN; + protected int provinceCount; + protected int armyMinimum; + // Kampfsystem Province offenderProvince; Province defenderProvince; @@ -58,6 +63,7 @@ public abstract class GeneralMap extends World implements ButtonEvent { super(1600,900,1); players = new Player[playerList.length]; + addObject( modus, 1500, 808); for (int i = 0; i < playerList.length; i++) { players[i] = new Player(i,playerList[i],colorList[i]); } @@ -513,6 +519,32 @@ public abstract class GeneralMap extends World implements ButtonEvent currentPlayer = 0; } } + if ( modus == b && status==GameStates.SETZEN) + { + status=GameStates.KAMPF; + modus.setText("Kampf beenden"); + + + } + if ( modus == b && status== GameStates.KAMPF) + { + status=GameStates.VERSCHIEBEN; + modus.setText("Nächster Spieler"); + } + if ( modus == b && status==GameStates.VERSCHIEBEN) + { + if( currentPlayer== players.length-1) + { + currentPlayer=0; + + } + else + { + currentPlayer+=1; + + } + + } } // Kampfsystem