From 10ce6aa054c65a81a8be989b031c8f638a7db2d8 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 21:38:29 +0200 Subject: [PATCH 01/14] =?UTF-8?q?Umschreibungen:=20*=20Erster=20Modi=20ge?= =?UTF-8?q?=C3=A4ndert=20*=20Provinz-Startdaten=20in=20Map=5FWorld=20trans?= =?UTF-8?q?feriert=20*=20PrintLines=20auskommentiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GeneralMap.java | 45 +++------------------------------------------ Map_World.java | 46 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 45 insertions(+), 46 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 299b8c7..874c931 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -42,7 +42,7 @@ public abstract class GeneralMap extends World implements ButtonEvent protected Player[] players; protected int currentPlayer = 0; - protected GameStates status = GameStates.VERSCHIEBEN; + protected GameStates status = GameStates.SETZEN; protected int provinceCount; protected int armyMinimum; @@ -137,47 +137,8 @@ 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); } - /* - Legt die Startprovincen der Spieler fest. - */ - 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[] {0,1,2,2,1,2,1,1,0,1,0,1,2,2,0,1,2,4,2,1,1,2,0,2,0,2,2,3,2,3,2,3,0,1,1,2,1,4,1,3,0,1,2,4,0,2,2,4,1,2,1,1,2,1,0,3,0,3,0,4,2,1,1,1,1,1,0,2,1,2,2,1,1,2,1,4,1,3,0,4,2,1,0,2}; - } 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 - */ - dataL = new int[] {0,1,2,3,2,3,2,2,2,2,2,3,1,2,0,2,1,2,2,2,1,3,2,2,1,3,0,3,0,3,0,3,2,2,3,2,1,4,1,4,0,1,0,2,0,5,0,3,1,2,3,3,3,1,3,2,1,2,1,2,3,1,1,1,3,5,2,2,2,2,2,2,3,1,3,1,3,4,3,1,0,2,3,4}; - } 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 - */ - dataL = new int[] {2,1,0,2,3,2,1,2,1,2,1,2,1,4,3,1,1,2,3,1,3,3,2,1,0,4,0,2,2,3,0,2,1,3,3,2,3,5,3,3,1,2,2,5,2,3,0,2,2,3,2,2,1,3,4,2,4,3,4,3,0,3,0,3,3,1,4,1,4,1,4,2,2,2,3,2,4,2,0,2,4,4,4,2}; - } for(int i = 1; i < provinces.length; i++) { - Province p = provinces[i]; - p.setOwner(dataL[(i-1)*2]); - p.setEntityCount(dataL[(i*2)-1]); - p.redrawProvince(); + provinces[i].redrawProvince(); } } @@ -375,7 +336,7 @@ public abstract class GeneralMap extends World implements ButtonEvent private void chooser() { - System.out.println("Es wird gewürfelt!"); + //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()); diff --git a/Map_World.java b/Map_World.java index 0bf4a2e..a219b07 100644 --- a/Map_World.java +++ b/Map_World.java @@ -10,15 +10,11 @@ Klasse der Standard-Welt public class Map_World extends GeneralMap { - /** - Anzahl der Provinzen. - */ /** Konstruktor der Weltkarte; konstruiert eine GeneralMap mit den Ausmassen 1600 auf 900 Pixel. */ - public Map_World(String[] playerList, int[] colorList) { super(playerList,colorList); @@ -107,6 +103,48 @@ public class Map_World extends GeneralMap provinces[41] = new Province(41 , 6 , 1000, 595 , 1 , "Ost Australien" , new int[] {40 , 42}); provinces[42] = new Province(42 , 6 , 934 , 628 , 1 , "West Australien" , new int[] {40 , 41 , 39}); + /* + Legt die Startprovincen der Spieler fest. + */ + 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[] {0,1,2,2,1,2,1,1,0,1,0,1,2,2,0,1,2,4,2,1,1,2,0,2,0,2,2,3,2,3,2,3,0,1,1,2,1,4,1,3,0,1,2,4,0,2,2,4,1,2,1,1,2,1,0,3,0,3,0,4,2,1,1,1,1,1,0,2,1,2,2,1,1,2,1,4,1,3,0,4,2,1,0,2}; + } 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 + */ + dataL = new int[] {0,1,2,3,2,3,2,2,2,2,2,3,1,2,0,2,1,2,2,2,1,3,2,2,1,3,0,3,0,3,0,3,2,2,3,2,1,4,1,4,0,1,0,2,0,5,0,3,1,2,3,3,3,1,3,2,1,2,1,2,3,1,1,1,3,5,2,2,2,2,2,2,3,1,3,1,3,4,3,1,0,2,3,4}; + } 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 + */ + dataL = new int[] {2,1,0,2,3,2,1,2,1,2,1,2,1,4,3,1,1,2,3,1,3,3,2,1,0,4,0,2,2,3,0,2,1,3,3,2,3,5,3,3,1,2,2,5,2,3,0,2,2,3,2,2,1,3,4,2,4,3,4,3,0,3,0,3,3,1,4,1,4,1,4,2,2,2,3,2,4,2,0,2,4,4,4,2}; + } + for(int i = 1; i < provinces.length; i++) { + Province p = provinces[i]; + p.setOwner(dataL[(i-1)*2]); + p.setEntityCount(dataL[(i*2)-1]); + } + initProvinces(); } } From 12eb9b920c9b300fd6a5c84de14958f3c49140fa Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 21:39:27 +0200 Subject: [PATCH 02/14] Debug Map_World dataL --- Map_World.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Map_World.java b/Map_World.java index a219b07..9c43cd3 100644 --- a/Map_World.java +++ b/Map_World.java @@ -106,7 +106,7 @@ public class Map_World extends GeneralMap /* Legt die Startprovincen der Spieler fest. */ - dataL = new int[(provinces.length-1)*2]; + int[] dataL = new int[(provinces.length-1)*2]; /* dataL speichert folgende Daten: 0. Spieler-ID des Besitzers (Provinz 1) From ecf3bcedf08d32ce2d4957a8fb3c96d8e7814337 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 21:46:43 +0200 Subject: [PATCH 03/14] Debug initProvinces --- GeneralMap.java | 3 --- Map_World.java | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 874c931..8b22015 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -137,9 +137,6 @@ 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); } - for(int i = 1; i < provinces.length; i++) { - provinces[i].redrawProvince(); - } } /** diff --git a/Map_World.java b/Map_World.java index 9c43cd3..04d93c2 100644 --- a/Map_World.java +++ b/Map_World.java @@ -103,6 +103,8 @@ public class Map_World extends GeneralMap provinces[41] = new Province(41 , 6 , 1000, 595 , 1 , "Ost Australien" , new int[] {40 , 42}); provinces[42] = new Province(42 , 6 , 934 , 628 , 1 , "West Australien" , new int[] {40 , 41 , 39}); + initProvinces(); + /* Legt die Startprovincen der Spieler fest. */ @@ -144,7 +146,5 @@ public class Map_World extends GeneralMap p.setOwner(dataL[(i-1)*2]); p.setEntityCount(dataL[(i*2)-1]); } - - initProvinces(); } } From 3fbdfde33551fcc86394bc04604ec71f29a807a6 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 22:11:05 +0200 Subject: [PATCH 04/14] Debug GeneralMap Everything --- GeneralMap.java | 98 ++++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 8b22015..00238ba 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -101,7 +101,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if(status == GameStates.SETZEN) { GreenfootImage GameStatesEmpty = new GreenfootImage(500,textSize); - GreenfootImage GameStates = new GreenfootImage("Setzten! Wähle die Provinz aus!",textSize,new Color(255,255,255),new Color(0,0,0)); + GreenfootImage GameStates = new GreenfootImage("SETZEN! Wähle die Provinz aus!",textSize,new Color(255,255,255),new Color(0,0,0)); // "Setzten" Lern Deutsch, Samuel GameStatesEmpty.drawImage(GameStates,0,0); GreenfootImage States = new GreenfootImage("MapWorld.png"); States.drawImage(GameStatesEmpty,X,Y); @@ -244,16 +244,14 @@ public abstract class GeneralMap extends World implements ButtonEvent return c; } + private void resetClicked() { + for(int i = 1; i <= (provinces.length - 1); i++) { + provinces[i].hasClicked(); + } + } + 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; - } - } else if ( modus == b ) { + if ( modus == b ) { if(status==GameStates.SETZEN && freeArmies == 0 ) { status=GameStates.KAMPF; offenderProvince = null; @@ -294,45 +292,44 @@ public abstract class GeneralMap extends World implements ButtonEvent String maxDiceDefender = ""; private void actFight() { - if(offenderProvince == null) { - OffenderProvince(); - } else { - defenderProvince(); + for(int i = 1; i <= (provinces.length - 1); i++) { + if (provinces[i].hasClicked() == true) { + if(p.getOwner() == currentPlayer) { + OffenderProvince(provinces[i]); + } else { + DefenderProvince(provinces[i]); + } + } } } - private void OffenderProvince() + private void OffenderProvince(Province p) { - for ( int i = 1; i <= (provinces.length - 1); i++) - { - if (provinces[i].hasClicked() == true) - { - offenderProvince = provinces[i]; - provinces[i].redrawProvince(2); - // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als angreifende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); - } + if(offenderProvince != null) { + offenderProvince.redrawProvince(); } + offenderProvince = p; + p.redrawProvince(2); + // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als angreifende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); + chooser(); } - private void defenderProvince() + private void DefenderProvince(Province p) { - { - for (int i = 1; i <= (provinces.length - 1); i++) - { - if (provinces[i].hasClicked() == true)//&& defenderProvince != offenderProvince) - { - defenderProvince = provinces[i]; - provinces[i].redrawProvince(3); - // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als verteidigende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); - chooser(); - break; - } - } + if(defenderProvince != null) { + defenderProvince.redrawProvince(); } + defenderProvince = p; + p.redrawProvince(3); + // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als verteidigende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); + chooser(); } private void chooser() { + if(offenderProvince == null || defenderProvince == null) { + return; + } //System.out.println("Es wird gewürfelt!"); Dice_Offender diceOffender = new Dice_Offender(); // System.out.println("Der Angreifer ereichte folgende Würfelzahlen:"); @@ -371,7 +368,8 @@ public abstract class GeneralMap extends World implements ButtonEvent diceDefender = null; decider(maxDiceOffenderArray, maxDiceDefenderArray); } - + + // berechnet Zahlen und findet Gewinner; führt Konsequenz aus private void decider(int[] maxDiceOffender, int [] maxDiceDefender) { @@ -382,7 +380,7 @@ public abstract class GeneralMap extends World implements ButtonEvent 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"); + JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Dem Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + defenderProvince.getEntityCount() + " Einheiten."); } @@ -391,7 +389,7 @@ public abstract class GeneralMap extends World implements ButtonEvent 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"); + JOptionPane.showMessageDialog(null,"Somit gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten."); } if (maxOffender == maxDefender && offenderProvince.getEntityCount()>1) @@ -399,18 +397,19 @@ public abstract class GeneralMap extends World implements ButtonEvent 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"); + JOptionPane.showMessageDialog(null,"Da es unentschieden ist, gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.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() + ")"); + defenderProvince.setEntityCount(1); + JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) ")."); } + offenderProvince.redrawProvince(); + defenderProvince.redrawProvince(); offenderProvince = null; defenderProvince = null; - } // Einheiten verschieben @@ -418,11 +417,9 @@ public abstract class GeneralMap extends World implements ButtonEvent Province savedProvince = null; private void actMove() { - Province clickedProvince; for ( int i = 1; i <= (provinces.length - 1); i++) { if (provinces[i].hasClicked() == true) { - clickedProvince = provinces[i]; - useProvincesToMove(clickedProvince); + useProvincesToMove(provinces[i]); break; } } @@ -462,18 +459,21 @@ public abstract class GeneralMap extends World implements ButtonEvent */ private void useProvincesToMove(Province givenProvince) { + if(givenProvince.getOwner() != currentPlayer) { + return; + } if (savedProvince == null) { savedProvince = givenProvince; + givenProvince.redrawProvince(2); } - - else if ((savedProvince != null) && (givenProvince != savedProvince) && (savedProvince.getOwner() == givenProvince.getOwner()) && (savedProvince.getOwner() == currentPlayer) ) + else if ((savedProvince != null) && (givenProvince != savedProvince)) { if (givenProvince.isProvinceNear(savedProvince.getID()) == true) { moveEntities(savedProvince,givenProvince); } - + savedProvince.redrawProvince(); savedProvince = null; } } From f8f2c8885d8bf2c31a4aa8680b057341d19b4931 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 22:12:06 +0200 Subject: [PATCH 05/14] Debug GeneralMap Bracket --- GeneralMap.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GeneralMap.java b/GeneralMap.java index 00238ba..e5775c8 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -404,7 +404,7 @@ public abstract class GeneralMap extends World implements ButtonEvent { defenderProvince.setOwner(offenderProvince.getOwner()); defenderProvince.setEntityCount(1); - JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) ")."); + JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ")."); } offenderProvince.redrawProvince(); defenderProvince.redrawProvince(); From 378a73aeee94a3657472ea22488bd56d2f259ccb Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 22:12:56 +0200 Subject: [PATCH 06/14] Debug GeneralMap actFight --- GeneralMap.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GeneralMap.java b/GeneralMap.java index e5775c8..df243cb 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -294,7 +294,7 @@ public abstract class GeneralMap extends World implements ButtonEvent private void actFight() { for(int i = 1; i <= (provinces.length - 1); i++) { if (provinces[i].hasClicked() == true) { - if(p.getOwner() == currentPlayer) { + if(provinces[i].getOwner() == currentPlayer) { OffenderProvince(provinces[i]); } else { DefenderProvince(provinces[i]); From 7edd9a3caa5726c8e7ed46b31a61820712cad6b0 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 22:23:34 +0200 Subject: [PATCH 07/14] Debug Kampf --- GeneralMap.java | 67 +++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index df243cb..d06cc54 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -261,12 +261,10 @@ public abstract class GeneralMap extends World implements ButtonEvent modus.setBackColor(Color.white); modus.setForeColor(Color.black); modus.setText("Kampf\nbeenden"); - System.out.println("KAMPF"); } else if (status==GameStates.KAMPF) { status=GameStates.VERSCHIEBEN; savedProvince = null; modus.setText("Nächster\nSpieler"); - System.out.println("VERSCHIEBEN"); } else if (status==GameStates.VERSCHIEBEN) { freeArmies = -1; if(currentPlayer >= players.length-1) @@ -279,7 +277,6 @@ public abstract class GeneralMap extends World implements ButtonEvent } status=GameStates.SETZEN; modus.setText("Kampf\nbeginnen"); - System.out.println("SETZEN"); } } } @@ -305,13 +302,15 @@ public abstract class GeneralMap extends World implements ButtonEvent private void OffenderProvince(Province p) { - if(offenderProvince != null) { - offenderProvince.redrawProvince(); + if(p.getEntityCount() > 1) { + if(offenderProvince != null) { + offenderProvince.redrawProvince(); + } + offenderProvince = p; + p.redrawProvince(2); + // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als angreifende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); + chooser(); } - offenderProvince = p; - p.redrawProvince(2); - // System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als angreifende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner()); - chooser(); } private void DefenderProvince(Province p) @@ -342,28 +341,31 @@ public abstract class GeneralMap extends World implements ButtonEvent for(int i = 0;i<3;i++) { - if(i == 0) - { - maxDiceOffender = "" + maxDiceOffenderArray[i]; - } - else - { - maxDiceOffender = maxDiceOffender + ";" + maxDiceOffenderArray[i]; + if(maxDiceOffenderArray[i] != 0) { + 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]; + if(maxDiceDefenderArray[i] != 0) { + 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); + JOptionPane.showMessageDialog(null,"Es wurde gewürfelt. Der Angreifer erreichte folgende Würfelzahlen: " + maxDiceOffender + "\nDer Verteidiger erreichte diese Würfelzahlen: " + maxDiceDefender); diceOffender = null; diceDefender = null; decider(maxDiceOffenderArray, maxDiceDefenderArray); @@ -377,32 +379,27 @@ public abstract class GeneralMap extends World implements ButtonEvent int maxOffender = maxDiceOffender[2]; if (maxOffender > maxDefender && defenderProvince.getEntityCount()>1) { - int EntitiesOffender = offenderProvince.getEntityCount(); - int EntitiesDefender = defenderProvince.getEntityCount(); - defenderProvince.setEntityCount(EntitiesDefender - 1); + defenderProvince.removeFromEntities(1); JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Dem Verteidiger (" + getPlayerName(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); + offenderProvince.removeFromEntities(1); JOptionPane.showMessageDialog(null,"Somit gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.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); + offenderProvince.removeFromEntities(1); JOptionPane.showMessageDialog(null,"Da es unentschieden ist, gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten."); } - if (maxOffender>maxDefender && defenderProvince.getEntityCount()==1) + if (defenderProvince.getEntityCount() <= 0) { defenderProvince.setOwner(offenderProvince.getOwner()); + offenderProvince.removeFromEntities(1); defenderProvince.setEntityCount(1); JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ")."); } From 4e6235479d8211e7acf1b5d7a5b74f76379c14c1 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 22:32:17 +0200 Subject: [PATCH 08/14] Debug Fight NotNear --- GeneralMap.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/GeneralMap.java b/GeneralMap.java index d06cc54..1c23911 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -329,6 +329,14 @@ public abstract class GeneralMap extends World implements ButtonEvent if(offenderProvince == null || defenderProvince == null) { return; } + if(!offenderProvince.isProvinceNear(defenderProvince.getID())) { + JOptionPane.showMessageDialog(null,"Die Provinzen liegen nicht mal ansatzweise nebeneinander!"); + offenderProvince.redrawProvince(); + defenderProvince.redrawProvince(); + offenderProvince = null; + defenderProvince = null; + return; + } //System.out.println("Es wird gewürfelt!"); Dice_Offender diceOffender = new Dice_Offender(); // System.out.println("Der Angreifer ereichte folgende Würfelzahlen:"); From 6e3411d7533311e462fe70353f97938dfb460e49 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 22:46:53 +0200 Subject: [PATCH 09/14] Debug Dice_Defender Dice_Offender --- Dice_Defender.java | 3 ++- Dice_Offender.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Dice_Defender.java b/Dice_Defender.java index 8fbf0c7..068279d 100644 --- a/Dice_Defender.java +++ b/Dice_Defender.java @@ -13,7 +13,7 @@ import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and Mouse * @author (your name) * @version (a version number or a date) */ -public class Dice_Defender extends Dice +public class Dice_Defender { /** * Act - do whatever the Dice_Offender wants to do. This method is called whenever @@ -32,6 +32,7 @@ public class Dice_Defender extends Dice */ public int[] dice_defender(int troupNumberDefender) { + diceEyesDefender = new int[2]; if(troupNumberDefender == 1) { diceEyesDefender[0] = (int) (Math.random() * 6 +1); diff --git a/Dice_Offender.java b/Dice_Offender.java index 9afea92..2d2973a 100644 --- a/Dice_Offender.java +++ b/Dice_Offender.java @@ -13,7 +13,7 @@ import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and Mouse * @author (your name) * @version (a version number or a date) */ -public class Dice_Offender extends Dice +public class Dice_Offender { /** * Act - do whatever the Dice_Offender wants to do. This method is called whenever @@ -32,6 +32,7 @@ public class Dice_Offender extends Dice */ public int[] dice_offender(int troupNumberOffender) { + diceEyesOffender = new int[3]; if(troupNumberOffender == 1) { System.out.println("Mit einer verbleibenden Truppe auff dem Feld kann man nicht angreifen!"); From 97333d1033a2146829a5657f72a4f22bee313c19 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 22:51:19 +0200 Subject: [PATCH 10/14] Debug GeneralMap --- GeneralMap.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GeneralMap.java b/GeneralMap.java index 1c23911..ab52630 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -346,7 +346,7 @@ public abstract class GeneralMap extends World implements ButtonEvent int[] maxDiceDefenderArray = diceDefender.dice_defender(defenderProvince.getEntityCount()); Arrays.sort(maxDiceOffenderArray); Arrays.sort(maxDiceDefenderArray); - + maxDiceOffender = ""; for(int i = 0;i<3;i++) { if(maxDiceOffenderArray[i] != 0) { @@ -360,6 +360,7 @@ public abstract class GeneralMap extends World implements ButtonEvent } } } + maxDiceDefender = ""; for(int i = 0;i<2;i++) { if(maxDiceDefenderArray[i] != 0) { From 44b815af3e81182bc8d8a8dc5b7f292d0ecabc8d Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 23:00:04 +0200 Subject: [PATCH 11/14] GeneralMap Fight --- GeneralMap.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index ab52630..ac0d9a7 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -83,7 +83,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if(status == GameStates.KAMPF) { GreenfootImage GameStatesEmpty = new GreenfootImage(750,textSize); - GreenfootImage GameStates = new GreenfootImage("KAMPF!!! Wähle die Provinz aus, die du angreifen möchtest!",textSize,new Color(255,255,255),new Color(0,0,0)); + GreenfootImage GameStates = new GreenfootImage("KAMPF!!! Wähle die Provinzen aus, die kämpfen sollen, " + getPlayerName(),textSize,new Color(255,255,255),new Color(0,0,0)); GameStatesEmpty.drawImage(GameStates,0,0); GreenfootImage States = new GreenfootImage("MapWorldFight.png"); States.drawImage(GameStatesEmpty,X,Y); @@ -92,7 +92,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if(status == GameStates.VERSCHIEBEN) { GreenfootImage GameStatesEmpty = new GreenfootImage(500,textSize); - GreenfootImage GameStates = new GreenfootImage("VERSCHIEBEN! Wähle die Provinz aus!",textSize,new Color(255,255,255),new Color(0,0,0)); + GreenfootImage GameStates = new GreenfootImage("VERSCHIEBEN! Wähle die Provinzen aus, bei denen du schubsen möchtest, " + getPlayerName(),new Color(255,255,255),new Color(0,0,0)); GameStatesEmpty.drawImage(GameStates,0,0); GreenfootImage States = new GreenfootImage("MapWorldMove.png"); States.drawImage(GameStatesEmpty,X,Y); @@ -101,7 +101,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if(status == GameStates.SETZEN) { GreenfootImage GameStatesEmpty = new GreenfootImage(500,textSize); - GreenfootImage GameStates = new GreenfootImage("SETZEN! Wähle die Provinz aus!",textSize,new Color(255,255,255),new Color(0,0,0)); // "Setzten" Lern Deutsch, Samuel + GreenfootImage GameStates = new GreenfootImage("SETZEN! Wähle die Provinz aus, der du schenken möchtest, " + getPlayerName(),textSize,new Color(255,255,255),new Color(0,0,0)); // "Setzten" Lern Deutsch, Samuel GameStatesEmpty.drawImage(GameStates,0,0); GreenfootImage States = new GreenfootImage("MapWorld.png"); States.drawImage(GameStatesEmpty,X,Y); @@ -405,7 +405,7 @@ public abstract class GeneralMap extends World implements ButtonEvent JOptionPane.showMessageDialog(null,"Da es unentschieden ist, gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten."); } - if (defenderProvince.getEntityCount() <= 0) + if (maxOffender > maxDefender && defenderProvince.getEntityCount() <= 1) { defenderProvince.setOwner(offenderProvince.getOwner()); offenderProvince.removeFromEntities(1); From 8a566be03ba40ec9307c5c60a0ddedbf00a7c563 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 23:01:43 +0200 Subject: [PATCH 12/14] Debug last fix --- GeneralMap.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index ac0d9a7..a48628c 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -83,7 +83,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if(status == GameStates.KAMPF) { GreenfootImage GameStatesEmpty = new GreenfootImage(750,textSize); - GreenfootImage GameStates = new GreenfootImage("KAMPF!!! Wähle die Provinzen aus, die kämpfen sollen, " + getPlayerName(),textSize,new Color(255,255,255),new Color(0,0,0)); + GreenfootImage GameStates = new GreenfootImage("KAMPF!!! Wähle die Provinzen aus, die kämpfen sollen, " + getPlayerName() + ".",textSize,new Color(255,255,255),new Color(0,0,0)); GameStatesEmpty.drawImage(GameStates,0,0); GreenfootImage States = new GreenfootImage("MapWorldFight.png"); States.drawImage(GameStatesEmpty,X,Y); @@ -92,7 +92,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if(status == GameStates.VERSCHIEBEN) { GreenfootImage GameStatesEmpty = new GreenfootImage(500,textSize); - GreenfootImage GameStates = new GreenfootImage("VERSCHIEBEN! Wähle die Provinzen aus, bei denen du schubsen möchtest, " + getPlayerName(),new Color(255,255,255),new Color(0,0,0)); + GreenfootImage GameStates = new GreenfootImage("VERSCHIEBEN! Wähle die Provinzen aus, bei denen du schubsen möchtest, " + getPlayerName() + ".",textSize,new Color(255,255,255),new Color(0,0,0)); GameStatesEmpty.drawImage(GameStates,0,0); GreenfootImage States = new GreenfootImage("MapWorldMove.png"); States.drawImage(GameStatesEmpty,X,Y); @@ -101,7 +101,7 @@ public abstract class GeneralMap extends World implements ButtonEvent if(status == GameStates.SETZEN) { GreenfootImage GameStatesEmpty = new GreenfootImage(500,textSize); - GreenfootImage GameStates = new GreenfootImage("SETZEN! Wähle die Provinz aus, der du schenken möchtest, " + getPlayerName(),textSize,new Color(255,255,255),new Color(0,0,0)); // "Setzten" Lern Deutsch, Samuel + GreenfootImage GameStates = new GreenfootImage("SETZEN! Wähle die Provinz aus, der du schenken möchtest, " + getPlayerName() + ".",textSize,new Color(255,255,255),new Color(0,0,0)); // "Setzten" Lern Deutsch, Samuel GameStatesEmpty.drawImage(GameStates,0,0); GreenfootImage States = new GreenfootImage("MapWorld.png"); States.drawImage(GameStatesEmpty,X,Y); From 2e566181dbffedb48aa26496067ad6952f0e7319 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 23:04:20 +0200 Subject: [PATCH 13/14] Debug very last --- GeneralMap.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index a48628c..eb07d3f 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -386,11 +386,17 @@ public abstract class GeneralMap extends World implements ButtonEvent int maxDefender = maxDiceDefender[1]; int maxOffender = maxDiceOffender[2]; - if (maxOffender > maxDefender && defenderProvince.getEntityCount()>1) + if (maxOffender > maxDefender) { defenderProvince.removeFromEntities(1); JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Dem Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + defenderProvince.getEntityCount() + " Einheiten."); - + if (defenderProvince.getEntityCount() <= 0) + { + defenderProvince.setOwner(offenderProvince.getOwner()); + offenderProvince.removeFromEntities(1); + defenderProvince.setEntityCount(1); + JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ")."); + } } if (maxOffender < maxDefender && offenderProvince.getEntityCount()>1) @@ -405,13 +411,6 @@ public abstract class GeneralMap extends World implements ButtonEvent JOptionPane.showMessageDialog(null,"Da es unentschieden ist, gewinnt der Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + "). Dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + offenderProvince.getEntityCount() + " Einheiten."); } - if (maxOffender > maxDefender && defenderProvince.getEntityCount() <= 1) - { - defenderProvince.setOwner(offenderProvince.getOwner()); - offenderProvince.removeFromEntities(1); - defenderProvince.setEntityCount(1); - JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ")."); - } offenderProvince.redrawProvince(); defenderProvince.redrawProvince(); offenderProvince = null; From ec151f052d7c6d76acdee46580041237f933e682 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 4 Jul 2016 23:05:04 +0200 Subject: [PATCH 14/14] Debug last last --- GeneralMap.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index eb07d3f..0bd02fa 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -389,13 +389,13 @@ public abstract class GeneralMap extends World implements ButtonEvent if (maxOffender > maxDefender) { defenderProvince.removeFromEntities(1); - JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Dem Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + defenderProvince.getEntityCount() + " Einheiten."); - if (defenderProvince.getEntityCount() <= 0) - { + if (defenderProvince.getEntityCount() <= 0) { defenderProvince.setOwner(offenderProvince.getOwner()); offenderProvince.removeFromEntities(1); defenderProvince.setEntityCount(1); JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Die Provinz gehört fortan dem Angreifer (" + getPlayerName(offenderProvince.getOwner()) + ")."); + } else { + JOptionPane.showMessageDialog(null,"Somit gewinnt der Angreifer (" + getPlayerName(offenderProvince.getOwner()) + "). Dem Verteidiger (" + getPlayerName(defenderProvince.getOwner()) + ") wird eine Einheit abgezogen. Er hat nun noch " + defenderProvince.getEntityCount() + " Einheiten."); } }