You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
6.1 KiB
Java
165 lines
6.1 KiB
Java
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
|
import java.util.Arrays;
|
|
import javax.swing.JOptionPane;
|
|
|
|
/**
|
|
* Write a description of class Fight here.
|
|
*
|
|
* @author (your name)
|
|
* @version (a version number or a date)
|
|
*/
|
|
public class Fight extends Map_World
|
|
{
|
|
|
|
/**
|
|
* Constructor for objects of class Fight.
|
|
*
|
|
*/
|
|
Province offenderProvince;
|
|
Province defenderProvince;
|
|
String maxDiceOffender = "";
|
|
String maxDiceDefender = "";
|
|
|
|
public Fight(String[] playerList, int[] colorList)
|
|
{
|
|
super(playerList,colorList);
|
|
|
|
}
|
|
|
|
public void test()
|
|
{
|
|
provinces[1].setEntityCount(10);
|
|
provinces[2].setEntityCount(20);
|
|
provinces[1].setOwner(1);
|
|
provinces[2].setOwner(2);
|
|
provinces[1].redrawProvince();
|
|
provinces[2].redrawProvince();
|
|
|
|
}
|
|
|
|
public void act()
|
|
{
|
|
if(offenderProvince == null)
|
|
{
|
|
|
|
OffenderProvince();
|
|
}
|
|
else
|
|
{
|
|
defenderProvince();
|
|
}
|
|
}
|
|
|
|
private void OffenderProvince()
|
|
{
|
|
for ( int i = 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());
|
|
}
|
|
}
|
|
}
|
|
|
|
private void defenderProvince()
|
|
{
|
|
{
|
|
for (int i = 1; i <= provinceCount; i++)
|
|
{
|
|
if (provinces[i].hasClicked() == true)//&& defenderProvince != offenderProvince)
|
|
{
|
|
defenderProvince = provinces[i];
|
|
// System.out.println("Die Provinz " + provinces[i].getDisplayName() + " wurde als verteidigende Provinz ausgewählt! Sie gehört Spieler" + provinces[i].getOwner());
|
|
chooser();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void chooser()
|
|
{
|
|
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());
|
|
Dice_Defender diceDefender = new Dice_Defender();
|
|
// System.out.println("Der Verteidiger ereichte folgende Würfelzahlen:");
|
|
int[] maxDiceDefenderArray = diceDefender.dice_defender(defenderProvince.getEntityCount());
|
|
Arrays.sort(maxDiceOffenderArray);
|
|
Arrays.sort(maxDiceDefenderArray);
|
|
|
|
for(int i = 0;i<3;i++)
|
|
{
|
|
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];
|
|
}
|
|
|
|
}
|
|
JOptionPane.showMessageDialog(null,"Es wurde gewürfelt. Der Angreifer erreichte folgende Würfelzahlen: " + maxDiceOffender + "\n Der Verteidiger erreichte diese Würfelzahlen: " + maxDiceDefender);
|
|
diceOffender = null;
|
|
diceDefender = null;
|
|
decider(maxDiceOffenderArray, maxDiceDefenderArray);
|
|
}
|
|
|
|
private void decider(int[] maxDiceOffender, int [] maxDiceDefender)
|
|
{
|
|
|
|
int maxDefender = maxDiceDefender[1];
|
|
int maxOffender = maxDiceOffender[2];
|
|
if (maxOffender > maxDefender && defenderProvince.getEntityCount()>1)
|
|
{
|
|
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");
|
|
|
|
}
|
|
|
|
if (maxOffender < maxDefender && offenderProvince.getEntityCount()>1)
|
|
{
|
|
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");
|
|
}
|
|
|
|
if (maxOffender == maxDefender && offenderProvince.getEntityCount()>1)
|
|
{
|
|
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");
|
|
}
|
|
|
|
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() + ")");
|
|
}
|
|
offenderProvince = null;
|
|
defenderProvince = null;
|
|
|
|
}
|
|
}
|
|
|
|
//Ein <3 für Felix (von Aaron)(geschrieben von Samuel)(aber Aaron wollte das ich des schreib)
|