JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von "+sourceProvince.getDisplayName()+" nach "+destinationProvince.getDisplayName()+" zu verschieben, Köhler.");
importgreenfoot.*;// (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
importjava.util.Arrays;
importjavax.swing.JOptionPane;
/**
*WriteadescriptionofclassFighthere.
*
*@author(yourname)
*@version(aversionnumberoradate)
*/
publicclassFightextendsMap_World
{
/**
*ConstructorforobjectsofclassFight.
*
*/
ProvinceoffenderProvince;
ProvincedefenderProvince;
StringmaxDiceOffender="";
StringmaxDiceDefender="";
publicFight(String[]playerList,int[]colorList)
{
super(playerList,colorList);
}
publicvoidtest()
{
provinces[1].setEntityCount(10);
provinces[2].setEntityCount(20);
provinces[1].setOwner(1);
provinces[2].setOwner(2);
provinces[1].redrawProvince();
provinces[2].redrawProvince();
}
publicvoidact()
{
if(offenderProvince==null)
{
OffenderProvince();
}
else
{
defenderProvince();
}
}
privatevoidOffenderProvince()
{
for(inti=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());
// System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als verteidigende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner());
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,"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 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 (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 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)
// 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!
@ -131,4 +509,205 @@ public abstract class GeneralMap extends World
returnc;
}
publicvoidbuttonClicked(Buttonb){
if(status==GameStates.KAMPF){
status=GameStates.VERSCHIEBEN;
}elseif(status==GameStates.VERSCHIEBEN){
status=GameStates.KAMPF;
currentPlayer++;
if(currentPlayer>=players.length){
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
privatevoidOffenderProvince()
{
for(inti=1;i<=(provinces.length-1);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());
// System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als verteidigende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner());
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,"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 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 (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 Angreifer (Spieler "+offenderProvince.getOwner()+"). Die Provinz gehört fortan dem Angreifer ("+offenderProvince.getOwner()+")");
JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von "+sourceProvince.getDisplayName()+" nach "+destinationProvince.getDisplayName()+" zu verschieben, Köhler.");
@ -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