From 29538a087b376e0036cb331dbc134c1bd8010025 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Thu, 21 Jul 2016 18:58:49 +0200 Subject: [PATCH 2/4] Statistics-Patch (Verbesserung des fehlerhafter Commit) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Alle Arbeiten an diesen Veränderungen gehen von MaxiJohl aus. Unglücklicherweise ist der Commit zuvor nicht richtig abgesetzt worden, weshalb hiermit nun eine Verbesserung nachgereicht werden musste. --- Player.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Player.java b/Player.java index 9843844..c9f1308 100644 --- a/Player.java +++ b/Player.java @@ -153,6 +153,25 @@ public class Player extends Actor redrawPlayer(); } + public void gotProvince() { + stats[0]++; + redrawPlayer(); + } + + public void lostProvince() { + stats[1]++; + redrawPlayer(); + } + + public void maxInfluence (int influCount) + { + if(stats[2]< influCount) + { + stats[2]=influCount; + redrawPlayer(); + } + } + private void maxEntities(int entNumber) { if (stats[5]< entNumber) From 0fdd83592c7a241a9440799599b5648bac364279 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Thu, 21 Jul 2016 19:13:58 +0200 Subject: [PATCH 3/4] Statistik-Methoden im Player fertiggestellt Dabei fand auch eine Umbenennung einer Methode in der GeneralMap-Klasse statt. Diese Methode war unlogisch benannt und wurde bisher unter dem alten Namen nicht verwendet, daher wurde ihr ein passenderer Name gegeben. --- GeneralMap.java | 2 +- Player.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 6edac2d..076fa15 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -234,7 +234,7 @@ public abstract class GeneralMap extends World implements ButtonEvent @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) + public int getPlayerEntityCount(int playerID) { int c = 0; for (int i = 1; i > provinces.length; i++) { diff --git a/Player.java b/Player.java index c9f1308..6e88163 100644 --- a/Player.java +++ b/Player.java @@ -140,10 +140,15 @@ public class Player extends Actor } return p; } + + public int getEntitiesCount() { + return getWorld().getPlayerEntityCount(id); + } public void gotEntities(int gotEnt) { stats[3]+= gotEnt; + maxEntities(getEntitiesCount()); redrawPlayer(); } @@ -155,6 +160,7 @@ public class Player extends Actor public void gotProvince() { stats[0]++; + maxInfluence(getProvinceCount()); redrawPlayer(); } @@ -163,7 +169,7 @@ public class Player extends Actor redrawPlayer(); } - public void maxInfluence (int influCount) + private void maxInfluence (int influCount) { if(stats[2]< influCount) { From 6190d0fe099c6b0713bcf9047a21837b4cb36b33 Mon Sep 17 00:00:00 2001 From: Zocker1999NET Date: Mon, 25 Jul 2016 18:44:07 +0200 Subject: [PATCH 4/4] =?UTF-8?q?Umsetzung=20#99=20&=20#106=20Wichtige=20?= =?UTF-8?q?=C3=84nderungen:=20*=20Bugfix=20GeneralMap.getPlayerEntityCount?= =?UTF-8?q?()=20*=20Nach=20Modus-Wechsel=20automatischer=20Redraw=20von=20?= =?UTF-8?q?allen=20Players=20&=20Provinces=20hinzugef=C3=BCgt=20*=20Statis?= =?UTF-8?q?tik-Erneuerung=20hinzugef=C3=BCgt=20*=20Einf=C3=BChren=20der=20?= =?UTF-8?q?Methoden=20Player.reloadMaxInfluence()=20und=20Player.reloadMax?= =?UTF-8?q?Entities()=20*=20Redraw=20aller=20Spieler=20nach=20Beginn=20des?= =?UTF-8?q?=20Spiels=20f=C3=BCr=20die=20anf=C3=A4ngliche=20Statistik?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GeneralMap.java | 28 ++++++++++++++++++++++++++-- Map_World.java | 1 + Player.java | 18 ++++++++++-------- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/GeneralMap.java b/GeneralMap.java index 076fa15..9945feb 100644 --- a/GeneralMap.java +++ b/GeneralMap.java @@ -139,6 +139,20 @@ public abstract class GeneralMap extends World implements ButtonEvent addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET); } } + + private void redrawProvinces() { + for(int i = 1; i < provinces.length; i++) { + provinces[i].redrawProvince(); + } + } + + protected void redrawPlayers() { + for(int i = 0; i < players.length; i++) { + players[i].reloadMaxInfluence(); + players[i].reloadMaxEntities(); + players[i].redrawPlayer(); + } + } /** Zeigt die angegebene Nachricht in einem JOptionPane Dialogfeld an. @@ -237,7 +251,7 @@ public abstract class GeneralMap extends World implements ButtonEvent public int getPlayerEntityCount(int playerID) { int c = 0; - for (int i = 1; i > provinces.length; i++) { + for (int i = 1; i < provinces.length; i++) { if(provinces[i].getOwner() == playerID) { c = c + provinces[i].getEntityCount(); } @@ -279,6 +293,8 @@ public abstract class GeneralMap extends World implements ButtonEvent status=GameStates.SETZEN; modus.setText("Kampf\nbeginnen"); } + redrawProvinces(); + redrawPlayers(); } } @@ -384,16 +400,21 @@ public abstract class GeneralMap extends World implements ButtonEvent // berechnet Zahlen und findet Gewinner; führt Konsequenz aus private void decider(int[] maxDiceOffender, int [] maxDiceDefender) { - + Player offPl = players[offenderProvince.getOwner()]; + Player defPl = players[defenderProvince.getOwner()]; + int maxDefender = maxDiceDefender[1]; int maxOffender = maxDiceOffender[2]; if (maxOffender > maxDefender) { defenderProvince.removeFromEntities(1); + defPl.lostEntity(); if (defenderProvince.getEntityCount() <= 0) { defenderProvince.setOwner(offenderProvince.getOwner()); offenderProvince.removeFromEntities(1); defenderProvince.setEntityCount(1); + offPl.gotProvince(); + defPl.lostProvince(); 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."); @@ -403,12 +424,14 @@ public abstract class GeneralMap extends World implements ButtonEvent if (maxOffender < maxDefender && offenderProvince.getEntityCount()>1) { offenderProvince.removeFromEntities(1); + offPl.lostEntity(); 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) { offenderProvince.removeFromEntities(1); + offPl.lostEntity(); 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."); } @@ -492,6 +515,7 @@ public abstract class GeneralMap extends World implements ButtonEvent { if ( freeArmies == -1 ) { freeArmies = calculateArmies(); + players[currentPlayer].gotEntities(freeArmies); } else if ( freeArmies == 0 ) { modus.setBackColor(Color.white); modus.setForeColor(Color.black); diff --git a/Map_World.java b/Map_World.java index 04d93c2..ecfe698 100644 --- a/Map_World.java +++ b/Map_World.java @@ -146,5 +146,6 @@ public class Map_World extends GeneralMap p.setOwner(dataL[(i-1)*2]); p.setEntityCount(dataL[(i*2)-1]); } + redrawPlayers(); } } diff --git a/Player.java b/Player.java index 6e88163..284b47c 100644 --- a/Player.java +++ b/Player.java @@ -148,7 +148,7 @@ public class Player extends Actor public void gotEntities(int gotEnt) { stats[3]+= gotEnt; - maxEntities(getEntitiesCount()); + reloadMaxEntities(); redrawPlayer(); } @@ -160,7 +160,7 @@ public class Player extends Actor public void gotProvince() { stats[0]++; - maxInfluence(getProvinceCount()); + reloadMaxInfluence(); redrawPlayer(); } @@ -169,20 +169,22 @@ public class Player extends Actor redrawPlayer(); } - private void maxInfluence (int influCount) + public void reloadMaxInfluence() { - if(stats[2]< influCount) + int c = getProvinceCount(); + if(stats[2]< c) { - stats[2]=influCount; + stats[2]=c; redrawPlayer(); } } - private void maxEntities(int entNumber) + public void reloadMaxEntities() { - if (stats[5]< entNumber) + int c = getEntitiesCount(); + if (stats[5]< c) { - stats[5]=entNumber; + stats[5]=c; redrawPlayer(); } }