From ce83de8e8e3bb028f124152809e654ed2f6c9c86 Mon Sep 17 00:00:00 2001 From: Achim Date: Sat, 18 Jun 2016 12:36:38 +0200 Subject: [PATCH 1/9] ArmySchubser-Aktualisierung Neuer Armyschubser --- ArmySchubser.java | 57 ++++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/ArmySchubser.java b/ArmySchubser.java index 4691f74..fd2a5f2 100644 --- a/ArmySchubser.java +++ b/ArmySchubser.java @@ -6,10 +6,13 @@ import javax.swing.JOptionPane; * Schubst Einheiten umher. * * @author MaxiJohl, GruenerWal - * @version 0.1.1 + * @version 0.2.0 */ + public class ArmySchubser extends Map_World { + Province firstProvince = null; + Province secondProvince = null; /** * Constructor for objects of class ArmySchubser. @@ -22,39 +25,47 @@ public class ArmySchubser extends Map_World public void act() { - Province firstProvince = null; - Province secondProvince = null; - - for ( int i = 0; i <= provinceCount; i++) + if (firstProvince == null) { - if (provinces[i].hasClicked() == true) + for ( int i = 1; i <= provinceCount; i++) { - provinces[i] = firstProvince; - break; + if (provinces[i].hasClicked() == true) + { + provinces[i] = firstProvince; + break; + } } } - for ( int i = 0; i <= provinceCount; i++) + if (firstProvince != null) { - if (provinces[i].hasClicked() == true && provinces[i] != firstProvince) + for ( int i = 0; i <= provinceCount; i++) { - provinces[i] = secondProvince; - break; + if (provinces[i].hasClicked() == true && provinces[i] != firstProvince) + { + provinces[i] = secondProvince; + break; + } } - } - String toMove = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?"); - Integer entitiesToMove = Integer.valueOf(toMove); + String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?"); + Integer entitiesToMove = Integer.valueOf(toMoveString); - if ( (firstProvince.getEntityCount() - entitiesToMove) > 0 && firstProvince.isProvinceNear(secondProvince.getID()) == true ) - { - firstProvince.removeFromEntities(entitiesToMove); - secondProvince.addToEntities(entitiesToMove); - } + if ( (firstProvince.getEntityCount() - entitiesToMove) > 0 && firstProvince.isProvinceNear(secondProvince.getID()) == true ) + { + firstProvince.removeFromEntities(entitiesToMove); + secondProvince.addToEntities(entitiesToMove); + } - else - { - System.out.println("Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + firstProvince.getDisplayName() + " nach " + secondProvince.getDisplayName() + " zu verschieben, Köhler."); + if ( (firstProvince.getEntityCount() - entitiesToMove) <= 0 ) + { + JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + firstProvince.getDisplayName() + " nach " + secondProvince.getDisplayName() + " zu verschieben, Köhler."); + } + + if ( firstProvince.isProvinceNear(secondProvince.getID()) == false ) + { + JOptionPane.showMessageDialog(null,"Die Provinzen müssen nebeneinander liegen, wenn du Einheiten verschieben willst."); + } } } } From cc483290284df41a1fca8f52cd90aa05dbde4e0c Mon Sep 17 00:00:00 2001 From: Achim Date: Sat, 18 Jun 2016 15:59:32 +0200 Subject: [PATCH 2/9] ArmySchubser-Aktualisierung ArmySchubser nochmal aktualisiert --- ArmySchubser.java | 93 ++++++++++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 37 deletions(-) diff --git a/ArmySchubser.java b/ArmySchubser.java index fd2a5f2..9acd1d3 100644 --- a/ArmySchubser.java +++ b/ArmySchubser.java @@ -6,66 +6,85 @@ import javax.swing.JOptionPane; * Schubst Einheiten umher. * * @author MaxiJohl, GruenerWal - * @version 0.2.0 + * @version 0.3.0 */ public class ArmySchubser extends Map_World -{ - Province firstProvince = null; - Province secondProvince = null; +{ + static Province savedProvince = null; /** - * Constructor for objects of class ArmySchubser. + * Konstruktor für ArmySchubser. * + * NICHT BENUTZEN! + * Sämtliche benötigten Methoden sind static! */ - public ArmySchubser() + private ArmySchubser() { // Hi. } - public void act() + /** + * 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 static void moveEntities(Province sourceProvince, Province destinationProvince) { - if (firstProvince == null) + String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?"); + Integer entitiesToMove = Integer.valueOf(toMoveString); + + if ( (sourceProvince.getEntityCount() - entitiesToMove) > 0) { - for ( int i = 1; i <= provinceCount; i++) - { - if (provinces[i].hasClicked() == true) - { - provinces[i] = firstProvince; - break; - } - } + sourceProvince.removeFromEntities(entitiesToMove); + destinationProvince.addToEntities(entitiesToMove); } - if (firstProvince != null) + if ( (sourceProvince.getEntityCount() - entitiesToMove) <= 0 ) { - for ( int i = 0; i <= provinceCount; i++) - { - if (provinces[i].hasClicked() == true && provinces[i] != firstProvince) - { - provinces[i] = secondProvince; - break; - } - } + JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + sourceProvince.getDisplayName() + " nach " + destinationProvince.getDisplayName() + " zu verschieben, Köhler."); + } + } - String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?"); - Integer entitiesToMove = Integer.valueOf(toMoveString); + /** + * 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 static void useProvincesToMove(Province givenProvince) + { + if (savedProvince == null) + { + savedProvince = givenProvince; + } - if ( (firstProvince.getEntityCount() - entitiesToMove) > 0 && firstProvince.isProvinceNear(secondProvince.getID()) == true ) + if (savedProvince != null && givenProvince != savedProvince) + { + if (givenProvince.isProvinceNear(savedProvince.getID()) == true) { - firstProvince.removeFromEntities(entitiesToMove); - secondProvince.addToEntities(entitiesToMove); + moveEntities(savedProvince,givenProvince); } + } + } - if ( (firstProvince.getEntityCount() - entitiesToMove) <= 0 ) - { - JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + firstProvince.getDisplayName() + " nach " + secondProvince.getDisplayName() + " zu verschieben, Köhler."); - } - - if ( firstProvince.isProvinceNear(secondProvince.getID()) == false ) + /** + * Ü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 = null; + + for ( int i = 1; i <= provinceCount; i++) + { + if (provinces[i].hasClicked() == true) { - JOptionPane.showMessageDialog(null,"Die Provinzen müssen nebeneinander liegen, wenn du Einheiten verschieben willst."); + clickedProvince = provinces[i]; + useProvincesToMove(clickedProvince); + break; } } } } + From 06a95c59d21f8747fee2258512967880edfb0450 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Sat, 18 Jun 2016 17:35:51 +0200 Subject: [PATCH 3/9] =?UTF-8?q?Fehlerverbesserung=20DicesList=20Unterklass?= =?UTF-8?q?en=20Hier=20fehlte=20jeweils=20eine=20Klammer.=20Aus=20Debug-Gr?= =?UTF-8?q?=C3=BCnden=20wird=20dies=20=C3=BCber=20diesen=20Branch=20behobe?= =?UTF-8?q?n.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DefenderDices.java | 2 +- OffenderDices.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DefenderDices.java b/DefenderDices.java index a13634f..25fbf96 100644 --- a/DefenderDices.java +++ b/DefenderDices.java @@ -10,7 +10,7 @@ import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and Mouse public class DefenderDices extends DicesList { public DefenderDices(int count) { - super(count, 2, new Color(0,0,0), (new Color(255,255,255)); + super(count, 2, new Color(0,0,0), (new Color(255,255,255))); } } diff --git a/OffenderDices.java b/OffenderDices.java index bcc7542..83cc8cf 100644 --- a/OffenderDices.java +++ b/OffenderDices.java @@ -10,7 +10,7 @@ import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and Mouse public class OffenderDices extends DicesList { public OffenderDices(int count) { - super(count, 3, new Color(255,0,0), (new Color(255,255,255)); + super(count, 3, new Color(255,0,0), (new Color(255,255,255))); } } From 7684cfe224a8cd852f743c1604098b32b0f0f079 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Sat, 18 Jun 2016 17:38:04 +0200 Subject: [PATCH 4/9] =?UTF-8?q?Fehlerverbesserung=20DefenderDices=20&=20Of?= =?UTF-8?q?fenderDices=20Anpassung=20auf=20diesem=20Branch=20aufgrund=20vo?= =?UTF-8?q?n=20Debugen=20der=20hierauf=20durchgef=C3=BChrten=20Aufgabe.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DefenderDices.java | 1 + OffenderDices.java | 1 + 2 files changed, 2 insertions(+) diff --git a/DefenderDices.java b/DefenderDices.java index 25fbf96..b3a5c4a 100644 --- a/DefenderDices.java +++ b/DefenderDices.java @@ -1,5 +1,6 @@ import greenfoot.*; import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import java.awt.Color; /** Erstellt eine gegebene Anzahl an DefenderDice's, welche dann nebeneinander eingereiht werden. diff --git a/OffenderDices.java b/OffenderDices.java index 83cc8cf..a7ac781 100644 --- a/OffenderDices.java +++ b/OffenderDices.java @@ -1,5 +1,6 @@ import greenfoot.*; import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import java.awt.Color; /** Erstellt eine gegebene Anzahl an OffenderDice's, welche dann nebeneinander eingereiht werden. From 848634216a1b8231177b23806e166388af7f6d58 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Sat, 18 Jun 2016 17:40:37 +0200 Subject: [PATCH 5/9] Fehlerverbesserung Utils --- Utils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utils.java b/Utils.java index 87a34cd..be2eb67 100644 --- a/Utils.java +++ b/Utils.java @@ -66,7 +66,7 @@ public final class Utils { */ public static void sortDesc(int[] a) { Arrays.sort(a); - Collection.sort(a,Collections.reverseOrder()); + Collections.sort(a,Collections.reverseOrder()); } } From cdb305f82363c17aebbe520746b581b78618a777 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Sat, 18 Jun 2016 17:43:41 +0200 Subject: [PATCH 6/9] Fehlerverbesserung Utils 2 Sortierung des Arrays angepasst --- Utils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utils.java b/Utils.java index be2eb67..a535725 100644 --- a/Utils.java +++ b/Utils.java @@ -66,7 +66,7 @@ public final class Utils { */ public static void sortDesc(int[] a) { Arrays.sort(a); - Collections.sort(a,Collections.reverseOrder()); + Arrays.sort(a,Collections.reverseOrder()); } } From f0abd1d54a97d82ad1765c1abe550ba1a86d1b48 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Sat, 18 Jun 2016 17:55:49 +0200 Subject: [PATCH 7/9] =?UTF-8?q?Fehlerverbesserung=20Utils=203=20Nach=20lan?= =?UTF-8?q?gem=20Ausprobieren=20wurde=20nun=20endlich=20eine=20M=C3=B6glic?= =?UTF-8?q?hkeit=20gefunden,=20ein=20int-Array=20absteigend=20zu=20sortier?= =?UTF-8?q?en.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Utils.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Utils.java b/Utils.java index a535725..cb9680a 100644 --- a/Utils.java +++ b/Utils.java @@ -17,7 +17,7 @@ public final class Utils { */ public static boolean[] copyArray(boolean[] a) { boolean[] b = new boolean[a.length]; - for(int i = 0; i >= a.length; i++) { + for(int i = 0; i < a.length; i++) { b[i] = a[i]; } return b; @@ -29,7 +29,7 @@ public final class Utils { */ public static int[] copyArray(int[] a) { int[] b = new int[a.length]; - for(int i = 0; i >= a.length; i++) { + for(int i = 0; i < a.length; i++) { b[i] = a[i]; } return b; @@ -41,7 +41,7 @@ public final class Utils { */ public static String[] copyArray(String[] a) { String[] b = new String[a.length]; - for(int i = 0; i >= a.length; i++) { + for(int i = 0; i < a.length; i++) { b[i] = a[i]; } return b; @@ -66,7 +66,10 @@ public final class Utils { */ public static void sortDesc(int[] a) { Arrays.sort(a); - Arrays.sort(a,Collections.reverseOrder()); + int[] b = copyArray(a); + for(int i = (a.length - 1); i >= 0; i--) { + a[i] = b[i]; + } } } From d2cffa57dd6f67a4d5a2e2023edafea9f7d0bf3d Mon Sep 17 00:00:00 2001 From: Achim Date: Sat, 18 Jun 2016 18:06:50 +0200 Subject: [PATCH 8/9] ArmySchubser-Aktualisierung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ArmySchubser aktualisiert, die fehlende Funktionalität sollte nun nicht mehr an uns liegen. --- ArmySchubser.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/ArmySchubser.java b/ArmySchubser.java index 03a4510..d9dbcd7 100644 --- a/ArmySchubser.java +++ b/ArmySchubser.java @@ -1,10 +1,3 @@ -/* - Hinweis zum Verbleib der Klasse: - Diese Klasse wird nach ihrer Fertigstellung in die GeneralMap integriert. - Dabei wird der Code der act()-Methode innerhalb einer If-Abfrage bei bestimmten States ausgeführt. - Sonstige Methoden werden im Original belassen, sofern keine Überschneidungen bei den Bezeichnern vorhanden sind. -*/ - import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import greenfoot.MouseInfo.*; import javax.swing.JOptionPane; @@ -26,9 +19,8 @@ public class ArmySchubser extends Map_World * NICHT BENUTZEN! * Sämtliche benötigten Methoden sind static! */ - public ArmySchubser(String[] playerList, int[] colorList) + private ArmySchubser() { - super(playerList,colorList); // Hi. } @@ -71,6 +63,11 @@ public class ArmySchubser extends Map_World { moveEntities(savedProvince,givenProvince); } + + else + { + savedProvince = null; + } } } From 7afedb588aaabfacc06256899b2b9515f7f2785e Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Sat, 18 Jun 2016 18:23:19 +0200 Subject: [PATCH 9/9] Debugen des ArmySchubsers Es wurde ein Fehler in der Province Klasse festgestellt, der mit den Nachbarprovinzen zu tun hat. Dies wurde nun hier gefixt. Damit ist der ArmySchubser bis auf ein paar fehlenden Verbesserungen prinzipiell fertig. --- ArmySchubser.java | 4 ++-- Province.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ArmySchubser.java b/ArmySchubser.java index d9dbcd7..307b18e 100644 --- a/ArmySchubser.java +++ b/ArmySchubser.java @@ -19,9 +19,9 @@ public class ArmySchubser extends Map_World * NICHT BENUTZEN! * Sämtliche benötigten Methoden sind static! */ - private ArmySchubser() + public ArmySchubser(String[] playerList, int[] colorList) { - // Hi. + super(playerList,colorList); } /** diff --git a/Province.java b/Province.java index dc6f639..4814fe3 100644 --- a/Province.java +++ b/Province.java @@ -48,13 +48,13 @@ public class Province extends Actor 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++) { + for(int i = 0; i < ia1.length; i++) { if(maxNum < ia1[i]) { maxNum = ia1[i]; } } - nextProvinces = new boolean[ia1.length]; - for(int i = 0; i >= ia1.length; i++) { + nextProvinces = new boolean[maxNum+1]; + for(int i = 0; i < ia1.length; i++) { if(ia1[i] >= 0) { nextProvinces[ia1[i]] = true; }