Compare commits

...

65 Commits

Author SHA1 Message Date
Zocker1999NET 2bd7a6104d Fehler beim Verschieben korrigiert 8 years ago
Zocker1999NET cc1c370590 Verschieben der Greenfoot Projektdatei
Unser altes Greenfoot Projekt wird nun zu einem Teil des neuen JavaFX-Projektes.
8 years ago
Zocker1999NET a35d7e1eaa BlueJ Projektdateien hinzugefügt
- Git ignoriert diese Dateien nun nicht mehr
- VS-Code blendet sie aus
8 years ago
Zocker1999NET 7027ff806f Zuweisung zu Packages
Um eine bessere Sortierung zu erhalten und um identisch benannte Klassen
von unserem Projekt und von JavaFX unterscheiden zu können.
8 years ago
Zocker1999NET 4097b17320 BlueJ-Integration 8 years ago
Zocker1999NET 7958cc1009 Alle Sonderzeichen ersetzt
Alle Umlaute aus dem Deutschen wurden nun in die Buchstabenfolgen ae,oe
und ue geändert.
8 years ago
Zocker1999NET c3b2034f5c Merge-Fix Nr. 3 8 years ago
Zocker1999NET 098549a3ec Merge-Fix Nr. 2 8 years ago
Zocker1999NET 53ad8f0c34 Spielername Abfrage Bugfix
Damit die ID für die Spieler vor dem PC erst ab 1 anfängt zu zählen.
8 years ago
Zocker1999NET a114c76004 Merge-Korrigierung 8 years ago
Felix Stupp 87b5b16ae0 Merge pull request #118 from HGE-IT-Course-2016/Spielstart-patch
Add files via upload
8 years ago
Zocker1999NET 1dc566c3f9 Entfernen der unnötigen Dateien aufgrund des Benennungsfehlers 8 years ago
Zocker1999NET 9a7a451992 Update vom Master-Branch
Für den folgenden Merge mit dem Master-Branch erfolgte ein manuelles Update dieses Branches.
8 years ago
JulienRo 1e5987f391 Add files via upload 8 years ago
Felix Stupp d6f7dd8f79 Merge pull request #117 from HGE-IT-Course-2016/revert-114-Spielstart-patch
Revert "Spielstart patch"
8 years ago
Felix Stupp 839cd3b1b0 Revert "Spielstart patch" 8 years ago
Felix Stupp 61bc5887f4 Merge pull request #116 from HGE-IT-Course-2016/revert-115-continentBoniBugfix
Revert "Add files via upload"
8 years ago
Felix Stupp b0d13f3216 Revert "Add files via upload" 8 years ago
Felix Stupp 542c62cc08 Merge pull request #113 from HGE-IT-Course-2016/allAround-zocker-Patch
AllAround Patch
8 years ago
Felix Stupp d96254438a Merge pull request #114 from HGE-IT-Course-2016/Spielstart-patch
Spielstart patch
8 years ago
Felix Stupp 15834f452b Merge pull request #115 from HGE-IT-Course-2016/continentBoniBugfix
Add files via upload
8 years ago
Achim 3390803694 Add files via upload 8 years ago
Felix Stupp 4f1279aae6 AllAround Patch 8 years ago
JulienRo 247d062da0 Add files via upload 8 years ago
JulienRo 002112e3b0 Add files via upload 8 years ago
Felix Stupp 3287759eff Merge pull request #111 from HGE-IT-Course-2016/GiveStars
Sterne-Update
8 years ago
Achim 9193fd495c Sterne-Update
- Möglichkeit zum Erhalt von Sternen hinzugefügt
- Sterne werden standardmässig beim Start vergeben
- Verbesserungen an der Abfrage zum Einsetzen von Sternen
- Removed Herobrine
8 years ago
Achim 6b6fe7d5f1 Merge pull request #110 from HGE-IT-Course-2016/master
GiveStars - Aktualisierung
8 years ago
Felix Stupp 0b2ea206a3 Merge pull request #109 from HGE-IT-Course-2016/currentPlayerBugFix
Hevorhebung des aktuellen Spielers
8 years ago
Zocker1999NET 24a4855214 Umstellung der Farben
Um die Darstellung zu verbessern
8 years ago
Zocker1999NET ddc3547485 Syntax Fehler: Komma zu viel 8 years ago
Zocker1999NET 983a9767c3 Umstellung Player Positionierung
Da für den Redraw es vorher nötig ist, dass der Player der Welt hinzugefügt wird, wird dies nun vor dem Erledigen der Positionierung gemacht.
Stattdessen an der Stelle, wo die Positionen hinterlegt sind nun nur noch die Position der bereits hinzugefügten Actoren verbessert, um die alte Code-Struktur beizubehalten.
8 years ago
Zocker1999NET 3d807abb83 Umsetzung #107
* Neue Methoden getTextCol() & getTransBackCol(), welche nun passend für den aktuellen Spieler die Text- und Hintergrundfarbe der Textobjekte festlegt
* Einsetzen dieser Methoden in die bisherige Darstellungsmethode
* Verschnellerung der vielen Redraws bei dem switch case
* Entfernung der nun unnötigen Methode redrawArrow()
8 years ago
Zocker1999NET 859fc88cb7 Neue Methode: getCurrentPlayerID()
Diese gibt die PlayerID des aktuellen Spielers aus.
8 years ago
Zocker1999NET 09d60c8f0b Merge remote-tracking branch 'refs/remotes/origin/master' into currentPlayerBugFix 8 years ago
Felix Stupp 7c9f3633db Merge pull request #108 from HGE-IT-Course-2016/Statistics-Patch
Statistics patch
8 years ago
Zocker1999NET 6190d0fe09 Umsetzung #99 & #106
Wichtige Änderungen:
* Bugfix GeneralMap.getPlayerEntityCount()
* Nach Modus-Wechsel automatischer Redraw von allen Players & Provinces hinzugefügt
* Statistik-Erneuerung hinzugefügt
* Einführen der Methoden Player.reloadMaxInfluence() und Player.reloadMaxEntities()
* Redraw aller Spieler nach Beginn des Spiels für die anfängliche Statistik
8 years ago
Zocker1999NET 0fdd83592c 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.
8 years ago
Felix Stupp e0fbf0182b Merge pull request #105 from HGE-IT-Course-2016/Statistics-Patch
Statistics-Patch (Verbesserung des fehlerhafter Commit)
8 years ago
Zocker1999NET 29538a087b Statistics-Patch (Verbesserung des fehlerhafter Commit)
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.
8 years ago
Felix Stupp 8d604b823a Merge pull request #104 from HGE-IT-Course-2016/greenfootSettings
Greenfoot Automatische Konfiguration
8 years ago
Zocker1999NET c272534300 Greenfoot Automatische Konfiguration 8 years ago
Zocker1999NET 167c2e0c2e Hinzufügen der Lizenz als Offline-HTML-Version
Damit unsere Lizenzbedingungen auch dem Projekt selbst immer beigelegt
sind, werden diese nun auch als Offline-HTML-Dokument hinzugefügt.
Parallel werden noch die Standardeinstellungen von VS Code so angepasst,
damit der Editor diesen Dateityp auch ignoriert.
8 years ago
Felix Stupp 1e8ac5983f Merge pull request #97 from HGE-IT-Course-2016/Fehlerkorrekturen-by-SR
Angepasste Grafiken
8 years ago
Zocker1999NET ee6e1b7e14 Verschieben der Grafiken
Zur Wahrung der Übersicht werden die Bilder in den richtigen Ordner
verschoben.
8 years ago
Felix Stupp 38ae14ee48 Merge pull request #96 from HGE-IT-Course-2016/Spielanleitung
Spielanleitung + Neue Menü-Grafiken
8 years ago
Zocker1999NET 141ed6e31a Verschieben der Grafiken in den richtigen Ordner
Danke für die neuen Grafiken der Buttons und auch für die benötigten
Verbesserungen. Diese werden nun, um eine Ordnung beizubehalten, zuvor
in den Images-Ordner verschoben.
8 years ago
aaronholz 37132f84d7 Menüobjekte
Sorry, eigentlich der falsche Branch aber hier habe ich die Menüobjekte, also die Menü-Buttons passend zum Spieldesign. Wir wollten sie doch gegen die vorherigen eintauschen. Das Menü sowie einen Button ohne Schrift habe ich ja schon vor längerer Zeit hochgeladen.
8 years ago
MaxiJohl 760f08271a Statistics-Patch 8 years ago
Lumberjack42 8d737ad347 Veränderte Bilder 8 years ago
Lumberjack42 3370f44694 Neue, Lizenzfreie Bilder 8 years ago
aaronholz 76366448cf FINISHED VERSION der Spielanleitung 8 years ago
Zocker1999NET 59980f894e Ergänzung README + Lizenzangabe 8 years ago
Felix Stupp 8db8fd287a Entfernen der Original-Anleitung
Um Probleme mit den Erschaffern der Anleitung zu vermeiden.
8 years ago
Felix Stupp c090b111b1 Merge pull request #94 from HGE-IT-Course-2016/NameInput
NameInput Branch
8 years ago
Zocker1999NET 5620bff0a9 Neue Klasse InputDialogWorld
Diese Klasse soll ein Dialogfeld zur Abfrage eines Textes (bspw. eines Spielernamens) als Greenfoot World darstellen.
Da die Umsetzung zurzeit noch nicht funktioniert, ist diese Klasse noch nicht zu verwenden!
8 years ago
Zocker1999NET 49e0cbef7f Ignorier-Listen erweitert
* VS Code zeigt nun sämtliche Text-Dokumente nicht mehr im internen Explorer an
* Git ignoriert nun auch den docs Ordner von Greenfoot, welcher genutzt wird, um die aus dem Code generierten Dokumentationen abzuspeichern.
8 years ago
Felix Stupp 84d94ef22b Merge pull request #93 from HGE-IT-Course-2016/Spielanleitung
Verbesserter Text
8 years ago
4ngelica fc59dbba97 Schreibfehler 8 years ago
Felix Stupp 7f3aee7923 Update GeneralMap.java 8 years ago
Felix Stupp c178d1b670 Merge pull request #92 from HGE-IT-Course-2016/Spielanleitung
Merge remote-tracking branch 'refs/remotes/origin/master' into Spiela…
8 years ago
Felix Stupp ba73029463 Delete Programmablaufplan.ods
Alter Plan
8 years ago
Felix Stupp 9d369c3fd7 Add files via upload
Update Projektplan
8 years ago
Felix Stupp a1f4e2bc76 Merge pull request #91 from HGE-IT-Course-2016/Beta3
Letzte Änderungen
Hoffentlich fehlerfrei
8 years ago
SariusRu 87460796a9 Letzte Änderungen
Bei der Spielanleitung Ingame stimmt die Truppenzahl noch nicht
8 years ago

2
.gitignore vendored

@ -13,6 +13,6 @@ hs_err_pid*
# Greenfoot
*.ctxt
*.greenfoot
.vscode/
*~$*
doc/

@ -7,11 +7,21 @@
"**/.vscode": true,
// Greenfoot Dateien
"project.greenfoot": true,
"package.bluej": true,
"*.class": true,
"*.ctxt": true,
"doc": true,
"sounds": true,
// Excel Tabellen
"**/*.ods": true,
"**/*.xls": true,
"**/*.xlsx": true
"**/*.xlsx": true,
// Dokumente
"**/*.doc": true,
"**/*.docx": true,
"**/*.pdf": true,
"**/*.xcf": true,
// Sonstiges
"**/*.mht": true
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,20 @@
/**
* Write a description of class main here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Main
{
// instance variables - replace the example below with your own
private int x;
/**
* Constructor for objects of class main
*/
public static void main(String[] args)
{
System.out.println("Start zweiundvierzig as JavaFX ...");
}
}

@ -1,11 +1,38 @@
Zweiundvierzig
==============
*Lizenz* (*License*): **CC-BY-NC-SA 4.0**
Dieses Projekt soll zu einem von Risiko inspiriertem Java Computer Spiel werden.
Genutzt wird hierfür die Umgebung von [Greenfoot](http://www.greenfoot.org/overview) von der Universität von Kent.
Gestartet ist es als ein Schulprojekt für unseren Informatikkurs, da die Entwicklung an dem Spiel uns sehr viel Spaß bereitete und wir die Veröffentlichung des Spiels in Erwägung ziehen, möchten wir daher das Projekt weiterentwicklen und auf eine eventuelle Veröffentlichung vorbereiten.
Genutzt wurde bisher die Umgebung von [Greenfoot](http://www.greenfoot.org/overview) von der Universität von Kent.
Zurzeit wird das Projekt auf JavaFX umgeschrieben, um es von Greenfoot unabhängig gestalten zu können (Siehe Issue #95).
Das Projekt ist unter den Lizenzbedingungen der Creative Commons **CC-BY-NC-SA 4.0** veröffentlicht. Kopien dieser geltenden Lizenz sind direkt auf der Website der Creative Commons ([https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode)) zu finden.
## Architektur
Als wir das Projekt gestartet haben, war diese Architektur unser Leitfaden.
Zurzeit sind diese nicht mehr auf dem aktuellen Stand, da wir die Planung und Aufgabenaufteilung aufgrund neuer Erfahrungen nun anders durchführen möchten.
Dennoch kann dieser Architekturplan den Aufbau des Projektes und dessen Geschichte unserer Meinung nach noch sehr gut erklären.
[Link zum Architekturplan auf dem aktuellen Branch](planung/architektur.md)
[Link zur Funktionsliste auf dem aktuellen Branch](planung/funktionsliste.md)
## Information for non-German Speaker
This project was started by a group of 8 students living in Germany.
Started as a project for our subject about IT, we decided to further develop this game because we think, this project could maybe be published.
Because of that, we are trying to rewrite the project to make it independent from [Greenfoot](http://www.greenfoot.org/overview), the "engine" we had used to start to develop this project.
We try to write our own "engine" using JavaFX.
This project is released under the terms of **CC-BY-NC-SA 4.0**. You can find copies of this license at the webpage of the Creative Commons ([https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode)).
If you wanna use parts of our source code or wanna support us by submitting Issues or Pull Requests, you should be able to speak German, otherwise this cannot be possible.
We hope you can understand that it would be much more work for us only using English inside comments, Commits, Issues and so on.
**Thank you for your understanding!**
**Weitere Informationen hier werden folgen.**

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 KiB

@ -0,0 +1,11 @@
#BlueJ package file
objectbench.height=100
objectbench.width=353
package.editor.height=400
package.editor.width=560
package.editor.x=12
package.editor.y=12
package.numDependencies=0
package.numTargets=0
package.showExtends=true
package.showUses=true

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

@ -0,0 +1,32 @@
#BlueJ package file
objectbench.height=100
objectbench.width=1595
package.editor.height=859
package.editor.width=1802
package.editor.x=-8
package.editor.y=-8
package.numDependencies=0
package.numTargets=3
package.showExtends=true
package.showUses=true
project.charset=windows-1252
target1.height=62
target1.name=zweiundvierzig
target1.type=PackageTarget
target1.width=110
target1.x=10
target1.y=90
target2.height=62
target2.name=greenfoot
target2.type=PackageTarget
target2.width=80
target2.x=120
target2.y=10
target3.height=50
target3.name=Main
target3.showInterface=false
target3.type=ClassTarget
target3.typeParameters=
target3.width=80
target3.x=130
target3.y=90

Binary file not shown.

Binary file not shown.

@ -1,162 +1,144 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
import java.awt.Graphics2D;
/**
Diese Klasse stellt einen Button dar.
Als funktionelles Vorbild dafür hält der Button aus dem .NET-Framework für UWP-Apps dar.
@author Felix Stupp
@version 20.05.2016
*/
public class Button extends GUI_Interface {
private boolean autoSize = false;
private int textSize = 32; // as default text size
private String text = "";
private ButtonEvent handler;
/**
Erstellt einen Button mit dem gegebenen Text und der zugehörigen Textgröße.
@param txt Der Text, den der Button darstellen soll.
@param size Die Textgröße, in der der Button den Text darstellen soll.
*/
public Button(String txt, int size) {
text = txt;
textSize = size;
redraw();
}
/**
Erstellt einen Button mit dem gegebenen Objekt als Event-Handler.
@param h Der Handler mit dem Interface ButtonEvent implementiert.
*/
public Button(ButtonEvent h) {
handler = h;
redraw();
}
/**
Erstellt einen Button mit dem gegebenen Text, der zugehörigen Textgröße und dem gegebenen Objekt als Event-Handler.
@param txt Der Text, den der Button darstellen soll.
@param size Die Textgröße, in der der Button den Text darstellen soll.
@param h Der Handler mit dem Interface ButtonEvent implementiert.
*/
public Button(String txt, int size, ButtonEvent h) {
text = txt;
textSize = size;
handler = h;
redraw();
}
/**
Fragt ab, ob ein Klick auf den Button gekommen ist.
Wird intern von Greenfoot benötigt.
*/
public void act() {
if(Greenfoot.mouseClicked(this) && handler != this) {
handler.buttonClicked(this);
}
}
/**
Gibt zurück, ob die Größe des Buttons von dem Text bestimmt werden soll.
@return Wert der AutoSize-Eigenschaft
*/
public boolean getAutoSize() {
return autoSize;
}
/**
Legt fest, ob die Größe des Buttons von dem Text bestimmt werden soll.
Wird der Wert auf TRUE geändert, erfolgt automatisch ein Redraw des Objekts.
@param b Der neue Wert der AutoSize-Eigenschaft.
*/
public void setAutoSize(boolean b) {
autoSize = b;
if(autoSize) {
redraw();
}
}
/**
Gibt die aktelle Textgröße zurück.
@return Aktuelle Textgröße
*/
public int getTextSize() {
return textSize;
}
/**
Legt eine neue Textgröße fest.
@param s Neue Textgröße
@return Gibt an, ob sich die Textgröße geändert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setTextSize(int s) {
if(textSize != s && s > 0) {
textSize = s;
redraw();
return true;
}
return false;
}
/**
Gibt den aktuellen Text zurück.
@return Der aktuelle Text
*/
public String getText() {
return text;
}
/**
Setzt den darzustellenden Text auf den neuen Wert.
@param s Der neue Text
@return Gibt an, ob sich der Text geändert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setText(String s) {
if(text != s) {
text = s;
redraw();
return true;
}
return false;
}
/**
Gibt den aktuellen EventHandler des Buttons zurück.
@return Der Handler als ButtonEvent
*/
public ButtonEvent getHandler() {
return handler;
}
/**
Setzt den EventHandler auf ein neues Objekt.
@param h Der Handler mit implementiertem ButtonEvent-Interface
*/
public void setHandler(ButtonEvent h) {
handler = h;
}
/**
Entfernt den aktuellen EventHandler, um die Ausführung zukünftiger Events zu verhindern.
*/
public void removeHandler() {
handler = null;
}
/**
Zeichnet das GreenfootImage des Buttons erneut und zeigt es an.
*/
public void redraw() {
GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC);
if(autoSize) {
sx = tI.getWidth() + (6 * 2) + 4;
sy = tI.getHeight() + (6 * 2) + 4;
}
GreenfootImage all = new GreenfootImage(sx,sy);
Color trans = new Color(0,0,0,0);
all.setColor(trans);
all.fill();
Graphics2D g = all.getAwtImage().createGraphics();
g.setColor(backC);
g.fillRoundRect(0,0,sx,sy,24,24);
all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2);
setImage(all);
}
}
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
import java.awt.Graphics2D;
/**
Diese Klasse stellt einen Button dar.
Als funktionelles Vorbild dafuer haelt der Button aus dem .NET-Framework fuer UWP-Apps dar.
@author Felix Stupp
@version 20.05.2016
*/
public class Bildbutton extends GUI_Interface {
private boolean autoSize = false;
protected GreenfootImage picture = new GreenfootImage(1,1);
private ButtonEvent handler;
/**
Erstellt einen Button mit dem gegebenen Text und der zugehoerigen Textgroeße.
@param txt Der Text, den der Button darstellen soll.
@param size Die Textgroeße, in der der Button den Text darstellen soll.
*/
public Bildbutton(GreenfootImage pict) {
picture = pict;
redrawInternal();
}
/**
Erstellt einen Button mit dem gegebenen Objekt als Event-Handler.
@param h Der Handler mit dem Interface ButtonEvent implementiert.
*/
public Bildbutton(ButtonEvent h) {
handler = h;
redrawInternal();
}
/**
Erstellt einen Button mit dem gegebenen Text, der zugehoerigen Textgroeße und dem gegebenen Objekt als Event-Handler.
@param txt Der Text, den der Button darstellen soll.
@param size Die Textgroeße, in der der Button den Text darstellen soll.
@param h Der Handler mit dem Interface ButtonEvent implementiert.
*/
public Bildbutton(GreenfootImage pict, ButtonEvent h) {
picture = pict;
handler = h;
redrawInternal();
}
/**
Fragt ab, ob ein Klick auf den Button gekommen ist.
Wird intern von Greenfoot benoetigt.
*/
public void act() {
if(Greenfoot.mouseClicked(this) && handler != this) {
handler.buttonClicked(this);
}
}
/**
Gibt zurueck, ob die Groeße des Buttons von dem Text bestimmt werden soll.
@return Wert der AutoSize-Eigenschaft
*/
public boolean getAutoSize() {
return autoSize;
}
/**
Legt fest, ob die Groeße des Buttons von dem Text bestimmt werden soll.
Wird der Wert auf TRUE geaendert, erfolgt automatisch ein Redraw des Objekts.
@param b Der neue Wert der AutoSize-Eigenschaft.
*/
public void setAutoSize(boolean b) {
autoSize = b;
if(autoSize) {
redraw();
}
}
/**
Gibt den aktuellen Text zurueck.
@return Der aktuelle Text
*/
public GreenfootImage getPicture() {
return picture;
}
/**
Setzt den darzustellenden Text auf den neuen Wert.
@param s Der neue Text
@return Gibt an, ob sich der Text geaendert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setPicture(GreenfootImage s) {
if(picture != s) {
picture = s;
redraw();
return true;
}
return false;
}
/**
Gibt den aktuellen EventHandler des Buttons zurueck.
@return Der Handler als ButtonEvent
*/
public ButtonEvent getHandler() {
return handler;
}
/**
Setzt den EventHandler auf ein neues Objekt.
@param h Der Handler mit implementiertem ButtonEvent-Interface
*/
public void setHandler(ButtonEvent h) {
handler = h;
}
/**
Entfernt den aktuellen EventHandler, um die Ausfuehrung zukuenftiger Events zu verhindern.
*/
public void removeHandler() {
handler = null;
}
protected void redrawInternal() {
GreenfootImage tI = picture;
if(autoSize) {
sx = tI.getWidth() + (6 * 2) + 4;
sy = tI.getHeight() + (6 * 2) + 4;
}
GreenfootImage all = new GreenfootImage(sx,sy);
Color trans = new Color(0,0,0,0);
all.setColor(trans);
all.fill();
Graphics2D g = all.getAwtImage().createGraphics();
g.setColor(backC);
g.fillRoundRect(0,0,sx,sy,24,24);
all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2);
setImage(all);
}
/**
Zeichnet das GreenfootImage des Buttons erneut und zeigt es an.
*/
public void redraw() {
redrawInternal();
}
}

@ -0,0 +1,111 @@
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
import java.awt.Graphics2D;
/**
Diese Klasse stellt einen Button dar.
Als funktionelles Vorbild dafuer haelt der Button aus dem .NET-Framework fuer UWP-Apps dar.
@author Felix Stupp
@version 20.05.2016
*/
public class Button extends Bildbutton {
private int textSize = 32; // as default text size
private String text = "";
/**
Erstellt einen Button mit dem gegebenen Text und der zugehoerigen Textgroeße.
@param txt Der Text, den der Button darstellen soll.
@param size Die Textgroeße, in der der Button den Text darstellen soll.
*/
public Button(String txt, int size) {
super(new GreenfootImage(txt,size,Color.WHITE,Color.BLACK));
text = txt;
textSize = size;
redraw();
}
/**
Erstellt einen Button mit dem gegebenen Objekt als Event-Handler.
@param h Der Handler mit dem Interface ButtonEvent implementiert.
*/
public Button(ButtonEvent h) {
super(h);
redraw();
}
/**
Erstellt einen Button mit dem gegebenen Text, der zugehoerigen Textgroeße und dem gegebenen Objekt als Event-Handler.
@param txt Der Text, den der Button darstellen soll.
@param size Die Textgroeße, in der der Button den Text darstellen soll.
@param h Der Handler mit dem Interface ButtonEvent implementiert.
*/
public Button(String txt, int size, ButtonEvent h) {
super(new GreenfootImage(txt,size,Color.WHITE,Color.BLACK),h);
text = txt;
textSize = size;
redraw();
}
/**
Gibt die aktelle Textgroeße zurueck.
@return Aktuelle Textgroeße
*/
public int getTextSize() {
return textSize;
}
/**
Legt eine neue Textgroeße fest.
@param s Neue Textgroeße
@return Gibt an, ob sich die Textgroeße geaendert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setTextSize(int s) {
if(textSize != s && s > 0) {
textSize = s;
redraw();
return true;
}
return false;
}
/**
Gibt den aktuellen Text zurueck.
@return Der aktuelle Text
*/
public String getText() {
return text;
}
/**
Setzt den darzustellenden Text auf den neuen Wert.
@param s Der neue Text
@return Gibt an, ob sich der Text geaendert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setText(String s) {
if(text != s) {
text = s;
redraw();
return true;
}
return false;
}
public GreenfootImage getPicture() {
return null;
}
public boolean setPicture(GreenfootImage i) {
return false;
}
/**
Zeichnet das GreenfootImage des Buttons erneut und zeigt es an.
*/
public void redraw() {
//picture = new GreenfootImage(text,textSize,Color.BLACK,Color.WHITE);
picture = new GreenfootImage(text,textSize,foreC,backC);
super.redraw();
}
}

@ -1,7 +1,11 @@
package zweiundvierzig;
import greenfoot.*;
/**
* Dieses Interface stellt einen Zugriff auf Methoden für die Eventverarbeitung bei Buttons.
* Dieses Interface stellt einen Zugriff auf Methoden fuer die Eventverarbeitung bei Buttons.
* Jede Klasse, die als Event-Handler dienen will, muss dieses Interface implementieren.
*
* @author Felix Stupp
@ -9,6 +13,6 @@ import greenfoot.*;
*/
public interface ButtonEvent {
public void buttonClicked(Button obj);
public void buttonClicked(Bildbutton obj);
}

@ -1,217 +1,227 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
import javax.swing.JOptionPane;
/**
* Write a description of class Colors here.
*
* @author (your name)
* @version (a version number or a date)
*/
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 [5];
String[] pn = new String [5];
int x = 0;
boolean possw = true; // schwarz
boolean posbl = true; // blau
boolean posgr = true; // gruen
boolean posrt = true; // rot
boolean posgb = true; // gelb
boolean posli = true; // lila
int sw = 1;
int bl = 2;
int gr = 3;
int rt = 4;
int gb = 5;
int li = 6;
Label header = new Label("Klicke auf eine Farbe, um einen Spieler hinzuzufügen:",16);
Button remove = new Button("Rückgängig",16,this);
Label pl1 = new Label("",16);
Label pl2 = new Label("",16);
Label pl3 = new Label("",16);
Label pl4 = new Label("",16);
Label pl5 = new Label("",16);
/**
* Constructor for objects of class Colors.
*
*/
public Colours(int x, int y, int z)
{
super(x, y, z);
setBackground(Start_Load.backgroundImage);
Button[] bList = new Button[] {schwarz,gelb,blau,grün,rot,lila,weiter,remove};
Label[] lList = new Label[] {header,pl1,pl2,pl3,pl4,pl5};
addObject(header,200,15);
addObject(schwarz, 70, 50);
addObject ( blau, 190, 50);
addObject ( grün, 300, 50);
addObject ( rot, 410, 50);
addObject(gelb, 520, 50);
addObject(lila, 630, 50);
addObject(remove,300,110);
addObject (weiter, 410,110);
addObject(pl1,355,160);
addObject(pl2,355,180);
addObject(pl3,355,200);
addObject(pl4,355,220);
addObject(pl5,355,240);
schwarz.setForeColor(Color.black);
gelb.setForeColor(Color.yellow);
blau.setForeColor(Color.blue);
grün.setForeColor(Color.green);
rot.setForeColor(Color.red);
lila.setForeColor(new Color(161,70,255));
for(int i = 0; i < bList.length; i++) {
bList[i].setSize(100,50);
}
for(int i = 0; i < lList.length; i++) {
lList[i].setBackColor(new Color(0,0,0,0));
}
redraw();
}
// Ü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 (x < 5) {
if (b == schwarz && possw == true) {
color[x] = sw;
pn[x]=getName(x,"Schwarz");
if(pn[x].length() > 0) {
x+=1;
possw = false;
}
} else if (b == blau && posbl == true) {
color[x] = bl;
pn[x]=getName(x,"Blau");
if(pn[x].length() > 0) {
x+=1;
posbl = false;
}
} else if (b == grün && posgr == true ) {
color[x] = gr;
pn[x]=getName(x,"Grün");
if(pn[x].length() > 0) {
x+=1;
posgr = false;
}
} else if (b == rot && posrt == true) {
color[x] = rt;
pn[x]=getName(x,"Rot");
if(pn[x].length() > 0) {
x+=1;
posrt = false;
}
} else if (b == gelb && posgb == true) {
color [x] = gb;
pn[x]=getName(x,"Gelb");
if(pn[x].length() > 0) {
x+=1;
posgb = false;
}
} else if (b == lila && posli == true) {
color [x] = li;
pn[x]=getName(x,"Lila");
if(pn[x].length() > 0) {
x+=1;
posli = false;
}
}
}
if(b == remove && x > 0) {
x -= 1;
switch(color[x]) {
case 1: possw = true; break;
case 2: posbl = true; break;
case 3: posgr = true; break;
case 4: posrt = true; break;
case 5: posgb = true; break;
case 6: posli = true; break;
}
}
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);
}
redraw();
}
private Color getC(boolean pos) {
if(x >= 5) {
return Color.gray;
}
return (pos) ? Color.lightGray : Color.gray;
}
/**
Passt alle adaptiven Parameter automatisch an.
*/
private void redraw() {
schwarz.setBackColor(getC(possw));
blau.setBackColor(getC(posbl));
grün.setBackColor(getC(posgr));
rot.setBackColor(getC(posrt));
lila.setBackColor(getC(posli));
gelb.setBackColor(getC(posgb));
remove.setBackColor((x > 0) ? Color.black : Color.gray);
weiter.setBackColor((x > 2) ? Color.black : Color.gray);
pl1.setText("");
pl2.setText("");
pl3.setText("");
pl4.setText("");
pl5.setText("");
switch(x) {
case 5:
pl5.setText(pn[4]);
case 4:
pl4.setText(pn[3]);
case 3:
pl3.setText(pn[2]);
case 2:
pl2.setText(pn[1]);
case 1:
pl1.setText(pn[0]);
}
}
private String getName(int id, String col) {
String name = JOptionPane.showInputDialog(null, "Wie soll Spieler Nr. "+id+" mit der Farbe "+col+" heißen?");
if(name == null) {
name = "";
}
return name;
}
}
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
import javax.swing.JOptionPane;
/**
* Write a description of class Colors here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Colours extends World implements ButtonEvent
{
Bildbutton schwarz = new Bildbutton (new GreenfootImage("SchwarzeArmeeSkal.png"), this);
Bildbutton blau = new Bildbutton (new GreenfootImage("BlaueArmeeSkal.png"), this);
Bildbutton rot = new Bildbutton (new GreenfootImage("RoteArmeeSkal.png"), this);
Bildbutton gelb = new Bildbutton (new GreenfootImage("GelbeArmeeSkal.png"), this);
Bildbutton lila = new Bildbutton (new GreenfootImage("LilaArmeeSkal.png"), this);
Bildbutton gruen = new Bildbutton (new GreenfootImage("GrueneArmeeSkal.png"), this);
Button weiter = new Button ("Weiter", 16, this);
int[] color = new int [5];
String[] pn = new String [5];
int x = 0;
boolean possw = true; // schwarz
boolean posbl = true; // blau
boolean posgr = true; // gruen
boolean posrt = true; // rot
boolean posgb = true; // gelb
boolean posli = true; // lila
int sw = 1;
int bl = 2;
int gr = 3;
int rt = 4;
int gb = 5;
int li = 6;
Label header = new Label("Klicke auf eine Farbe, um einen Spieler hinzuzufuegen:",16);
Button remove = new Button("Rueckgaengig",16,this);
Label pl1 = new Label("",22);
Label pl2 = new Label("",22);
Label pl3 = new Label("",22);
Label pl4 = new Label("",22);
Label pl5 = new Label("",22);
/**
* Constructor for objects of class Colors.
*
*/
public Colours(int x, int y, int z)
{
super(x, y, z);
setBackground(Start_Load.backgroundImage);
Bildbutton[] bList = new Bildbutton[] {schwarz,gelb,blau,gruen,rot,lila,weiter,remove};
Label[] lList = new Label[] {header,pl1,pl2,pl3,pl4,pl5};
addObject(header,200,15);
addObject(schwarz, 80, 50);
addObject ( blau, 240, 50);
addObject ( gruen, 400, 50);
addObject ( rot, 560, 50);
addObject(gelb, 720, 50);
addObject(lila, 880, 50);
addObject(remove,300,160);
addObject (weiter, 510,160);
addObject(pl1,355,360);
addObject(pl2,355,380);
addObject(pl3,355,400);
addObject(pl4,355,420);
addObject(pl5,355,440);
//schwarz.setForeColor(Color.black);
//gelb.setForeColor(Color.yellow);
//blau.setForeColor(Color.blue);
//gruen.setForeColor(Color.green);
//rot.setForeColor(Color.red);
//lila.setForeColor(new Color(161,70,255));
pl1.setForeColor(Color.black);
pl2.setForeColor(Color.black);
pl3.setForeColor(Color.black);
pl4.setForeColor(Color.black);
pl5.setForeColor(Color.black);
for(int i = 0; i < bList.length; i++) {
bList[i].setSize(164,100);
}
for(int i = 0; i < lList.length; i++) {
lList[i].setBackColor(new Color(0,0,0,0));
}
redraw();
}
// ueberprueft, ob ein Farbbutton geklickt wurde
//ueberprueft, ob die Farbe noch nicht ausgewaehlt wurde
// Wenn alle Bedingungen erfuellt wurden:
// Setzt die aktuelle Stelle des Farbarrays gleich der Zahl der aktuellen Farbe
// erhoeht die Variable zum Durchzaehlen um eins
// verhindert durch falschsetzten einer Variable die Wiederauswahl einer Farbe
// wenn Weiter geklickt wurde und x groeßer 1 ist wird eine neue Welt Map erzeugt,
//der per Konstruktor die Daten der Colorklasse uebertragen werden, dannach wird die Map die aktive Welt
public void buttonClicked (Bildbutton b)
{
if (x < 5) {
if (b == schwarz && possw == true) {
color[x] = sw;
pn[x]=getName(x,"Schwarz");
if(pn[x].length() > 0) {
x+=1;
possw = false;
}
} else if (b == blau && posbl == true) {
color[x] = bl;
pn[x]=getName(x,"Blau");
if(pn[x].length() > 0) {
x+=1;
posbl = false;
}
} else if (b == gruen && posgr == true ) {
color[x] = gr;
pn[x]=getName(x,"Gruen");
if(pn[x].length() > 0) {
x+=1;
posgr = false;
}
} else if (b == rot && posrt == true) {
color[x] = rt;
pn[x]=getName(x,"Rot");
if(pn[x].length() > 0) {
x+=1;
posrt = false;
}
} else if (b == gelb && posgb == true) {
color [x] = gb;
pn[x]=getName(x,"Gelb");
if(pn[x].length() > 0) {
x+=1;
posgb = false;
}
} else if (b == lila && posli == true) {
color [x] = li;
pn[x]=getName(x,"Lila");
if(pn[x].length() > 0) {
x+=1;
posli = false;
}
}
}
if(b == remove && x > 0) {
x -= 1;
switch(color[x]) {
case 1: possw = true; break;
case 2: posbl = true; break;
case 3: posgr = true; break;
case 4: posrt = true; break;
case 5: posgb = true; break;
case 6: posli = true; break;
}
}
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);
}
redraw();
}
private Color getC(boolean pos) {
if(x >= 5) {
return Color.gray;
}
return (pos) ? Color.lightGray : Color.gray;
}
/**
Passt alle adaptiven Parameter automatisch an.
*/
private void redraw() {
schwarz.setBackColor(getC(possw));
blau.setBackColor(getC(posbl));
gruen.setBackColor(getC(posgr));
rot.setBackColor(getC(posrt));
lila.setBackColor(getC(posli));
gelb.setBackColor(getC(posgb));
remove.setBackColor((x > 0) ? Color.black : Color.gray);
weiter.setBackColor((x > 2) ? Color.black : Color.gray);
pl1.setText("");
pl2.setText("");
pl3.setText("");
pl4.setText("");
pl5.setText("");
switch(x) {
case 5:
pl5.setText(pn[4]);
case 4:
pl4.setText(pn[3]);
case 3:
pl3.setText(pn[2]);
case 2:
pl2.setText(pn[1]);
case 1:
pl1.setText(pn[0]);
}
}
private String getName(int id, String col) {
String name = JOptionPane.showInputDialog(null, "Wie soll Spieler Nr. "+(id+1)+" mit der Farbe "+col+" heißen?");
if(name == null) {
name = "";
}
return name;
}
}

@ -1,3 +1,7 @@
package zweiundvierzig;
public class Debug3 extends Map_World {
public Debug3() {
super(

@ -1,3 +1,7 @@
package zweiundvierzig;
public class Debug4 extends Map_World {
public Debug4() {
super(

@ -1,3 +1,7 @@
package zweiundvierzig;
public class Debug5 extends Map_World {
public Debug5() {
super(

@ -1,3 +1,7 @@
package zweiundvierzig;
import greenfoot.*;
import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;

@ -1,7 +1,11 @@
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
Stellt einen Würfel (von 1-6) dar, welcher in der Welt sichtbar dargestellt werden soll.
Stellt einen Wuerfel (von 1-6) dar, welcher in der Welt sichtbar dargestellt werden soll.
@author Felix Stupp
@version 13.06.2016
@ -11,14 +15,14 @@ public class Dice extends GUI_Interface {
private int number = 0;
/**
Erstellt einen Würfel mit dem Startwert 0 (für noch nicht verwendet).
Erstellt einen Wuerfel mit dem Startwert 0 (fuer noch nicht verwendet).
*/
public Dice() {
redraw();
}
/**
Erstellt einen Würfel mit einem bestimmten Startwert, welcher sofort sichtbar ist.
Erstellt einen Wuerfel mit einem bestimmten Startwert, welcher sofort sichtbar ist.
*/
public Dice(int startNumber) {
number = startNumber;
@ -26,7 +30,7 @@ public class Dice extends GUI_Interface {
}
/**
Gibt die aktuelle Zahl, die der Würfel anzeigt, aus. Gibt die Methode 0 zurück, heißt dies, dass der Würfel noch nicht gewürfelt wurde.
Gibt die aktuelle Zahl, die der Wuerfel anzeigt, aus. Gibt die Methode 0 zurueck, heißt dies, dass der Wuerfel noch nicht gewuerfelt wurde.
@return Die aktuelle Augenzahl oder 0
*/
public int getNumber() {
@ -34,14 +38,14 @@ public class Dice extends GUI_Interface {
}
/**
Legt die Größe des Würfels als Quadrat fest.
Legt die Groeße des Wuerfels als Quadrat fest.
*/
public void setSizeAsSquare(int l) {
setSize(l,l);
}
/**
Würfelt den Würfel, erneuert die Darstellung und gibt die neue Augenzahl zurück.
Wuerfelt den Wuerfel, erneuert die Darstellung und gibt die neue Augenzahl zurueck.
*/
public int roll() {
number = (int) (Math.floor(Math.random()*6)+1);
@ -50,20 +54,20 @@ public class Dice extends GUI_Interface {
}
/**
Zeichnet auf dem gegebenen GreenfootImage ein Oval an der gegebenen Stelle multipliziert mit der einheitlichen Größe.
Zeichnet auf dem gegebenen GreenfootImage ein Oval an der gegebenen Stelle multipliziert mit der einheitlichen Groeße.
*/
private void fO(GreenfootImage i, int eX, int eY, int x, int y) {
i.fillOval(eX*x,eY*y,eX*2,eY*2);
}
/**
Erneuert die Darstellung des Würfels.
Erneuert die Darstellung des Wuerfels.
*/
public void redraw() {
// einheitliche Größe X und Y (ein Vierzehntel der gesamten Breite und Höhe)
// einheitliche Groeße X und Y (ein Vierzehntel der gesamten Breite und Hoehe)
int eX = (int) Math.round(sx/8);
int eY = (int) Math.round(sy/8);
// Vereinfachung für die Augenzahl
// Vereinfachung fuer die Augenzahl
int a = number;
GreenfootImage i = new GreenfootImage(sx,sy);
i.setColor(new java.awt.Color(0,0,0,0));

@ -1,6 +1,10 @@
package zweiundvierzig;
/*
Hinweis zum Verbleib der Klasse:
Diese Klasse soll, da sie zurzeit weder vollständig, noch in Verwendung, noch in der Architektur definiert ist, zum Beta-Meilenstein entfernt werden.
Diese Klasse soll, da sie zurzeit weder vollstaendig, noch in Verwendung, noch in der Architektur definiert ist, zum Beta-Meilenstein entfernt werden.
Sollte die Klasse jedoch zuvor noch Verwendung finden, wird sie nach Absprache mit den jeweiligen Autoren/Benutzern in die Architektur aufgenommen.
*/
@ -27,8 +31,8 @@ public class Dice_Defender
}
/**
* Die Methode für das Würfeln mit bis zu drei Würfeln des Angreifers, es wird ein Array mit den drei Zahlen zurückgegeben, höchster Wert befindet sich immer an dritter Stelle.
* @param troupNumberDefender Anzahl der Truppen auf dem ausgewählten Feld
* Die Methode fuer das Wuerfeln mit bis zu drei Wuerfeln des Angreifers, es wird ein Array mit den drei Zahlen zurueckgegeben, hoechster Wert befindet sich immer an dritter Stelle.
* @param troupNumberDefender Anzahl der Truppen auf dem ausgewaehlten Feld
*/
public int[] dice_defender(int troupNumberDefender)
{

@ -1,6 +1,10 @@
package zweiundvierzig;
/*
Hinweis zum Verbleib der Klasse:
Diese Klasse soll, da sie zurzeit weder vollständig, noch in Verwendung, noch in der Architektur definiert ist, zum Beta-Meilenstein entfernt werden.
Diese Klasse soll, da sie zurzeit weder vollstaendig, noch in Verwendung, noch in der Architektur definiert ist, zum Beta-Meilenstein entfernt werden.
Sollte die Klasse jedoch zuvor noch Verwendung finden, wird sie nach Absprache mit den jeweiligen Autoren/Benutzern in die Architektur aufgenommen.
*/
@ -27,8 +31,8 @@ public class Dice_Offender
}
/**
* Die Methode für das Würfeln mit bis zu drei Würfeln des Angreifers, es wird ein Array mit den drei Zahlen zurückgegeben, höchster Wert befindet sich immer an dritter Stelle.
* @param troupNumberOffender Anzahl der Truppen auf dem ausgewählten Feld
* Die Methode fuer das Wuerfeln mit bis zu drei Wuerfeln des Angreifers, es wird ein Array mit den drei Zahlen zurueckgegeben, hoechster Wert befindet sich immer an dritter Stelle.
* @param troupNumberOffender Anzahl der Truppen auf dem ausgewaehlten Feld
*/
public int[] dice_offender(int troupNumberOffender)
{

@ -1,3 +1,7 @@
package zweiundvierzig;
import greenfoot.*;
/**

@ -1,106 +1,110 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
Oberklasse für sämtliche GUI Objekte, wie Labels und Buttons
@author Felix Stupp
@version 04.06.2016
*/
public abstract class GUI_Interface extends Actor
{
/**
Die Breite des Objektes
*/
protected int sx = 20;
/**
Die Höhe des Objektes
*/
protected int sy = 20;
/**
Die Hintergrundfarbe des Objektes
*/
protected Color backC = Color.BLACK;
/**
Die Vordergrundfarbe (meist die Textfarbe) des Objektes
*/
protected Color foreC = Color.WHITE;
/**
Gibt die Breite des Objektes zurück.
@return Die aktuelle Breite
*/
public int getWidth() {
return sx;
}
/**
Gibt die Höhe des Objektes zurück.
@return Die aktuelle Höhe
*/
public int getHeight() {
return sy;
}
/**
Legt die Größe des Objektes neu fest und zeichnet es danach damit neu.
Je nach Objekttyp kann diese Größe wieder vom Objekt selbst angepasst werden, falls nötig.
@param w Die neue Breite
@param h Die neue Höhe
*/
public void setSize(int w, int h) {
if(w < 1 || h < 1) {
return;
}
sx = w;
sy = h;
redraw();
}
/**
Gibt die aktuelle Hintergrundfarbe des Objektes zurück.
@return Die aktuelle Hintergrundfarbe als System.awt.Color
*/
public Color getBackColor() {
return backC;
}
/**
Legt die Hintergrundfarbe des Objektes fest.
@param c Die neue Hintergrundfarbe als System.awt.Color
@return Gibt an, ob diese Farbe unterschiedlich zur bisherig genutzten Farbe wahr. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setBackColor(Color c) {
if(!c.equals(backC)) {
backC = c;
redraw();
return true;
}
return false;
}
/**
Gibt die aktuelle Vordergrundfarbe (meist die Textfarbe) des Objektes zurück.
@return Die aktuelle Vordergrundfarbe als System.awt.Color
*/
public Color getForeColor() {
return foreC;
}
/**
Legt die Vordergrundfarbe (meist die Textfarbe) des Objektes fest.
@param c Die neue Vordergrundfarbe als System.awt.Color
@return Gibt an, ob diese Farbe unterschiedlich zur bisherig genutzten Farbe wahr. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setForeColor(Color c) {
if(!c.equals(foreC)) {
foreC = c;
redraw();
return true;
}
return false;
}
public void act() {}
/**
Diese Funktion soll die erneute Zeichnung des Objekts erzwingen und wird daher auch von (fast) allen set-Methoden aufgerufen, sollte der neue Wert sich von dem alten unterscheiden.
*/
public abstract void redraw();
}
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
Oberklasse fuer saemtliche GUI Objekte, wie Labels und Buttons
@author Felix Stupp
@version 04.06.2016
*/
public abstract class GUI_Interface extends Actor
{
/**
Die Breite des Objektes
*/
protected int sx = 20;
/**
Die Hoehe des Objektes
*/
protected int sy = 20;
/**
Die Hintergrundfarbe des Objektes
*/
protected Color backC = Color.BLACK;
/**
Die Vordergrundfarbe (meist die Textfarbe) des Objektes
*/
protected Color foreC = Color.WHITE;
/**
Gibt die Breite des Objektes zurueck.
@return Die aktuelle Breite
*/
public int getWidth() {
return sx;
}
/**
Gibt die Hoehe des Objektes zurueck.
@return Die aktuelle Hoehe
*/
public int getHeight() {
return sy;
}
/**
Legt die Groeße des Objektes neu fest und zeichnet es danach damit neu.
Je nach Objekttyp kann diese Groeße wieder vom Objekt selbst angepasst werden, falls noetig.
@param w Die neue Breite
@param h Die neue Hoehe
*/
public void setSize(int w, int h) {
if(w < 1 || h < 1) {
return;
}
sx = w;
sy = h;
redraw();
}
/**
Gibt die aktuelle Hintergrundfarbe des Objektes zurueck.
@return Die aktuelle Hintergrundfarbe als System.awt.Color
*/
public Color getBackColor() {
return backC;
}
/**
Legt die Hintergrundfarbe des Objektes fest.
@param c Die neue Hintergrundfarbe als System.awt.Color
@return Gibt an, ob diese Farbe unterschiedlich zur bisherig genutzten Farbe wahr. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setBackColor(Color c) {
if(!c.equals(backC)) {
backC = c;
redraw();
return true;
}
return false;
}
/**
Gibt die aktuelle Vordergrundfarbe (meist die Textfarbe) des Objektes zurueck.
@return Die aktuelle Vordergrundfarbe als System.awt.Color
*/
public Color getForeColor() {
return foreC;
}
/**
Legt die Vordergrundfarbe (meist die Textfarbe) des Objektes fest.
@param c Die neue Vordergrundfarbe als System.awt.Color
@return Gibt an, ob diese Farbe unterschiedlich zur bisherig genutzten Farbe wahr. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setForeColor(Color c) {
if(!c.equals(foreC)) {
foreC = c;
redraw();
return true;
}
return false;
}
public void act() {}
/**
Diese Funktion soll die erneute Zeichnung des Objekts erzwingen und wird daher auch von (fast) allen set-Methoden aufgerufen, sollte der neue Wert sich von dem alten unterscheiden.
*/
public abstract void redraw();
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,95 @@
package zweiundvierzig;
import greenfoot.*;
import java.awt.Color;
/**
Erzeugt ein Eingabefeld, ueber welches man Strings vom Benutzer abfragen kann.
Die beim Erzeugen uebergebene Welt wird nach dem "Schließen" des Eingabefelds wieder geladen.
@author Felix Stupp
@version 07/10/2016
*/
public class InputDialogWorld extends World implements ButtonEvent {
String PREINPUT = null;
Label msgL = new Label("",20);
Button okay = new Button("Weiter",20,this);
Button abort = new Button("Abbrechen",20,this);
Label inputL = new Label("",20);
String inputS = "";
Boolean closed = false;
/**
Erzeugt eine Instanz dieser Klasse, uebergibt dieser die Parameter und wartet auf das Schließen des Dialogs.
@param msg Die fuer den Beutzer anzuzeigende Aufforderung.
@param preIn Ein Schattentext, welcher fuer den Benutzer in dem Textfeld sichtbar sein soll.
@param w Die Welt, die nach dem Beenden wieder eingesetzt werden soll.
*/
public static String showDialog(String msg, String preIn, World w) {
InputDialogWorld dialog = new InputDialogWorld(msg,preIn);
Greenfoot.setWorld(dialog);
// Unvollstaendig!
Greenfoot.setWorld(w);
return dialog.getInput();
}
/**
Erzeugt ein Eingabefeld, welches nach dem Laden dargestellt wird.
@param msg Die fuer den Beutzer anzuzeigende Aufforderung.
@param preIn Ein Schattentext, welcher fuer den Benutzer in dem Textfeld sichtbar sein soll.
*/
private InputDialogWorld(String msg, String preIn) {
super(500,200,1);
setBackground("backgroundLight.png");
PREINPUT = preIn;
addObject(msgL,10,10);
addObject(inputL,10,40);
addObject(abort,10,70);
addObject(okay,390,70);
msgL.setText(msg);
abort.setSize(100,30);
okay.setSize(100,30);
redraw();
Greenfoot.getKey();
}
public void act() {
String s = Greenfoot.getKey();
if(s == null) return;
if(s == "backspace" && inputS.length() > 0) {
inputS = inputS.substring(0,inputS.length() - 2);
} else if(s == "enter") {
buttonClicked(okay);
} else if(s.length() == 1) {
inputS += s;
}
}
public void buttonClicked(Bildbutton b) {
if(b == abort) {
inputS = null;
} else if(b == okay) {
inputS = null;
closed = true;
}
}
public Boolean ended() {
return closed;
}
public String getInput() {
return closed ? inputS : null;
}
private void redraw() {
inputL.setForeColor((inputS == "") ? Color.gray : Color.black );
inputL.setText((inputS == "") ? PREINPUT : inputS);
}
}

@ -1,3 +1,7 @@
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
@ -14,9 +18,9 @@ public class Label extends GUI_Interface {
private String text = "";
/**
Erstellt ein neues Label mit dem gegebenen Text und der zugehörigen Textgröße.
Erstellt ein neues Label mit dem gegebenen Text und der zugehoerigen Textgroeße.
@param txt Der darzustellende Text
@param size Die dazugehörige Textgröße
@param size Die dazugehoerige Textgroeße
*/
public Label(String txt, int size) {
text = txt;
@ -25,15 +29,15 @@ public class Label extends GUI_Interface {
}
/**
Gibt zurück, ob die Größe des Buttons von dem Text bestimmt werden soll.
Gibt zurueck, ob die Groeße des Buttons von dem Text bestimmt werden soll.
@return Wert der AutoSize-Eigenschaft
*/
public boolean getAutoSize() {
return autoSize;
}
/**
Legt fest, ob die Größe des Buttons von dem Text bestimmt werden soll.
Wird der Wert auf TRUE geändert, erfolgt automatisch ein Redraw des Objekts.
Legt fest, ob die Groeße des Buttons von dem Text bestimmt werden soll.
Wird der Wert auf TRUE geaendert, erfolgt automatisch ein Redraw des Objekts.
@param b Der neue Wert der AutoSize-Eigenschaft.
*/
public void setAutoSize(boolean b) {
@ -44,16 +48,16 @@ public class Label extends GUI_Interface {
}
/**
Gibt die aktelle Textgröße zurück.
@return Aktuelle Textgröße
Gibt die aktelle Textgroeße zurueck.
@return Aktuelle Textgroeße
*/
public int getTextSize() {
return textSize;
}
/**
Legt eine neue Textgröße fest.
@param s Neue Textgröße
@return Gibt an, ob sich die Textgröße geändert hat. Bei TRUE erfolgte bereits ein Redraw.
Legt eine neue Textgroeße fest.
@param s Neue Textgroeße
@return Gibt an, ob sich die Textgroeße geaendert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setTextSize(int s) {
if(textSize != s && s > 0) {
@ -65,7 +69,7 @@ public class Label extends GUI_Interface {
}
/**
Gibt den aktuellen Text zurück.
Gibt den aktuellen Text zurueck.
@return Der aktuelle Text
*/
public String getText() {
@ -74,7 +78,7 @@ public class Label extends GUI_Interface {
/**
Setzt den darzustellenden Text auf den neuen Wert.
@param s Der neue Text
@return Gibt an, ob sich der Text geändert hat. Bei TRUE erfolgte bereits ein Redraw.
@return Gibt an, ob sich der Text geaendert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setText(String s) {
if(text != s) {

@ -1,3 +1,5 @@
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
@ -8,8 +10,8 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
*/
public class Map extends World implements ButtonEvent
{
private Button map1 = new Button ("map1",16,this);
private Button map2 = new Button ("map2",16,this);
Bildbutton map1 = new Bildbutton (new GreenfootImage("WeltkarteSkal.png"), this);
Bildbutton map2 = new Bildbutton (new GreenfootImage("USAKarteSkal.png"), this);
private Button fertigst = new Button (" Fertigstellen",16,this);
int[] colour;
String[] pn;
@ -32,11 +34,11 @@ public class Map extends World implements ButtonEvent
pn[i] = name[i];
}
pnu=zahl;
addObject(map1, 50, 30);
addObject(map2, 170, 30);
addObject(fertigst,110,90 );
map1.setSize(100, 50);
map2.setSize(100, 50);
addObject(map1, 200, 80);
addObject(map2, 470, 80);
addObject(fertigst,330,200 );
map1.setSize(164, 100);
map2.setSize(164, 100);
fertigst.setSize(100, 50);
// for ( int i=0; i<=pnu; i++)
// {
@ -45,7 +47,7 @@ public class Map extends World implements ButtonEvent
// }
}
// Die Map Buttons geben der Variable m einen Wert
public void buttonClicked(Button b)
public void buttonClicked(Bildbutton b)
{
if (b== map1)

@ -1,3 +1,7 @@
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
@ -23,16 +27,16 @@ public class Map_World extends GeneralMap
armyMinimum = 3;
/*
Hier werden später sämtliche Provinzen der Standard-Map erstellt.
Hier werden spaeter saemtliche Provinzen der Standard-Map erstellt.
Dies funktioniert folgendermassen:
=================================================================
Dieses kürzere Format ersetzt den langen Code und sorgt eventuell sogar für einen Geschwindigkeitsschub. Dabei sollte diesselbe Funktionalität erhalten bleiben.
Dieses kuerzere Format ersetzt den langen Code und sorgt eventuell sogar fuer einen Geschwindigkeitsschub. Dabei sollte diesselbe Funktionalitaet erhalten bleiben.
provinces[<Provinz-ID>] = new Province(<Provinz-ID>,<Kontinent-ID>,<X-Position>,<Y-Position>,<Anzahl Sterne>,"<Anzeigename>", new int[] { <Liste aller Nachbarprovinzen> });
=================================================================
Der Speicherplatz für provinces[0] bleibt leer, da es keine Provinz mit der ID 0 gibt!
Der Speicherplatz fuer provinces[0] bleibt leer, da es keine Provinz mit der ID 0 gibt!
Und ja, ich weiss, dass das scheisse viel Schreibarbeit ist.
Aber da muss man durch, wir habens auch hinbekommen :P
@ -46,7 +50,7 @@ public class Map_World extends GeneralMap
provinces = new Province[provinceCount + 1];
// Implementierung sämtlicher Provinzen
// Implementierung saemtlicher Provinzen
// ACHTUNG! Gaaaaanz viel Code!
// cID 1 - Nordamerika
@ -58,7 +62,7 @@ public class Map_World extends GeneralMap
provinces[6] = new Province( 6 , 1 , 232 , 273 , 2 , "Oststaaten" , new int[] {4 , 5 , 7 , 8});
provinces[7] = new Province( 7 , 1 , 300 , 180 , 2 , "Quebec" , new int[] {4 , 6 , 9});
provinces[8] = new Province( 8 , 1 , 181 , 347 , 1 , "Mittelamerika" , new int[] {5 , 6 , 17});
provinces[9] = new Province( 9 , 1 , 365 , 55 , 1 , "Grönland" , new int[] {2 , 4 , 7 , 10});
provinces[9] = new Province( 9 , 1 , 365 , 55 , 1 , "Groenland" , new int[] {2 , 4 , 7 , 10});
// cID 2 - Europa
provinces[10] = new Province(10 , 2 , 454 , 142 , 1 , "Island" , new int[] {9 , 11 , 12});
@ -67,7 +71,7 @@ public class Map_World extends GeneralMap
provinces[13] = new Province(13 , 2 , 636 , 180 , 2 , "Russland" , new int[] {12 , 14 , 16 , 27 , 31 , 32});
provinces[14] = new Province(14 , 2 , 528 , 232 , 2 , "Nordeuropa" , new int[] {11 , 12 , 13 , 15 , 16});
provinces[15] = new Province(15 , 2 , 449 , 335 , 2 , "Westeuropa" , new int[] {11 , 14 , 16 , 25});
provinces[16] = new Province(16 , 2 , 537 , 296 , 2 , "Südeuropa" , new int[] {13 , 14 , 15 , 25 , 26 , 27});
provinces[16] = new Province(16 , 2 , 537 , 296 , 2 , "Suedeuropa" , new int[] {13 , 14 , 15 , 25 , 26 , 27});
// cID 3 - Suedamerika
provinces[17] = new Province(17 , 3 , 245 , 396 , 1 , "Venezuela" , new int[] {8 , 18 , 19});
@ -77,17 +81,17 @@ public class Map_World extends GeneralMap
// cID 4 - Afrika
provinces[21] = new Province(21 , 4 , 680 , 630 , 1 , "Madagaskar" , new int[] {24 , 22});
provinces[22] = new Province(22 , 4 , 580 , 624 , 1 , "Südafrika" , new int[] {21 , 23 , 24});
provinces[22] = new Province(22 , 4 , 580 , 624 , 1 , "Suedafrika" , new int[] {21 , 23 , 24});
provinces[23] = new Province(23 , 4 , 572 , 537 , 2 , "Zentralafrika" , new int[] {22 , 25 , 24});
provinces[24] = new Province(24 , 4 , 632 , 500 , 2 , "Ostafrika" , new int[] {21 , 22 , 25 , 23 , 26});
provinces[25] = new Province(25 , 4 , 491 , 444 , 1 , "Nordafrika" , new int[] {15 , 16 , 26 , 23 , 24});
provinces[26] = new Province(26 , 4 , 574 , 414 , 1 , "Ägypten" , new int[] {27 , 25 , 24 , 16});
provinces[26] = new Province(26 , 4 , 574 , 414 , 1 , "aegypten" , new int[] {27 , 25 , 24 , 16});
// cID 5 - Asien
provinces[27] = new Province(27 , 5 , 664 , 345 , 2 , "Mittlerer Osten" , new int[] {24 , 26 , 16 , 23 , 31 , 28});
provinces[28] = new Province(28 , 5 , 784 , 370 , 2 , "Indien" , new int[] {29 , 31 , 27 , 30});
provinces[29] = new Province(29 , 5 , 863 , 322 , 2 , "China" , new int[] {30 , 28 , 31 , 32 , 33 , 37});
provinces[30] = new Province(30 , 5 , 867 , 400 , 1 , "Südost Asien" , new int[] {29 , 39 , 28});
provinces[30] = new Province(30 , 5 , 867 , 400 , 1 , "Suedost Asien" , new int[] {29 , 39 , 28});
provinces[31] = new Province(31 , 5 , 724 , 262 , 1 , "Afganistan" , new int[] {29 , 28 , 27 , 13 , 32});
provinces[32] = new Province(32 , 5 , 740 , 163 , 1 , "Ural" , new int[] {29 , 33 , 31 , 13});
provinces[33] = new Province(33 , 5 , 802 , 128 , 1 , "Sibirien" , new int[] {34 , 35 , 37 , 29 , 32});
@ -137,7 +141,7 @@ public class Map_World extends GeneralMap
Spieler 2 ist als zweites dran; Hauptstadt:7
Spieler 3 ist als drittes dran und bekommt eine Karte; Hauptstadt:22
Spieler 4 ist als viertes dran und bekommt eine Karte; Hauptstadt:20
Spieler 5 ist als fünftes dran und bekommt zwei Karte; Hauptstadt:41
Spieler 5 ist als fuenftes dran und bekommt zwei Karte; Hauptstadt:41
*/
dataL = new int[] {2,1,0,2,3,2,1,2,1,2,1,2,1,4,3,1,1,2,3,1,3,3,2,1,0,4,0,2,2,3,0,2,1,3,3,2,3,5,3,3,1,2,2,5,2,3,0,2,2,3,2,2,1,3,4,2,4,3,4,3,0,3,0,3,3,1,4,1,4,1,4,2,2,2,3,2,4,2,0,2,4,4,4,2};
}
@ -146,5 +150,6 @@ public class Map_World extends GeneralMap
p.setOwner(dataL[(i-1)*2]);
p.setEntityCount(dataL[(i*2)-1]);
}
redrawPlayers();
}
}

@ -1,29 +1,33 @@
/*
Hinweis zum Verbleib der Klasse:
Diese Klasse soll, da sie zurzeit weder vollständig, noch in Verwendung, noch in der Architektur definiert ist, zum Beta-Meilenstein entfernt werden.
Sollte die Klasse jedoch zuvor noch Verwendung finden, wird sie nach Absprache mit den jeweiligen Autoren/Benutzern in die Architektur aufgenommen.
*/
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Menue_Button here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Menue_Button extends Button
{
public Menue_Button(ButtonEvent h) {
super(h);
}
/**
* Act - do whatever the Menue_Button wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
setLocation(100,38);// Add your action code here.
}
}
package zweiundvierzig;
/*
Hinweis zum Verbleib der Klasse:
Diese Klasse soll, da sie zurzeit weder vollstaendig, noch in Verwendung, noch in der Architektur definiert ist, zum Beta-Meilenstein entfernt werden.
Sollte die Klasse jedoch zuvor noch Verwendung finden, wird sie nach Absprache mit den jeweiligen Autoren/Benutzern in die Architektur aufgenommen.
*/
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Menue_Button here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Menue_Button extends Button
{
public Menue_Button(ButtonEvent h) {
super(h);
}
/**
* Act - do whatever the Menue_Button wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
setLocation(100,38);// Add your action code here.
}
}

@ -1,3 +1,7 @@
package zweiundvierzig;
import greenfoot.*;
import java.util.Arrays; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;

@ -1,279 +1,295 @@
import greenfoot.*;
import java.awt.Color;
/**
* Write a description of class Player here.
*
* @author (Genosse Betakevin und Genosse Julien und Genosse GruenerWal)
* @version 6.6.6-build2
*/
public class Player extends Actor
{
@Override public GeneralMap getWorld(){
return (GeneralMap) super.getWorld();
}
int stars=0;
int add=0;
int id=0;
int provZahl=0;
int provVgl=0;
int[] stats = new int [6];
String n;
int color;
int textsize;
int c;
public int active;
//definiert die ID und Namens Variable
public Player(int identity,String name, int c)
{
n = name;
id = identity;
color = c;
// redrawPlayer();
}
//gibt die Spieler ID zurück
public int getID()
{
return id;
}
// gibt den Spielernamen zurück
public String getDisplayName ()
{
return n;
}
//gibt die Sternenanzahl zurück
public int getStars()
{
return stars;
}
/**
* Gibt die Farbe des Spielers als int-Wert heraus.
* Wahnsinn, dass du dir den Scheiß hier grad durchliest.
* ~GruenerWal
*/
public int getColor()
{
return color;
}
// Von Felix: Methode nicht architektur-konform
/* // erhöht die Sternenzahl um eine random ausgewählte Anzahl von 1-3
public void addToStars()
{
int rand;
int pre;
rand = (int)(1+6*Math.random());
if (rand == 1 || rand == 2|| rand == 3)
{
add = 1;
redrawPlayer();
}
if (rand == 4|| rand == 5)
{
add = 2;
redrawPlayer();
}
if (rand == 6)
{
add = 3;
redrawPlayer();
}
if (gotProv== true)
{
pre = stars;
stars+=add;
System.out.println("Deine vorherige Sternenanzahl betrug " + pre + ".");
System.out.println("Du hast " + add + " Sterne erhalten.");
System.out.println("Deine aktuelle Sternenanzahl beträgt " + stars + ".");
redrawPlayer();
}
} */
private void checkStars() {
if(stars < 0) {
stars = 0;
}
}
// Von Felix: Architektur-konforme Funktion
public int addToStars(int s) {
stars += s;
checkStars();
redrawPlayer();
return stars;
}
//eine für das Testen gedachte Methode, die die Anzahl der Sterne auf ein gewünschtes Maß setzt
public int setStars (int set)
{
stars = set;
checkStars();
redrawPlayer();
return stars;
}
//eine Methode, die das Abziehen von Sternen testet und, wenn das Ergebnis >= 0 ist, die Sternenanzahl um eine gewählte Anzahl verringert
public int removeFromStars(int sub)
{
stars -= sub;
checkStars();
redrawPlayer();
return stars;
}
public boolean canStarsRemoved(int s) {
return (stars - s) >= 0;
}
public int getProvinceCount()
{
int p = 0;
int[] provinces = getWorld().getProvinceOwners();
for (int x=1; x < provinces.length; x++)
{
if (provinces[x] == id)
{
p++;
redrawPlayer();
}
}
return p;
}
public void gotEntities(int gotEnt)
{
stats[3]+= gotEnt;
redrawPlayer();
}
public void lostEntity()
{
stats[4]+=1;
redrawPlayer();
}
private void maxEntities(int entNumber)
{
if (stats[5]< entNumber)
{
stats[5]=entNumber;
redrawPlayer();
}
}
public boolean[] getMyProvinces()
{
int[] provinces = getWorld().getProvinceOwners();
boolean[] myProvinces = new boolean[provinces.length];
for (int x=0; x < provinces.length; x++)
{
if (provinces[x]== id)
{
myProvinces[x]=true;
}
else
{
myProvinces[x]=false;
}
}
redrawPlayer();
return myProvinces;
}
public int[] getStatistics()
{
redrawPlayer();
return stats;
}
public int setColor(int c)
{
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);
}
private void oDecide(GreenfootImage statistics,int textSize)
{
GreenfootImage flag = new GreenfootImage("images\\BlaueArmee.jpg");
redraw(statistics,flag,textSize);
switch(color)
{
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");
redrawArrow(statistics,flag,textSize);
break;
}
}
private void redrawArrow(GreenfootImage statistics,GreenfootImage flag, int textSize)
{
// redraw(statistics,flag,textSize);
GreenfootImage Arrow = new GreenfootImage(137,120);
if(id == 0 || id == 1|| id == 2)
{
Arrow.setColor(Color.GRAY);
Arrow.fill();
Arrow.drawImage(statistics,0,0);
redraw(Arrow,flag,textSize);
}
else
{
redraw(statistics,flag,textSize);
}
}
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] + "||" +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);
}
}
package zweiundvierzig;
import greenfoot.*;
import java.awt.Color;
/**
* Write a description of class Player here.
*
* @author (Genosse Betakevin und Genosse Julien und Genosse GruenerWal)
* @version 6.6.6-build2
*/
public class Player extends Actor
{
@Override public GeneralMap getWorld(){
return (GeneralMap) super.getWorld();
}
int stars=0;
int add=0;
int id=0;
int provZahl=0;
int provVgl=0;
int[] stats = new int [6];
String n;
int color;
int textsize;
int c;
public int active;
boolean starsNeeded = false;
//definiert die ID und Namens Variable
public Player(int identity,String name, int c)
{
n = name;
id = identity;
color = c;
// redrawPlayer();
}
//gibt die Spieler ID zurueck
public int getID()
{
return id;
}
// gibt den Spielernamen zurueck
public String getDisplayName ()
{
return n;
}
//gibt die Sternenanzahl zurueck
public int getStars()
{
return stars;
}
/**
* Gibt die Farbe des Spielers als int-Wert heraus.
* Wahnsinn, dass du dir den Scheiß hier grad durchliest.
* ~GruenerWal
*/
public int getColor()
{
return color;
}
// Von Felix: Methode nicht architektur-konform
/* // erhoeht die Sternenzahl um eine random ausgewaehlte Anzahl von 1-3
public void addToStars()
{
int rand;
int pre;
rand = (int)(1+6*Math.random());
if (rand == 1 || rand == 2|| rand == 3)
{
add = 1;
redrawPlayer();
}
if (rand == 4|| rand == 5)
{
add = 2;
redrawPlayer();
}
if (rand == 6)
{
add = 3;
redrawPlayer();
}
if (gotProv== true)
{
pre = stars;
stars+=add;
System.out.println("Deine vorherige Sternenanzahl betrug " + pre + ".");
System.out.println("Du hast " + add + " Sterne erhalten.");
System.out.println("Deine aktuelle Sternenanzahl betraegt " + stars + ".");
redrawPlayer();
}
} */
private void checkStars() {
if(stars < 0) {
stars = 0;
}
}
// Von Felix: Architektur-konforme Funktion
public int addToStars(int s) {
stars += s;
checkStars();
redrawPlayer();
return stars;
}
//eine fuer das Testen gedachte Methode, die die Anzahl der Sterne auf ein gewuenschtes Maß setzt
public int setStars (int set)
{
stars = set;
checkStars();
redrawPlayer();
return stars;
}
//eine Methode, die das Abziehen von Sternen testet und, wenn das Ergebnis >= 0 ist, die Sternenanzahl um eine gewaehlte Anzahl verringert
public int removeFromStars(int sub)
{
stars -= sub;
checkStars();
redrawPlayer();
return stars;
}
public boolean canStarsRemoved(int s) {
return (stars - s) >= 0;
}
public int getProvinceCount()
{
int p = 0;
int[] provinces = getWorld().getProvinceOwners();
for (int x=1; x < provinces.length; x++)
{
if (provinces[x] == id)
{
p++;
}
}
return p;
}
public int getEntitiesCount() {
return getWorld().getPlayerEntityCount(id);
}
public void gotEntities(int gotEnt)
{
stats[3]+= gotEnt;
reloadMaxEntities();
redrawPlayer();
}
public void lostEntity()
{
stats[4]+=1;
redrawPlayer();
}
public void gotProvince() {
stats[0]++;
reloadMaxInfluence();
redrawPlayer();
starsNeeded = true;
}
public void lostProvince() {
stats[1]++;
redrawPlayer();
}
public void reloadMaxInfluence()
{
int c = getProvinceCount();
if(stats[2]< c)
{
stats[2]=c;
redrawPlayer();
}
}
public void reloadMaxEntities()
{
int c = getEntitiesCount();
if (stats[5]< c)
{
stats[5]=c;
redrawPlayer();
}
}
public boolean[] getMyProvinces()
{
int[] provinces = getWorld().getProvinceOwners();
boolean[] myProvinces = new boolean[provinces.length];
for (int x=0; x < provinces.length; x++)
{
if (provinces[x]== id)
{
myProvinces[x]=true;
}
else
{
myProvinces[x]=false;
}
}
redrawPlayer();
return myProvinces;
}
public int[] getStatistics()
{
return stats;
}
public int setColor(int c)
{
color = c;
redrawPlayer();
return color;
}
private Color getTextCol() {
return (getWorld().getCurrentPlayerID() == id) ? new Color(0,0,0) : new Color(255,255,255);
}
private Color getTransBackCol() {
return (getWorld().getCurrentPlayerID() == id) ? new Color(255,255,255) : new Color(0,0,0);
}
public void redrawPlayer()
{
getWorld().reloadPlayerStat();
int textSize = 20;
if(n == null)
{
n = "leererSpieler";
}
GreenfootImage statistics = new GreenfootImage(137,120);
if(getWorld().getCurrentPlayerID() == id) {
statistics.setColor(new Color(255,255,255));
statistics.fill();
}
GreenfootImage name = new GreenfootImage(n,textSize,getTextCol(),getTransBackCol());
statistics.drawImage(name,0,0);
setImage(statistics);
oDecide(statistics,textSize);
}
private void oDecide(GreenfootImage statistics,int textSize)
{
GreenfootImage flag = new GreenfootImage("images\\BlaueArmee.jpg");
switch(color)
{
case 2:
flag = new GreenfootImage("images\\BlaueArmee.jpg");
break;
case 5:
flag = new GreenfootImage("images\\GelbeArmee.jpg");
break;
case 6:
flag = new GreenfootImage("images\\LilaArmee.jpg");
break;
case 4:
flag = new GreenfootImage("images\\RoteArmee.jpg");
break;
case 1:
flag = new GreenfootImage("images\\SchwarzeArmee.jpg");
break;
case 3:
flag = new GreenfootImage("images\\GrueneArmee.jpg");
break;
}
redraw(statistics,flag,textSize);
}
private void redraw(GreenfootImage statistics,GreenfootImage flag, int textSize)
{
flag.scale(137,83);
statistics.drawImage(flag,0,textSize);
String statTxt = (getWorld().getCurrentPlayerID() == id) ? "Du bist dran!" : stats[0] + " | " + stats[1] + " | " + stats[2] + " | " +stats[3] + " | " + stats[4] + " | " + stats[5];
GreenfootImage playerStatistics = new GreenfootImage(statTxt,textSize,getTextCol(),getTransBackCol());
statistics.drawImage(playerStatistics, 0, 103);
setImage(statistics);
}
}

File diff suppressed because it is too large Load Diff

@ -1,13 +1,17 @@
package zweiundvierzig;
/*
Hinweis zum Verbleib der Klasse:
Diese Klasse soll, da sie zurzeit weder vollständig, noch in Verwendung, noch in der Architektur definiert ist, zum Beta-Meilenstein entfernt werden.
Diese Klasse soll, da sie zurzeit weder vollstaendig, noch in Verwendung, noch in der Architektur definiert ist, zum Beta-Meilenstein entfernt werden.
Sollte die Klasse jedoch zuvor noch Verwendung finden, wird sie nach Absprache mit den jeweiligen Autoren/Benutzern in die Architektur aufgenommen.
*/
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Würfel_Button_Angriff here.
* Write a description of class Wuerfel_Button_Angriff here.
*
* @author (your name)
* @version (a version number or a date)
@ -19,7 +23,7 @@ public class Roll_Button extends Button
}
/**
* Act - do whatever the Würfel_Button_Angriff wants to do. This method is called whenever
* Act - do whatever the Wuerfel_Button_Angriff wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()

@ -1,20 +1,24 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Spielanleitung here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Spielanleitung extends Actor
{
public void act()
{
setImage ("Spielanleitung.png");
}
}
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Spielanleitung here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Spielanleitung extends Actor
{
public void act()
{
setImage ("Spielanleitung.png");
}
}

@ -1,62 +1,67 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Beginnt neues Spiel/ lädt altes Spiel.
*
* @author 4ngelica
* @version 04.07.16
*/
public class Start_Load extends World implements ButtonEvent
{
static String backgroundImage = "backgroundLight.png"; // Gibt an, welches Bild in allen Menüs als Hintergrund gewählt werden soll.
// Light Theme: "backgroundLight.png"
// Dark Theme: "backgroundDark.png"
Button chulien = new Button("Neues Spiel", 16 , this);
Button spielanleitung = new Button("Spielanleitung", 16, this);
Button zurück = new Button("zurück", 16, this);
/**
* Constructor for objects of class Start_Load.
*
*/
public Start_Load()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(1600, 900, 1);
setBackground(backgroundImage);
chulien.setSize(100,50);
spielanleitung.setSize(100,50);
zurück.setSize(100,50);
addObject (chulien, (1600-chulien.getWidth())/2+100, (900-chulien.getHeight())/2);
addObject (spielanleitung, (1600-spielanleitung.getWidth())/2+100, (900-spielanleitung.getHeight())/2 + 80);
}
public void buttonClicked ( Button b)
{
if ( b == chulien)
{
World chean = new Colours (1600, 900, 1);
Greenfoot.setWorld(chean);
}
if (b == spielanleitung)
{
addObject (new Spielanleitung(), 800, 410);
addObject (zurück, 800 , 870);
}
if (b == zurück)
{
removeObjects(getObjects(Spielanleitung.class));
removeObject(zurück);
}
}
public void Load()
{
}
}
package zweiundvierzig;
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Beginnt neues Spiel/ laedt altes Spiel.
*
* @author 4ngelica
* @version 04.07.16
*/
public class Start_Load extends World implements ButtonEvent
{
static String backgroundImage = "backgroundLight.png"; // Gibt an, welches Bild in allen Menues als Hintergrund gewaehlt werden soll.
// Light Theme: "backgroundLight.png"
// Dark Theme: "backgroundDark.png"
Button chulien = new Button("Neues Spiel", 16 , this);
Button spielanleitung = new Button("Spielanleitung", 16, this);
Button zurueck = new Button("zurueck", 16, this);
/**
* Constructor for objects of class Start_Load.
*
*/
public Start_Load()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(1600, 900, 1);
setBackground(backgroundImage);
chulien.setSize(100,50);
spielanleitung.setSize(100,50);
zurueck.setSize(100,50);
addObject (chulien, (1600-chulien.getWidth())/2+100, (900-chulien.getHeight())/2);
addObject (spielanleitung, (1600-spielanleitung.getWidth())/2+100, (900-spielanleitung.getHeight())/2 + 80);
Greenfoot.setSpeed(100);
Greenfoot.start();
}
public void buttonClicked ( Bildbutton b)
{
if ( b == chulien)
{
World chean = new Colours (1600, 900, 1);
Greenfoot.setWorld(chean);
}
if (b == spielanleitung)
{
addObject (new Spielanleitung(), 800, 410);
addObject (zurueck, 800 , 870);
}
if (b == zurueck)
{
removeObjects(getObjects(Spielanleitung.class));
removeObject(zurueck);
}
}
public void Load()
{
}
}

@ -1,10 +1,14 @@
package zweiundvierzig;
import greenfoot.*;
import java.awt.Color;
import java.util.*;
import java.lang.Object;
/**
Diese Klasse enthält nur statische Funktionen, welche für euch als Unterstützung gedacht sind. Damit könnt ihr dann hoffentlich viele Code-Zeilen sparen. :)
Diese Klasse enthaelt nur statische Funktionen, welche fuer euch als Unterstuetzung gedacht sind. Damit koennt ihr dann hoffentlich viele Code-Zeilen sparen. :)
@author Zocker1999_NET
@version 15.06.2016
@ -12,7 +16,7 @@ Diese Klasse enthält nur statische Funktionen, welche für euch als Unterstütz
public final class Utils {
/**
Kopiert ein boolean-Array und übergibt diese.
Kopiert ein boolean-Array und uebergibt diese.
@param a Das zu kopierende Array
@return Die Kopie des Arrays
*/
@ -25,7 +29,7 @@ public final class Utils {
}
/**
Kopiert ein int-Array und übergibt diese.
Kopiert ein int-Array und uebergibt diese.
@param a Das zu kopierende Array
@return Die Kopie des Arrays
*/
@ -38,7 +42,7 @@ public final class Utils {
}
/**
Kopiert ein String-Array und übergibt diese.
Kopiert ein String-Array und uebergibt diese.
@param a Das zu kopierende Array
@return Die Kopie des Arrays
*/
@ -51,9 +55,9 @@ public final class Utils {
}
/**
Zeichnet innerhalb eines GreenfootImage ein gefülltes Rechteck in der gegebenen Farbe und mit dem gegebenen Abstand zum Rand.
Zeichnet innerhalb eines GreenfootImage ein gefuelltes Rechteck in der gegebenen Farbe und mit dem gegebenen Abstand zum Rand.
@param i Das GreenfootImage, in dem gezeichnet werden soll.
@param c Die Farbe, in der das gefüllte Rechteck gezeichnet werden soll.
@param c Die Farbe, in der das gefuellte Rechteck gezeichnet werden soll.
@param b Der Abstand zum Rand der Grafik.
*/
public static void drawInsideRectangle(GreenfootImage i, Color c, int b) {

@ -0,0 +1,420 @@
#BlueJ package file
dependency1.from=Bildbutton
dependency1.to=ButtonEvent
dependency1.type=UsesDependency
dependency10.from=Colours
dependency10.to=Map
dependency10.type=UsesDependency
dependency11.from=Colours
dependency11.to=Start_Load
dependency11.type=UsesDependency
dependency12.from=Start_Load
dependency12.to=Button
dependency12.type=UsesDependency
dependency13.from=Start_Load
dependency13.to=Bildbutton
dependency13.type=UsesDependency
dependency14.from=Start_Load
dependency14.to=Colours
dependency14.type=UsesDependency
dependency15.from=Start_Load
dependency15.to=Spielanleitung
dependency15.type=UsesDependency
dependency16.from=Roll_Button
dependency16.to=ButtonEvent
dependency16.type=UsesDependency
dependency17.from=Player
dependency17.to=GeneralMap
dependency17.type=UsesDependency
dependency18.from=Menue_Button
dependency18.to=ButtonEvent
dependency18.type=UsesDependency
dependency19.from=DicesList
dependency19.to=Dice
dependency19.type=UsesDependency
dependency2.from=InputDialogWorld
dependency2.to=Label
dependency2.type=UsesDependency
dependency20.from=DicesList
dependency20.to=Utils
dependency20.type=UsesDependency
dependency21.from=Province
dependency21.to=GeneralMap
dependency21.type=UsesDependency
dependency22.from=Province
dependency22.to=Utils
dependency22.type=UsesDependency
dependency23.from=GeneralMap
dependency23.to=Button
dependency23.type=UsesDependency
dependency24.from=GeneralMap
dependency24.to=Province
dependency24.type=UsesDependency
dependency25.from=GeneralMap
dependency25.to=Label
dependency25.type=UsesDependency
dependency26.from=GeneralMap
dependency26.to=Player
dependency26.type=UsesDependency
dependency27.from=GeneralMap
dependency27.to=Bildbutton
dependency27.type=UsesDependency
dependency28.from=GeneralMap
dependency28.to=Dice_Offender
dependency28.type=UsesDependency
dependency29.from=GeneralMap
dependency29.to=Dice_Defender
dependency29.type=UsesDependency
dependency3.from=InputDialogWorld
dependency3.to=Button
dependency3.type=UsesDependency
dependency30.from=GeneralMap
dependency30.to=Utils
dependency30.type=UsesDependency
dependency31.from=ButtonEvent
dependency31.to=Bildbutton
dependency31.type=UsesDependency
dependency32.from=Utils
dependency32.to=Province
dependency32.type=UsesDependency
dependency33.from=Map
dependency33.to=Bildbutton
dependency33.type=UsesDependency
dependency34.from=Map
dependency34.to=Button
dependency34.type=UsesDependency
dependency35.from=Map
dependency35.to=Map_World
dependency35.type=UsesDependency
dependency36.from=Map
dependency36.to=GeneralMap
dependency36.type=UsesDependency
dependency37.from=Map
dependency37.to=Start_Load
dependency37.type=UsesDependency
dependency4.from=InputDialogWorld
dependency4.to=Bildbutton
dependency4.type=UsesDependency
dependency5.from=Map_World
dependency5.to=Province
dependency5.type=UsesDependency
dependency6.from=Button
dependency6.to=ButtonEvent
dependency6.type=UsesDependency
dependency7.from=Colours
dependency7.to=Bildbutton
dependency7.type=UsesDependency
dependency8.from=Colours
dependency8.to=Button
dependency8.type=UsesDependency
dependency9.from=Colours
dependency9.to=Label
dependency9.type=UsesDependency
objectbench.height=100
objectbench.width=353
package.editor.height=400
package.editor.width=560
package.editor.x=12
package.editor.y=12
package.numDependencies=37
package.numTargets=26
package.showExtends=true
package.showUses=true
target1.editor.height=700
target1.editor.width=900
target1.editor.x=0
target1.editor.y=0
target1.height=50
target1.name=Bildbutton
target1.naviview.expanded=true
target1.showInterface=false
target1.type=ClassTarget
target1.typeParameters=
target1.width=80
target1.x=160
target1.y=10
target10.editor.height=700
target10.editor.width=900
target10.editor.x=0
target10.editor.y=0
target10.height=50
target10.name=Colours
target10.naviview.expanded=true
target10.showInterface=false
target10.type=ClassTarget
target10.typeParameters=
target10.width=80
target10.x=200
target10.y=250
target11.editor.height=700
target11.editor.width=900
target11.editor.x=0
target11.editor.y=0
target11.height=50
target11.name=Start_Load
target11.naviview.expanded=true
target11.showInterface=false
target11.type=ClassTarget
target11.typeParameters=
target11.width=90
target11.x=130
target11.y=310
target12.height=50
target12.name=Roll_Button
target12.showInterface=false
target12.type=ClassTarget
target12.typeParameters=
target12.width=90
target12.x=10
target12.y=370
target13.editor.height=700
target13.editor.width=900
target13.editor.x=0
target13.editor.y=0
target13.height=50
target13.name=Spielanleitung
target13.naviview.expanded=true
target13.showInterface=false
target13.type=ClassTarget
target13.typeParameters=
target13.width=100
target13.x=110
target13.y=370
target14.editor.height=700
target14.editor.width=900
target14.editor.x=0
target14.editor.y=0
target14.height=50
target14.name=Player
target14.naviview.expanded=true
target14.showInterface=false
target14.type=ClassTarget
target14.typeParameters=
target14.width=80
target14.x=10
target14.y=430
target15.height=50
target15.name=Debug5
target15.showInterface=false
target15.type=ClassTarget
target15.typeParameters=
target15.width=80
target15.x=100
target15.y=430
target16.height=50
target16.name=Debug4
target16.showInterface=false
target16.type=ClassTarget
target16.typeParameters=
target16.width=80
target16.x=190
target16.y=430
target17.height=50
target17.name=Debug3
target17.showInterface=false
target17.type=ClassTarget
target17.typeParameters=
target17.width=80
target17.x=10
target17.y=490
target18.editor.height=700
target18.editor.width=900
target18.editor.x=0
target18.editor.y=0
target18.height=50
target18.name=Dice
target18.naviview.expanded=true
target18.showInterface=false
target18.type=ClassTarget
target18.typeParameters=
target18.width=80
target18.x=100
target18.y=490
target19.height=50
target19.name=Menue_Button
target19.showInterface=false
target19.type=ClassTarget
target19.typeParameters=
target19.width=110
target19.x=10
target19.y=550
target2.editor.height=700
target2.editor.width=900
target2.editor.x=0
target2.editor.y=0
target2.height=50
target2.name=GUI_Interface
target2.naviview.expanded=true
target2.showInterface=false
target2.type=AbstractTarget
target2.typeParameters=
target2.width=100
target2.x=160
target2.y=70
target20.editor.height=700
target20.editor.width=900
target20.editor.x=0
target20.editor.y=0
target20.height=50
target20.name=DicesList
target20.naviview.expanded=true
target20.showInterface=false
target20.type=AbstractTarget
target20.typeParameters=
target20.width=80
target20.x=190
target20.y=490
target21.height=50
target21.name=OffenderDices
target21.showInterface=false
target21.type=ClassTarget
target21.typeParameters=
target21.width=110
target21.x=130
target21.y=550
target22.editor.height=700
target22.editor.width=900
target22.editor.x=0
target22.editor.y=0
target22.height=50
target22.name=Province
target22.naviview.expanded=true
target22.showInterface=false
target22.type=ClassTarget
target22.typeParameters=
target22.width=80
target22.x=10
target22.y=610
target23.editor.height=700
target23.editor.width=900
target23.editor.x=0
target23.editor.y=0
target23.height=50
target23.name=GeneralMap
target23.naviview.expanded=true
target23.showInterface=false
target23.type=AbstractTarget
target23.typeParameters=
target23.width=90
target23.x=100
target23.y=610
target24.editor.height=700
target24.editor.width=900
target24.editor.x=0
target24.editor.y=0
target24.height=50
target24.name=ButtonEvent
target24.naviview.expanded=true
target24.showInterface=false
target24.type=InterfaceTarget
target24.typeParameters=
target24.width=90
target24.x=10
target24.y=670
target25.editor.height=700
target25.editor.width=900
target25.editor.x=0
target25.editor.y=0
target25.height=50
target25.name=Utils
target25.naviview.expanded=true
target25.showInterface=false
target25.type=ClassTarget
target25.typeParameters=
target25.width=80
target25.x=200
target25.y=610
target26.editor.height=700
target26.editor.width=900
target26.editor.x=0
target26.editor.y=0
target26.height=50
target26.name=Map
target26.naviview.expanded=true
target26.showInterface=false
target26.type=ClassTarget
target26.typeParameters=
target26.width=80
target26.x=110
target26.y=670
target3.editor.height=700
target3.editor.width=900
target3.editor.x=0
target3.editor.y=0
target3.height=50
target3.name=Label
target3.naviview.expanded=true
target3.showInterface=false
target3.type=ClassTarget
target3.typeParameters=
target3.width=80
target3.x=10
target3.y=90
target4.height=50
target4.name=InputDialogWorld
target4.showInterface=false
target4.type=ClassTarget
target4.typeParameters=
target4.width=120
target4.x=100
target4.y=130
target5.editor.height=700
target5.editor.width=900
target5.editor.x=0
target5.editor.y=0
target5.height=50
target5.name=Dice_Defender
target5.naviview.expanded=true
target5.showInterface=false
target5.type=ClassTarget
target5.typeParameters=
target5.width=110
target5.x=10
target5.y=190
target6.height=50
target6.name=DefenderDices
target6.showInterface=false
target6.type=ClassTarget
target6.typeParameters=
target6.width=110
target6.x=130
target6.y=190
target7.editor.height=700
target7.editor.width=900
target7.editor.x=0
target7.editor.y=0
target7.height=50
target7.name=Map_World
target7.naviview.expanded=true
target7.showInterface=false
target7.type=ClassTarget
target7.typeParameters=
target7.width=90
target7.x=10
target7.y=250
target8.editor.height=700
target8.editor.width=900
target8.editor.x=0
target8.editor.y=0
target8.height=50
target8.name=Button
target8.naviview.expanded=true
target8.showInterface=false
target8.type=ClassTarget
target8.typeParameters=
target8.width=80
target8.x=110
target8.y=250
target9.editor.height=700
target9.editor.width=900
target9.editor.x=0
target9.editor.y=0
target9.height=50
target9.name=Dice_Offender
target9.naviview.expanded=true
target9.showInterface=false
target9.type=ClassTarget
target9.typeParameters=
target9.width=110
target9.x=10
target9.y=310

@ -1,338 +1,346 @@
#Greenfoot project file
class.ArmyPlacer.superclass=Map_World
class.ArmySchubser.superclass=Map_World
class.Button.superclass=GUI_Interface
class.ButtonEvent.superclass=
class.Colours.superclass=greenfoot.World
class.CurrentPlayerArrow.superclass=GUI_Interface
class.Debug3.superclass=Map_World
class.Debug4.superclass=Map_World
class.Debug5.superclass=Map_World
class.DefenderDices.superclass=DicesList
class.Dice.superclass=GUI_Interface
class.Dice_Defender.superclass=Dice
class.Dice_Offender.superclass=Dice
class.DicesList.superclass=greenfoot.Actor
class.Fight.superclass=Map_World
class.GUI_Interface.superclass=greenfoot.Actor
class.GeneralMap.superclass=greenfoot.World
class.Label.superclass=GUI_Interface
class.Map.superclass=greenfoot.World
class.Map_World.superclass=GeneralMap
class.Menue_Button.superclass=Button
class.OffenderDices.superclass=DicesList
class.Player.superclass=greenfoot.Actor
class.Province.superclass=greenfoot.Actor
class.Roll_Button.superclass=Button
class.Spieleranzahl.superclass=Spieloptionen
class.Spieloptionen.superclass=greenfoot.World
class.Start_Load.superclass=greenfoot.World
class.Utils.superclass=
class.Weltenauswahl.superclass=Spieloptionen
dependency1.from=Province
dependency1.to=Utils
dependency1.type=UsesDependency
dependency10.from=GeneralMap
dependency10.to=Player
dependency10.type=UsesDependency
dependency11.from=Button
dependency11.to=ButtonEvent
dependency11.type=UsesDependency
dependency12.from=Button
dependency12.to=Utils
dependency12.type=UsesDependency
dependency13.from=ButtonEvent
dependency13.to=Button
dependency13.type=UsesDependency
dependency14.from=Roll_Button
dependency14.to=ButtonEvent
dependency14.type=UsesDependency
dependency15.from=Start_Load
dependency15.to=Button
dependency15.type=UsesDependency
dependency16.from=Start_Load
dependency16.to=ButtonEvent
dependency16.type=UsesDependency
dependency17.from=Colours
dependency17.to=Button
dependency17.type=UsesDependency
dependency18.from=Colours
dependency18.to=Map
dependency18.type=UsesDependency
dependency19.from=Map
dependency19.to=Button
dependency19.type=UsesDependency
dependency2.from=GeneralMap
dependency2.to=Menue_Button
dependency2.type=UsesDependency
dependency20.from=Map
dependency20.to=GeneralMap
dependency20.type=UsesDependency
dependency21.from=Colours
dependency21.to=Map_World
dependency21.type=UsesDependency
dependency22.from=Start_Load
dependency22.to=Colours
dependency22.type=UsesDependency
dependency23.from=ArmyPlacer
dependency23.to=Province
dependency23.type=UsesDependency
dependency24.from=ArmyPlacer
dependency24.to=Utils
dependency24.type=UsesDependency
dependency25.from=GeneralMap
dependency25.to=Button
dependency25.type=UsesDependency
dependency26.from=GeneralMap
dependency26.to=Province
dependency26.type=UsesDependency
dependency27.from=GeneralMap
dependency27.to=Dice_Offender
dependency27.type=UsesDependency
dependency28.from=GeneralMap
dependency28.to=Dice_Defender
dependency28.type=UsesDependency
dependency29.from=GeneralMap
dependency29.to=Utils
dependency29.type=UsesDependency
dependency3.from=GeneralMap
dependency3.to=Roll_Button
dependency3.type=UsesDependency
dependency30.from=Utils
dependency30.to=Province
dependency30.type=UsesDependency
dependency31.from=Map
dependency31.to=Map_World
dependency31.type=UsesDependency
dependency4.from=Map_World
dependency4.to=Province
dependency4.type=UsesDependency
dependency5.from=Player
dependency5.to=GeneralMap
dependency5.type=UsesDependency
dependency6.from=Menue_Button
dependency6.to=ButtonEvent
dependency6.type=UsesDependency
dependency7.from=DicesList
dependency7.to=Dice
dependency7.type=UsesDependency
dependency8.from=DicesList
dependency8.to=Utils
dependency8.type=UsesDependency
dependency9.from=Province
dependency9.to=GeneralMap
dependency9.type=UsesDependency
editor.fx.0.height=700
editor.fx.0.width=700
editor.fx.0.x=0
editor.fx.0.y=0
editor.swing.0.height=1056
editor.swing.0.width=1936
editor.swing.0.x=-8
editor.swing.0.y=-8
mainWindow.height=1056
mainWindow.width=1936
mainWindow.x=-8
mainWindow.y=-8
package.numDependencies=31
package.numTargets=24
project.charset=UTF-8
readme.height=58
readme.name=@README
readme.width=47
readme.x=10
readme.y=10
target1.height=50
target1.name=GUI_Interface
target1.showInterface=false
target1.type=AbstractTarget
target1.typeParameters=
target1.width=100
target1.x=10
target1.y=250
target10.height=50
target10.name=Roll_Button
target10.showInterface=false
target10.type=ClassTarget
target10.typeParameters=
target10.width=90
target10.x=190
target10.y=190
target11.height=50
target11.name=ArmyPlacer
target11.showInterface=false
target11.type=ClassTarget
target11.typeParameters=
target11.width=90
target11.x=10
target11.y=670
target12.height=50
target12.name=Player
target12.showInterface=false
target12.type=ClassTarget
target12.typeParameters=
target12.width=80
target12.x=120
target12.y=10
target13.height=50
target13.name=Debug5
target13.showInterface=false
target13.type=ClassTarget
target13.typeParameters=
target13.width=80
target13.x=100
target13.y=370
target14.height=50
target14.name=Debug4
target14.showInterface=false
target14.type=ClassTarget
target14.typeParameters=
target14.width=80
target14.x=190
target14.y=370
target15.height=50
target15.name=Debug3
target15.showInterface=false
target15.type=ClassTarget
target15.typeParameters=
target15.width=80
target15.x=110
target15.y=550
target16.height=50
target16.name=Dice
target16.showInterface=false
target16.type=ClassTarget
target16.typeParameters=
target16.width=80
target16.x=100
target16.y=190
target17.height=50
target17.name=Menue_Button
target17.showInterface=false
target17.type=ClassTarget
target17.typeParameters=
target17.width=110
target17.x=120
target17.y=250
target18.height=50
target18.name=DicesList
target18.showInterface=false
target18.type=AbstractTarget
target18.typeParameters=
target18.width=80
target18.x=10
target18.y=430
target19.height=50
target19.name=OffenderDices
target19.showInterface=false
target19.type=ClassTarget
target19.typeParameters=
target19.width=110
target19.x=100
target19.y=430
target2.height=50
target2.name=Label
target2.showInterface=false
target2.type=ClassTarget
target2.typeParameters=
target2.width=80
target2.x=10
target2.y=370
target20.height=50
target20.name=Province
target20.showInterface=false
target20.type=ClassTarget
target20.typeParameters=
target20.width=80
target20.x=130
target20.y=310
target21.height=50
target21.name=GeneralMap
target21.showInterface=false
target21.type=AbstractTarget
target21.typeParameters=
target21.width=90
target21.x=70
target21.y=70
target22.height=50
target22.name=ButtonEvent
target22.showInterface=false
target22.type=InterfaceTarget
target22.typeParameters=
target22.width=90
target22.x=130
target22.y=490
target23.height=50
target23.name=Utils
target23.showInterface=false
target23.type=ClassTarget
target23.typeParameters=
target23.width=80
target23.x=10
target23.y=190
target24.height=50
target24.name=Map
target24.showInterface=false
target24.type=ClassTarget
target24.typeParameters=
target24.width=80
target24.x=190
target24.y=610
target3.height=50
target3.name=Dice_Defender
target3.showInterface=false
target3.type=ClassTarget
target3.typeParameters=
target3.width=110
target3.x=10
target3.y=310
target4.height=50
target4.name=DefenderDices
target4.showInterface=false
target4.type=ClassTarget
target4.typeParameters=
target4.width=110
target4.x=10
target4.y=490
target5.height=50
target5.name=Map_World
target5.showInterface=false
target5.type=ClassTarget
target5.typeParameters=
target5.width=90
target5.x=170
target5.y=70
target6.height=50
target6.name=Button
target6.showInterface=false
target6.type=ClassTarget
target6.typeParameters=
target6.width=80
target6.x=10
target6.y=130
target7.height=50
target7.name=Dice_Offender
target7.showInterface=false
target7.type=ClassTarget
target7.typeParameters=
target7.width=110
target7.x=100
target7.y=130
target8.height=50
target8.name=Colours
target8.showInterface=false
target8.type=ClassTarget
target8.typeParameters=
target8.width=80
target8.x=10
target8.y=610
target9.height=50
target9.name=Start_Load
target9.showInterface=false
target9.type=ClassTarget
target9.typeParameters=
target9.width=90
target9.x=10
target9.y=550
version=2.8.0
world.lastInstantiated=Map_World
#Greenfoot project file
class.ArmyPlacer.superclass=Map_World
class.ArmySchubser.superclass=Map_World
class.Button.superclass=GUI_Interface
class.ButtonEvent.superclass=
class.Colours.superclass=greenfoot.World
class.CurrentPlayerArrow.superclass=GUI_Interface
class.Debug3.superclass=Map_World
class.Debug4.superclass=Map_World
class.Debug5.superclass=Map_World
class.DefenderDices.superclass=DicesList
class.Dice.superclass=GUI_Interface
class.Dice_Defender.superclass=
class.Dice_Offender.superclass=
class.DicesList.superclass=greenfoot.Actor
class.Fight.superclass=Map_World
class.GUI_Interface.superclass=greenfoot.Actor
class.GeneralMap.superclass=greenfoot.World
class.Label.superclass=GUI_Interface
class.Main.superclass=
class.Map.superclass=greenfoot.World
class.Map_World.superclass=GeneralMap
class.Menue_Button.superclass=Button
class.OffenderDices.superclass=DicesList
class.Player.superclass=greenfoot.Actor
class.Province.superclass=greenfoot.Actor
class.Roll_Button.superclass=Button
class.Spielanleitung.superclass=greenfoot.Actor
class.Spieleranzahl.superclass=Spieloptionen
class.Spieloptionen.superclass=greenfoot.World
class.Start_Load.superclass=greenfoot.World
class.Utils.superclass=
class.Weltenauswahl.superclass=Spieloptionen
dependency1.from=Province
dependency1.to=Utils
dependency1.type=UsesDependency
dependency10.from=GeneralMap
dependency10.to=Player
dependency10.type=UsesDependency
dependency11.from=Button
dependency11.to=ButtonEvent
dependency11.type=UsesDependency
dependency12.from=Button
dependency12.to=Utils
dependency12.type=UsesDependency
dependency13.from=ButtonEvent
dependency13.to=Button
dependency13.type=UsesDependency
dependency14.from=Roll_Button
dependency14.to=ButtonEvent
dependency14.type=UsesDependency
dependency15.from=Start_Load
dependency15.to=Button
dependency15.type=UsesDependency
dependency16.from=Start_Load
dependency16.to=ButtonEvent
dependency16.type=UsesDependency
dependency17.from=Colours
dependency17.to=Button
dependency17.type=UsesDependency
dependency18.from=Colours
dependency18.to=Map
dependency18.type=UsesDependency
dependency19.from=Map
dependency19.to=Button
dependency19.type=UsesDependency
dependency2.from=GeneralMap
dependency2.to=Menue_Button
dependency2.type=UsesDependency
dependency20.from=Map
dependency20.to=GeneralMap
dependency20.type=UsesDependency
dependency21.from=Colours
dependency21.to=Map_World
dependency21.type=UsesDependency
dependency22.from=Start_Load
dependency22.to=Colours
dependency22.type=UsesDependency
dependency23.from=GeneralMap
dependency23.to=Button
dependency23.type=UsesDependency
dependency24.from=GeneralMap
dependency24.to=Province
dependency24.type=UsesDependency
dependency25.from=GeneralMap
dependency25.to=Dice_Offender
dependency25.type=UsesDependency
dependency26.from=GeneralMap
dependency26.to=Dice_Defender
dependency26.type=UsesDependency
dependency27.from=GeneralMap
dependency27.to=Utils
dependency27.type=UsesDependency
dependency28.from=Utils
dependency28.to=Province
dependency28.type=UsesDependency
dependency29.from=Map
dependency29.to=Map_World
dependency29.type=UsesDependency
dependency3.from=GeneralMap
dependency3.to=Roll_Button
dependency3.type=UsesDependency
dependency30.from=Colours
dependency30.to=Label
dependency30.type=UsesDependency
dependency31.from=Colours
dependency31.to=Start_Load
dependency31.type=UsesDependency
dependency32.from=Start_Load
dependency32.to=Spielanleitung
dependency32.type=UsesDependency
dependency33.from=Map
dependency33.to=Start_Load
dependency33.type=UsesDependency
dependency4.from=Map_World
dependency4.to=Province
dependency4.type=UsesDependency
dependency5.from=Player
dependency5.to=GeneralMap
dependency5.type=UsesDependency
dependency6.from=Menue_Button
dependency6.to=ButtonEvent
dependency6.type=UsesDependency
dependency7.from=DicesList
dependency7.to=Dice
dependency7.type=UsesDependency
dependency8.from=DicesList
dependency8.to=Utils
dependency8.type=UsesDependency
dependency9.from=Province
dependency9.to=GeneralMap
dependency9.type=UsesDependency
editor.fx.0.height=700
editor.fx.0.width=700
editor.fx.0.x=0
editor.fx.0.y=0
editor.swing.0.height=0
editor.swing.0.width=0
editor.swing.0.x=0
editor.swing.0.y=0
mainWindow.height=735
mainWindow.width=1377
mainWindow.x=-8
mainWindow.y=0
package.numDependencies=0
package.numTargets=1
project.charset=UTF-8
readme.height=58
readme.name=@README
readme.width=47
readme.x=10
readme.y=10
target1.height=50
target1.name=Main
target1.showInterface=false
target1.type=ClassTarget
target1.typeParameters=
target1.width=80
target1.x=70
target1.y=10
target10.height=50
target10.name=Roll_Button
target10.showInterface=false
target10.type=ClassTarget
target10.typeParameters=
target10.width=90
target10.x=190
target10.y=190
target11.height=50
target11.name=Spielanleitung
target11.showInterface=false
target11.type=ClassTarget
target11.typeParameters=
target11.width=100
target11.x=10
target11.y=670
target12.height=50
target12.name=Player
target12.showInterface=false
target12.type=ClassTarget
target12.typeParameters=
target12.width=80
target12.x=120
target12.y=10
target13.height=50
target13.name=Debug5
target13.showInterface=false
target13.type=ClassTarget
target13.typeParameters=
target13.width=80
target13.x=100
target13.y=370
target14.height=50
target14.name=Debug4
target14.showInterface=false
target14.type=ClassTarget
target14.typeParameters=
target14.width=80
target14.x=190
target14.y=370
target15.height=50
target15.name=Debug3
target15.showInterface=false
target15.type=ClassTarget
target15.typeParameters=
target15.width=80
target15.x=110
target15.y=550
target16.height=50
target16.name=Dice
target16.showInterface=false
target16.type=ClassTarget
target16.typeParameters=
target16.width=80
target16.x=100
target16.y=190
target17.height=50
target17.name=Menue_Button
target17.showInterface=false
target17.type=ClassTarget
target17.typeParameters=
target17.width=110
target17.x=120
target17.y=250
target18.height=50
target18.name=DicesList
target18.showInterface=false
target18.type=AbstractTarget
target18.typeParameters=
target18.width=80
target18.x=10
target18.y=430
target19.height=50
target19.name=OffenderDices
target19.showInterface=false
target19.type=ClassTarget
target19.typeParameters=
target19.width=110
target19.x=100
target19.y=430
target2.height=50
target2.name=Label
target2.showInterface=false
target2.type=ClassTarget
target2.typeParameters=
target2.width=80
target2.x=10
target2.y=370
target20.height=50
target20.name=Province
target20.showInterface=false
target20.type=ClassTarget
target20.typeParameters=
target20.width=80
target20.x=130
target20.y=310
target21.height=50
target21.name=GeneralMap
target21.showInterface=false
target21.type=AbstractTarget
target21.typeParameters=
target21.width=90
target21.x=70
target21.y=70
target22.height=50
target22.name=ButtonEvent
target22.showInterface=false
target22.type=InterfaceTarget
target22.typeParameters=
target22.width=90
target22.x=130
target22.y=490
target23.height=50
target23.name=Utils
target23.showInterface=false
target23.type=ClassTarget
target23.typeParameters=
target23.width=80
target23.x=10
target23.y=190
target24.height=50
target24.name=Map
target24.showInterface=false
target24.type=ClassTarget
target24.typeParameters=
target24.width=80
target24.x=190
target24.y=610
target3.height=50
target3.name=Dice_Defender
target3.showInterface=false
target3.type=ClassTarget
target3.typeParameters=
target3.width=110
target3.x=10
target3.y=310
target4.height=50
target4.name=DefenderDices
target4.showInterface=false
target4.type=ClassTarget
target4.typeParameters=
target4.width=110
target4.x=10
target4.y=490
target5.height=50
target5.name=Map_World
target5.showInterface=false
target5.type=ClassTarget
target5.typeParameters=
target5.width=90
target5.x=170
target5.y=70
target6.height=50
target6.name=Button
target6.showInterface=false
target6.type=ClassTarget
target6.typeParameters=
target6.width=80
target6.x=10
target6.y=130
target7.height=50
target7.name=Dice_Offender
target7.showInterface=false
target7.type=ClassTarget
target7.typeParameters=
target7.width=110
target7.x=100
target7.y=130
target8.height=50
target8.name=Colours
target8.showInterface=false
target8.type=ClassTarget
target8.typeParameters=
target8.width=80
target8.x=10
target8.y=610
target9.height=50
target9.name=Start_Load
target9.showInterface=false
target9.type=ClassTarget
target9.typeParameters=
target9.width=90
target9.x=10
target9.y=550
version=2.8.0
world.lastInstantiated=Start_Load
Loading…
Cancel
Save