diff --git a/Colours.java b/Colours.java index 8675db2..c763e19 100644 --- a/Colours.java +++ b/Colours.java @@ -8,118 +8,127 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class Colours extends World implements ButtonEvent { - Button schwarz = new Button ("Schwarz", 16, this); - Button blau = new Button ("Blau", 16, this); - Button grün = new Button ("Grün", 16, this); - Button rot = new Button ("Rot", 16, this); - Button lila = new Button ("Lila", 16, this); - Button gelb = new Button ("Gelb", 16, this); - Button weiter = new Button ("Weiter", 16, this); - int [] color = new int [6]; - String [] pn = new String [6]; - int x = 0; - boolean possw = true; - boolean posbl = true; - boolean posgr = true; - boolean posrt = true; - boolean posgb = true; - boolean posli = true; - int sw = 1; - int bl = 2; - int gr = 3; - int rt = 4; - int gb = 5; - int li = 6; - - /** - * Constructor for objects of class Colors. - * - */ - public Colours(int x, int y, int z) - { - - super(x, y, z); - addObject(schwarz, 50, 30); - addObject ( blau, 170, 30); - addObject ( grün, 280, 30); - addObject ( rot, 390, 30); - addObject(gelb, 500, 30); - addObject(lila, 610, 30); - addObject (weiter, 335,90); - schwarz.setSize(100, 50); - gelb.setSize(100, 50); - blau.setSize(100, 50); - grün.setSize(100, 50); - rot.setSize(100, 50); - lila.setSize(100, 50); - weiter.setSize(100, 50); - - } - // Überprüft, ob ein Farbbutton geklickt wurde - //Überprüft, ob die Farbe noch nicht ausgewählt wurde - // Wenn alle Bedingungen erfüllt wurden: - // Setzt die aktuelle Stelle des Farbarrays gleich der Zahl der aktuellen Farbe - // erhöht die Variable zum Durchzählen um eins - // verhindert durch falschsetzten einer Variable die Wiederauswahl einer Farbe - // wenn Weiter geklickt wurde und x größer 1 ist wird eine neue Welt Map erzeugt, - //der per Konstruktor die Daten der Colorklasse übertragen werden, dannach wird die Map die aktive Welt - public void buttonClicked (Button b) - { - - if ( b == schwarz && possw == true) - { - color [x] = sw; - pn[x]="Schwarz"; - x+=1; - possw = false; - } - if (b == blau && posbl == true) - { - color[x] = bl; - pn[x] = "Blau"; - x+=1; - posbl = false; - } - if (b == grün && posgr == true ) - { - color[x] = gr; - pn[x]="Grün"; - x+=1; - posgr = false; - } - if ( b == rot && posrt == true) - { - color[x] = rt; - pn[x]="Rot"; - x+=1; - posrt = false; - } - if ( b == gelb && posgb == true) - { - color [x] = gb; - pn[x]="Gelb"; - x+=1; - posgb = false; - } - if ( b == lila && posli == true) - { - color [x] = li; - pn[x]="Lila"; - x+=1; - posli = false; - } - if ( b == weiter && x >=2 ) - { - String[] newpn = new String[x]; - int[] newcolor = new int[x]; - for (int i = 0; i< x; i++) - { - newpn[i] = pn[i]; - newcolor[i] = color[i]; - } - World m = new Map(newcolor, x,newpn); - Greenfoot.setWorld(m); - } - } - + Button schwarz = new Button ("Schwarz", 16, this); + Button blau = new Button ("Blau", 16, this); + Button grün = new Button ("Grün", 16, this); + Button rot = new Button ("Rot", 16, this); + Button lila = new Button ("Lila", 16, this); + Button gelb = new Button ("Gelb", 16, this); + Button weiter = new Button ("Weiter", 16, this); + int [] color = new int [6]; + String [] pn = new String [6]; + int x = 0; + boolean possw = true; + boolean posbl = true; + boolean posgr = true; + boolean posrt = true; + boolean posgb = true; + boolean posli = true; + int sw = 1; + int bl = 2; + int gr = 3; + int rt = 4; + int gb = 5; + int li = 6; + + /** + * Constructor for objects of class Colors. + * + */ + public Colours(int x, int y, int z) + { + + super(x, y, z); + addObject(schwarz, 50, 30); + addObject ( blau, 170, 30); + addObject ( grün, 280, 30); + addObject ( rot, 390, 30); + addObject(gelb, 500, 30); + addObject(lila, 610, 30); + addObject (weiter, 335,90); + schwarz.setSize(100, 50); + gelb.setSize(100, 50); + blau.setSize(100, 50); + grün.setSize(100, 50); + rot.setSize(100, 50); + lila.setSize(100, 50); + weiter.setSize(100, 50); + + } + // Überprüft, ob ein Farbbutton geklickt wurde + //Überprüft, ob die Farbe noch nicht ausgewählt wurde + // Wenn alle Bedingungen erfüllt wurden: + // Setzt die aktuelle Stelle des Farbarrays gleich der Zahl der aktuellen Farbe + // erhöht die Variable zum Durchzählen um eins + // verhindert durch falschsetzten einer Variable die Wiederauswahl einer Farbe + // wenn Weiter geklickt wurde und x größer 1 ist wird eine neue Welt Map erzeugt, + //der per Konstruktor die Daten der Colorklasse übertragen werden, dannach wird die Map die aktive Welt + public void buttonClicked (Button b) + { + if ( b == schwarz && possw == true) + { + color[x] = sw; + pn[x]="Schwarz"; + x+=1; + possw = false; + + } + if (b == blau && posbl == true) + { + color[x] = bl; + pn[x] = "Blau"; + x+=1; + posbl = false; + + } + if (b == grün && posgr == true ) + { + color[x] = gr; + pn[x]="Grün"; + x+=1; + posgr = false; + + } + if ( b == rot && posrt == true) + { + color[x] = rt; + pn[x]="Rot"; + x+=1; + posrt = false; + + } + if ( b == gelb && posgb == true) + { + color [x] = gb; + pn[x]="Gelb"; + x+=1; + posgb = false; + + } + if ( b == lila && posli == true) + { + color [x] = li; + pn[x]="Lila"; + x+=1; + posli = false; + + } + if ( b == weiter && x >=2 ) + { + String[] newpn = new String[x]; + int[] newcolor = new int[x]; + for (int i = 0; i< x; i++) + { + newpn[i] = pn[i]; + newcolor[i] = color[i]; + + } + + World m = new Map(newcolor,x,newpn); + Greenfoot.setWorld(m); + } + + } } + + diff --git a/Debug3.java b/Debug3.java index f9e70c0..8f5d774 100644 --- a/Debug3.java +++ b/Debug3.java @@ -2,7 +2,7 @@ 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} + new int[] {1,2,3} ); } } \ No newline at end of file diff --git a/Map.java b/Map.java index 59f39cf..f410d16 100644 --- a/Map.java +++ b/Map.java @@ -11,8 +11,8 @@ public class Map extends World implements ButtonEvent private Button map1 = new Button ("map1",16,this); private Button map2 = new Button ("map2",16,this); private Button fertigst = new Button (" Fertigstellen",16,this); - int [] colour = new int[6]; - String [] pn = new String [6]; + int[] colour; + String[] pn; int pnu; //private int x; //private int y; @@ -20,11 +20,12 @@ public class Map extends World implements ButtonEvent private Map_World MW ; // int [] newcolour = new int [pnu]; // String [] newpn = new String [pnu]; - public Map( int [] bunt, int zahl , String [] name) + public Map( int[] bunt, int zahl , String [] name) { - super (1600,900,1); - for (int i=0; i= 0 ist, die Sternenanzahl um eine gewählte Anzahl verringert public int removeFromStars(int sub) @@ -111,37 +112,37 @@ public class Player extends Actor } redrawPlayer(); return stars; - + } public int getProvinceCount () { GeneralMap w= getWorld(); - int[] provinces = w.getProvinceOwners(); - for (int x=0; x<=42; x++ ) + // int[] provinces = w.getProvinceOwners(); + for (int x=1; x<=42; x++ ) { - if ( provinces [x] ==id) + c = w.provinces[x].getOwner(); + if (c ==id+1) { provZahl++; - + stats[2] = provZahl; + redrawPlayer(); } } - if(stats[2] < provZahl) - { - stats[2]=provZahl; - - } return provZahl; } public void gotEntities(int gotEnt) { stats[3]+= gotEnt; + redrawPlayer(); } public void lostEntity() { + stats[4]+=1; + redrawPlayer(); } private void maxEntities(int entNumber) @@ -149,6 +150,7 @@ public class Player extends Actor if (stats[5]< entNumber) { stats[5]=entNumber; + redrawPlayer(); } } @@ -168,6 +170,7 @@ public class Player extends Actor } } + redrawPlayer(); return pBesitzer; } @@ -191,38 +194,47 @@ public class Player extends Actor lostProv = true; stats[1]+=1; } + redrawPlayer(); provVgl = provZahl; } public boolean getGotProvince () { + redrawPlayer(); return gotProv; } public boolean getLostProvince() { + redrawPlayer(); return lostProv; } public int[] getStatistics() { + redrawPlayer(); return stats; } + public int setColor(int c) { - color = c; - redrawPlayer(); - return color; - + color = c; + redrawPlayer(); + return color; + } - + public void redrawPlayer() { int textSize = 20; + if(n == null) + { + n = "leererSpieler"; + } GreenfootImage statistics = new GreenfootImage(137,120); GreenfootImage Name = new GreenfootImage(n,textSize,new Color(0,0,0),new Color(1.0f,1.0f,1.0f,0.5f)); statistics.drawImage(Name,0,0); - + setImage(statistics); oDecide(statistics,textSize); } @@ -235,32 +247,32 @@ public class Player extends Actor { case 2: flag = new GreenfootImage("images\\BlaueArmee.jpg"); - + redraw(statistics,flag,textSize); break; case 5: flag = new GreenfootImage("images\\GelbeArmee.jpg"); - + redraw(statistics,flag,textSize); break; case 6: flag = new GreenfootImage("images\\LilaArmee.jpg"); - + redraw(statistics,flag,textSize); break; case 4: flag = new GreenfootImage("images\\RoteArmee.jpg"); - + redraw(statistics,flag,textSize); break; case 1: flag = new GreenfootImage("images\\SchwarzeArmee.jpg"); - + redraw(statistics,flag,textSize); break; case 3: flag = new GreenfootImage("images\\GrueneArmee.jpg"); - + redraw(statistics,flag,textSize); break; } @@ -269,14 +281,12 @@ public class Player extends Actor private void redraw(GreenfootImage statistics,GreenfootImage flag, int textSize) { - + flag.scale(137,83); statistics.drawImage(flag,0,textSize); - GreenfootImage playerStatistics = new GreenfootImage(stats[0] + "||" + stats[1] + "||" + stats[2],textSize,new Color(0,0,0),new Color(1.0f,1.0f,1.0f,0.5f)); - GreenfootImage playerStatistics2 = new GreenfootImage(stats[3] + "||" + stats[4] + "||" + stats[5],textSize,new Color(0,0,0),new Color(1.0f,1.0f,1.0f,0.5f)); - statistics.drawImage(playerStatistics, 0, 123); - statistics.drawImage(playerStatistics2, 0, 123 + textSize); - + GreenfootImage playerStatistics = new GreenfootImage(stats[0] + "||" + stats[1] + "||" + stats[2] + "||" +stats[3] + "||" + stats[4] + "||" + stats[5],textSize,new Color(0,0,0),new Color(1.0f,1.0f,1.0f,0.5f)); + statistics.drawImage(playerStatistics, 0, 103); + setImage(statistics); } }