Merge pull request #36 from HGE-IT-Course-2016/GruenRoteBranch

ArmySchubser-Aktualisierung
Wird nun früher als geplant durchgelassen, um dringende Fehlerverbesserungen bei verschiedenen anderen Klassen durchzuführen.
pull/40/head
Felix Stupp 8 years ago committed by GitHub
commit 70232ec57b

@ -1,10 +1,3 @@
/*
Hinweis zum Verbleib der Klasse:
Diese Klasse wird nach ihrer Fertigstellung in die GeneralMap integriert.
Dabei wird der Code der act()-Methode innerhalb einer If-Abfrage bei bestimmten States ausgeführt.
Sonstige Methoden werden im Original belassen, sofern keine Überschneidungen bei den Bezeichnern vorhanden sind.
*/
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import greenfoot.MouseInfo.*;
import javax.swing.JOptionPane;
@ -13,56 +6,90 @@ import javax.swing.JOptionPane;
* Schubst Einheiten umher.
*
* @author MaxiJohl, GruenerWal
* @version 0.1.1
* @version 0.3.0
*/
public class ArmySchubser extends Map_World
{
{
static Province savedProvince = null;
/**
* Constructor for objects of class ArmySchubser.
* Konstruktor für ArmySchubser.
*
* NICHT BENUTZEN!
* Sämtliche benötigten Methoden sind static!
*/
public ArmySchubser(String[] playerList, int[] colorList)
{
super(playerList,colorList);
// Hi.
}
public void act()
/**
* Nimmt zwei Provinzen entgegen, und fragt, wieviele Einheiten vom ersten zum zweiten Eintrag verschoben werden sollen.
* Überprüft, ob eine Verschiebung möglich ist und führt sie bei Erfolg aus.
*/
public static void moveEntities(Province sourceProvince, Province destinationProvince)
{
Province firstProvince = null;
Province secondProvince = null;
String toMoveString = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?");
Integer entitiesToMove = Integer.valueOf(toMoveString);
for ( int i = 1; i <= provinceCount; i++)
if ( (sourceProvince.getEntityCount() - entitiesToMove) > 0)
{
if (provinces[i].hasClicked() == true)
{
provinces[i] = firstProvince;
break;
}
sourceProvince.removeFromEntities(entitiesToMove);
destinationProvince.addToEntities(entitiesToMove);
}
for ( int i = 1; i <= provinceCount; i++)
if ( (sourceProvince.getEntityCount() - entitiesToMove) <= 0 )
{
if (provinces[i].hasClicked() == true && provinces[i] != firstProvince)
{
provinces[i] = secondProvince;
break;
}
JOptionPane.showMessageDialog(null,"Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + sourceProvince.getDisplayName() + " nach " + destinationProvince.getDisplayName() + " zu verschieben, Köhler.");
}
}
String toMove = JOptionPane.showInputDialog(null, "Wieviele Einheiten willst du verschieben?");
Integer entitiesToMove = Integer.valueOf(toMove);
if ( (firstProvince.getEntityCount() - entitiesToMove) > 0 && firstProvince.isProvinceNear(secondProvince.getID()) == true )
/**
* Speichert ein gegebene Provinz als savedProvince ein, insofern dieser Platz nicht bereits belegt ist.
* Ist er das, so wird überprüft, ob eine neue, an savedProvince angrenzende Provinz angeklickt wurde.
* Ist dies der Fall, werden beide Provinzen an moveEntities übergeben.
*/
public static void useProvincesToMove(Province givenProvince)
{
if (savedProvince == null)
{
firstProvince.removeFromEntities(entitiesToMove);
secondProvince.addToEntities(entitiesToMove);
savedProvince = givenProvince;
}
else
if (savedProvince != null && givenProvince != savedProvince)
{
System.out.println("Du hast nicht genügend Einheiten, um die gewünschte Anzahl von " + firstProvince.getDisplayName() + " nach " + secondProvince.getDisplayName() + " zu verschieben, Köhler.");
if (givenProvince.isProvinceNear(savedProvince.getID()) == true)
{
moveEntities(savedProvince,givenProvince);
}
else
{
savedProvince = null;
}
}
}
/**
* Überprüft, ob eine Provinz angeklickt wurde.
* Wenn ja, wird diese als clickedProvince eingespeichert und useProvincesToMove aufgerufen.
*
* Kommt nachher in die GeneralMap!
*/
public void act()
{
Province clickedProvince = null;
for ( int i = 1; i <= provinceCount; i++)
{
if (provinces[i].hasClicked() == true)
{
clickedProvince = provinces[i];
useProvincesToMove(clickedProvince);
break;
}
}
}
}

@ -1,5 +1,6 @@
import greenfoot.*;
import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
Erstellt eine gegebene Anzahl an DefenderDice's, welche dann nebeneinander eingereiht werden.
@ -10,7 +11,7 @@ import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and Mouse
public class DefenderDices extends DicesList {
public DefenderDices(int count) {
super(count, 2, new Color(0,0,0), (new Color(255,255,255));
super(count, 2, new Color(0,0,0), (new Color(255,255,255)));
}
}

@ -1,5 +1,6 @@
import greenfoot.*;
import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
Erstellt eine gegebene Anzahl an OffenderDice's, welche dann nebeneinander eingereiht werden.
@ -10,7 +11,7 @@ import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and Mouse
public class OffenderDices extends DicesList {
public OffenderDices(int count) {
super(count, 3, new Color(255,0,0), (new Color(255,255,255));
super(count, 3, new Color(255,0,0), (new Color(255,255,255)));
}
}

@ -48,13 +48,13 @@ public class Province extends Actor
displayName = s1;
// Der Teil, der sich um die Konvertierung des int-Array in ein boolean-Array kümmert.
int maxNum = 0;
for(int i = 0; i >= ia1.length; i++) {
for(int i = 0; i < ia1.length; i++) {
if(maxNum < ia1[i]) {
maxNum = ia1[i];
}
}
nextProvinces = new boolean[ia1.length];
for(int i = 0; i >= ia1.length; i++) {
nextProvinces = new boolean[maxNum+1];
for(int i = 0; i < ia1.length; i++) {
if(ia1[i] >= 0) {
nextProvinces[ia1[i]] = true;
}

@ -17,7 +17,7 @@ public final class Utils {
*/
public static boolean[] copyArray(boolean[] a) {
boolean[] b = new boolean[a.length];
for(int i = 0; i >= a.length; i++) {
for(int i = 0; i < a.length; i++) {
b[i] = a[i];
}
return b;
@ -29,7 +29,7 @@ public final class Utils {
*/
public static int[] copyArray(int[] a) {
int[] b = new int[a.length];
for(int i = 0; i >= a.length; i++) {
for(int i = 0; i < a.length; i++) {
b[i] = a[i];
}
return b;
@ -41,7 +41,7 @@ public final class Utils {
*/
public static String[] copyArray(String[] a) {
String[] b = new String[a.length];
for(int i = 0; i >= a.length; i++) {
for(int i = 0; i < a.length; i++) {
b[i] = a[i];
}
return b;
@ -66,7 +66,10 @@ public final class Utils {
*/
public static void sortDesc(int[] a) {
Arrays.sort(a);
Collection.sort(a,Collections.reverseOrder());
int[] b = copyArray(a);
for(int i = (a.length - 1); i >= 0; i--) {
a[i] = b[i];
}
}
}

Loading…
Cancel
Save