diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..96cc43e
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/description.html b/.idea/description.html
new file mode 100644
index 0000000..db5f129
--- /dev/null
+++ b/.idea/description.html
@@ -0,0 +1 @@
+Simple Java application that includes a class with main()
method
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..5a65e9a
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..178af6f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/project-template.xml b/.idea/project-template.xml
new file mode 100644
index 0000000..1f08b88
--- /dev/null
+++ b/.idea/project-template.xml
@@ -0,0 +1,3 @@
+
+ IJ_BASE_PACKAGE
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..e96534f
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..17b2ed9
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,714 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1481022021593
+
+
+ 1481022021593
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Person.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Person.class
new file mode 100644
index 0000000..384ff35
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Person.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Program.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Program.class
index f88d5e9..85640dc 100644
Binary files a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Program.class and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Program.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/RennErgebnis.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/RennErgebnis.class
new file mode 100644
index 0000000..d09e9d8
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/RennErgebnis.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/RennSimulator.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/RennSimulator.class
new file mode 100644
index 0000000..0f2422c
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/RennSimulator.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Rennen.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Rennen.class
index e1c7b36..b010ddc 100644
Binary files a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Rennen.class and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Rennen.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Rennstrecke.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Rennstrecke.class
index 250b8d1..3e1f08b 100644
Binary files a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Rennstrecke.class and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Rennstrecke.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Schnecke.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Schnecke.class
index 9f50b1c..37d44cf 100644
Binary files a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Schnecke.class and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Schnecke.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Wettbüro.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Wettbüro.class
new file mode 100644
index 0000000..4ff1ad8
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Wettbüro.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Wette.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Wette.class
new file mode 100644
index 0000000..d9cb777
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/Wette.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/NameBereitsVergebenException.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/NameBereitsVergebenException.class
new file mode 100644
index 0000000..5af7b40
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/NameBereitsVergebenException.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/RennenNichtAktivException.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/RennenNichtAktivException.class
new file mode 100644
index 0000000..bde78f0
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/RennenNichtAktivException.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/SchneckeNichtFreiException.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/SchneckeNichtFreiException.class
new file mode 100644
index 0000000..b44a875
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/SchneckeNichtFreiException.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/StreckeNichtFreiException.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/StreckeNichtFreiException.class
new file mode 100644
index 0000000..cb0aed6
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/StreckeNichtFreiException.class differ
diff --git a/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/ZuWenigGeldException.class b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/ZuWenigGeldException.class
new file mode 100644
index 0000000..9d96625
Binary files /dev/null and b/out/production/PGTL-Programs/ninja/brunner/pgtl/program3/exceptions/ZuWenigGeldException.class differ
diff --git a/src/ninja/brunner/pgtl/program3/Person.java b/src/ninja/brunner/pgtl/program3/Person.java
new file mode 100644
index 0000000..8d7f365
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/Person.java
@@ -0,0 +1,20 @@
+package ninja.brunner.pgtl.program3;
+
+import java.util.ArrayList;
+
+public class Person {
+ public String name;
+ public float guthaben;
+
+ public Person(String name, float guthaben) {
+ this.name = name;
+ this.guthaben = guthaben;
+ }
+
+ public ArrayList getZugeröhrigeWetten()
+ {
+ ArrayList wetten = new ArrayList();
+
+ return wetten;
+ }
+}
diff --git a/src/ninja/brunner/pgtl/program3/Program.java b/src/ninja/brunner/pgtl/program3/Program.java
index 5c2571b..98433c4 100644
--- a/src/ninja/brunner/pgtl/program3/Program.java
+++ b/src/ninja/brunner/pgtl/program3/Program.java
@@ -1,10 +1,81 @@
package ninja.brunner.pgtl.program3;
+import ninja.brunner.pgtl.program3.exceptions.NameBereitsVergebenException;
+import ninja.brunner.pgtl.program3.exceptions.ZuWenigGeldException;
+
+import java.util.ArrayList;
+
public class Program {
public static void main(String[] args) throws InterruptedException {
- Rennen rennen = new Rennen();
- rennen.run();
+ System.out.println("Initialisiere...");
- System.out.println("Rennen beendet!");
+ RennSimulator rennSimulator = new RennSimulator();
+ Wettbüro büro = new Wettbüro();
+
+ try {
+ Rennstrecke rennstrecken[] = {
+ rennSimulator.registriereRennstrecke("Kurze Strecke", 75),
+ rennSimulator.registriereRennstrecke("Mittlere Strecke", 100),
+ rennSimulator.registriereRennstrecke("Lange Strecke", 125),
+ rennSimulator.registriereRennstrecke("Extra lange Strecke", 150)
+ };
+
+ Schnecke schnecken[] = {
+ rennSimulator.registriereSchnecke("Schnecke 1"),
+ rennSimulator.registriereSchnecke("Schnecke 2"),
+ rennSimulator.registriereSchnecke("Schnecke 3"),
+ rennSimulator.registriereSchnecke("Schnecke 4"),
+ rennSimulator.registriereSchnecke("Schnecke 5"),
+ rennSimulator.registriereSchnecke("Schnecke 6"),
+ rennSimulator.registriereSchnecke("Schnecke 7"),
+ rennSimulator.registriereSchnecke("Schnecke 8"),
+ rennSimulator.registriereSchnecke("Schnecke 9"),
+ rennSimulator.registriereSchnecke("Schnecke 10"),
+ rennSimulator.registriereSchnecke("Schnecke 11"),
+ rennSimulator.registriereSchnecke("Schnecke 12"),
+ rennSimulator.registriereSchnecke("Schnecke 13"),
+ rennSimulator.registriereSchnecke("Schnecke 14"),
+ rennSimulator.registriereSchnecke("Schnecke 15"),
+ rennSimulator.registriereSchnecke("Schnecke 16"),
+ rennSimulator.registriereSchnecke("Schnecke 17")
+ };
+
+ Rennen rennen[] = {
+ rennSimulator.registriereRennen("Rennen 1", rennstrecken[0], new Schnecke[] { schnecken[0], schnecken[1], schnecken[3] }),
+ rennSimulator.registriereRennen("Rennen 2", rennstrecken[0], new Schnecke[] { schnecken[2], schnecken[3], schnecken[4] }),
+ rennSimulator.registriereRennen("Rennen 3", rennstrecken[1], new Schnecke[] { schnecken[2], schnecken[3], schnecken[4] }),
+ rennSimulator.registriereRennen("Rennen 4", rennstrecken[1], new Schnecke[] { schnecken[4], schnecken[5], schnecken[6] })
+ };
+
+ Person personen[] = {
+ büro.registrierePerson("Person 1", 1234),
+ büro.registrierePerson("Person 2", 12345),
+ büro.registrierePerson("Person 3", 123),
+ büro.registrierePerson("Person 4", 4444),
+ büro.registrierePerson("Person 5", 1500),
+ büro.registrierePerson("Person 6", 8123),
+ büro.registrierePerson("Person 7", 1000),
+ büro.registrierePerson("Person 8", 5555)
+ };
+
+ büro.wetteAbschließen(personen[0], rennen[0], rennen[0].schnecken[0], 100);
+ büro.wetteAbschließen(personen[0], rennen[0], rennen[0].schnecken[0], 100);
+ büro.wetteAbschließen(personen[0], rennen[0], rennen[0].schnecken[0], 100);
+ büro.wetteAbschließen(personen[0], rennen[0], rennen[0].schnecken[0], 100);
+ }
+ catch (NameBereitsVergebenException ex)
+ {
+ System.out.println("Fehler beim Initialisieren: " + ex.toString());
+ return;
+ }
+ catch (ZuWenigGeldException ex)
+ {
+ System.out.println("Fehler beim Initialisieren: " + ex.toString());
+ return;
+ }
+
+ rennSimulator.start();
+
+ System.out.println("Simulation beendet.");
}
}
diff --git a/src/ninja/brunner/pgtl/program3/RennErgebnis.java b/src/ninja/brunner/pgtl/program3/RennErgebnis.java
new file mode 100644
index 0000000..6e837c3
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/RennErgebnis.java
@@ -0,0 +1,11 @@
+package ninja.brunner.pgtl.program3;
+
+public class RennErgebnis {
+ Rennen rennen;
+ Schnecke gewinner[];
+
+ public RennErgebnis(Rennen rennen, Schnecke[] gewinner) {
+ this.rennen = rennen;
+ this.gewinner = gewinner;
+ }
+}
diff --git a/src/ninja/brunner/pgtl/program3/RennSimulator.java b/src/ninja/brunner/pgtl/program3/RennSimulator.java
new file mode 100644
index 0000000..9437a9c
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/RennSimulator.java
@@ -0,0 +1,72 @@
+package ninja.brunner.pgtl.program3;
+
+import ninja.brunner.pgtl.program3.exceptions.NameBereitsVergebenException;
+
+import java.util.ArrayList;
+
+public class RennSimulator {
+ private ArrayList rennstrecken;
+ private ArrayList schnecken;
+ private ArrayList rennen;
+ private boolean changesAllowed;
+
+ public RennSimulator()
+ {
+ rennstrecken = new ArrayList();
+ schnecken = new ArrayList();
+ rennen = new ArrayList();
+
+ changesAllowed = true;
+ }
+
+ public Rennstrecke registriereRennstrecke(String name, int length) throws NameBereitsVergebenException {
+ for(Rennstrecke rennstrecke : rennstrecken)
+ if(rennstrecke.name == name)
+ throw new NameBereitsVergebenException();
+
+ Rennstrecke rennstrecke = new Rennstrecke(name, length);
+ rennstrecken.add(rennstrecke);
+ return rennstrecke;
+ }
+
+ public Schnecke registriereSchnecke(String name) throws NameBereitsVergebenException {
+ for(Schnecke schnecke : schnecken)
+ if(schnecke.name == name)
+ throw new NameBereitsVergebenException();
+
+ Schnecke schnecke = new Schnecke(name);
+ schnecken.add(schnecke);
+ return schnecke;
+ }
+
+ public Rennen registriereRennen(String name, Rennstrecke rennstrecke, Schnecke schnecken[]) throws NameBereitsVergebenException {
+ for(Rennen _rennen : rennen)
+ if(_rennen.name == name)
+ throw new NameBereitsVergebenException();
+
+ Rennen _rennen = new Rennen(name, rennstrecke, schnecken);
+ rennen.add(_rennen);
+ return _rennen;
+ }
+
+ public RennErgebnis simuliere(Rennen rennen) {
+ try {
+ rennen.begin();
+
+ //TODO
+
+ rennen.cleanup();
+ }
+ catch (Exception ex) {
+ System.out.println("Unbehandelte Ausnahme in Rennen: " + ex.toString());
+ return null;
+ }
+
+ //TODO
+
+ return null;
+ }
+
+ public void start() {
+ }
+}
diff --git a/src/ninja/brunner/pgtl/program3/Rennen.java b/src/ninja/brunner/pgtl/program3/Rennen.java
index 0d9f40e..218224c 100644
--- a/src/ninja/brunner/pgtl/program3/Rennen.java
+++ b/src/ninja/brunner/pgtl/program3/Rennen.java
@@ -1,34 +1,47 @@
package ninja.brunner.pgtl.program3;
-import java.util.Random;
+import ninja.brunner.pgtl.program3.exceptions.StreckeNichtFreiException;
+import ninja.brunner.pgtl.program3.exceptions.SchneckeNichtFreiException;
+import ninja.brunner.pgtl.program3.exceptions.RennenNichtAktivException;
public class Rennen {
- public Random random;
- public Rennstrecke rennStrecke;
+ String name;
+ Rennstrecke rennStrecke;
+ Schnecke schnecken[];
- public Rennen()
+ boolean currentlyRenning;
+
+ public Rennen(String name, Rennstrecke rennStrecke, Schnecke schnecken[])
{
- random = new Random();
- rennStrecke = new Rennstrecke(this, random.nextInt(50) + 25, random.nextInt(10) + 15);
+ this.name = name;
+ this.rennStrecke = rennStrecke;
+ this.schnecken = schnecken;
+
+ this.currentlyRenning = false;
}
- public void run() throws InterruptedException {
- while(true) {
- rennStrecke.kriechen();
+ public void begin() throws StreckeNichtFreiException, SchneckeNichtFreiException {
+ if(rennStrecke.currentRennen != null)
+ throw new StreckeNichtFreiException();
- System.out.println(rennStrecke.toString());
+ for(Schnecke schnecke : schnecken)
+ if(schnecke.currentRennen != null)
+ throw new SchneckeNichtFreiException();
- boolean anySchneckeUnterwegs = false;
- for(Schnecke schnecke : rennStrecke.schnecken)
- if(schnecke.position < rennStrecke.length) {
- anySchneckeUnterwegs = true;
- break;
- }
+ currentlyRenning = true;
+ rennStrecke.currentRennen = this;
+ for(Schnecke schnecke : schnecken)
+ schnecke.currentRennen = this;
+ }
- if(!anySchneckeUnterwegs)
- break;
+ public void cleanup() throws RennenNichtAktivException
+ {
+ if(!currentlyRenning)
+ throw new RennenNichtAktivException();
- Thread.sleep(1000);
- }
+ currentlyRenning = false;
+ rennStrecke.currentRennen = null;
+ for(Schnecke schnecke : schnecken)
+ schnecke.currentRennen = null;
}
}
diff --git a/src/ninja/brunner/pgtl/program3/Rennstrecke.java b/src/ninja/brunner/pgtl/program3/Rennstrecke.java
index fc0ba7e..69fb89c 100644
--- a/src/ninja/brunner/pgtl/program3/Rennstrecke.java
+++ b/src/ninja/brunner/pgtl/program3/Rennstrecke.java
@@ -1,57 +1,16 @@
package ninja.brunner.pgtl.program3;
-import java.util.ArrayList;
-import java.util.Random;
-import java.util.logging.ConsoleHandler;
-
public class Rennstrecke {
- public Rennen rennen;
+ public String name;
public int length;
- public ArrayList schnecken;
- public int maxNameLength;
- private String[] names = {
- "Namgung",
- "Hwangbo",
- "Jegal",
- "Sagong",
- "Seonu",
- "Seomun",
- "Dokgo",
- "Dongbang"
- };
+ public Rennen currentRennen;
- public Rennstrecke(Rennen rennen, int length, int schneckenCount)
+ public Rennstrecke(String name, int length)
{
- this.rennen = rennen;
+ this.name = name;
this.length = length;
- schnecken = new ArrayList();
- for(int i = 0; i < schneckenCount; i++)
- schnecken.add(new Schnecke(this, names[rennen.random.nextInt(names.length)]));
-
- maxNameLength = 0;
-
- for(Schnecke schnecke : schnecken) {
- if(schnecke.name.length() > maxNameLength)
- maxNameLength = schnecke.name.length();
- }
- }
-
- public void kriechen() {
- for(Schnecke schnecke : schnecken)
- schnecke.kriechen();
- }
-
- public String toString()
- {
- StringBuilder sb = new StringBuilder();
-
- for(Schnecke schnecke : schnecken) {
- sb.append(schnecke.toString());
- sb.append('\n');
- }
-
- return sb.toString();
+ currentRennen = null;
}
}
diff --git a/src/ninja/brunner/pgtl/program3/Schnecke.java b/src/ninja/brunner/pgtl/program3/Schnecke.java
index fb71de2..dc1f324 100644
--- a/src/ninja/brunner/pgtl/program3/Schnecke.java
+++ b/src/ninja/brunner/pgtl/program3/Schnecke.java
@@ -3,46 +3,16 @@ package ninja.brunner.pgtl.program3;
import java.util.Random;
public class Schnecke {
- public static final int minSpeed = 0;
- public static final int maxSpeed = 5;
-
- public Rennstrecke rennstrecke;
public String name;
- public int position;
- public Schnecke(Rennstrecke rennstrecke, String name)
+ public Rennen currentRennen;
+ public Integer position;
+
+ public Schnecke(String name)
{
- this.rennstrecke = rennstrecke;
this.name = name;
- position = 0;
- }
-
- public void kriechen()
- {
- if(position < rennstrecke.length) {
- position += rennstrecke.rennen.random.nextInt(maxSpeed - minSpeed) + minSpeed;
-
- if(position > rennstrecke.length)
- position = rennstrecke.length;
- }
- }
-
- public String toString()
- {
- StringBuilder sb = new StringBuilder();
-
- sb.append(name);
- for(int i = name.length(); i < rennstrecke.maxNameLength; i++)
- sb.append(' ');
- sb.append(": ");
- for(int i = 1; i < position; i++)
- sb.append('.');
- sb.append('M');
- for(int i = position + 1; i < rennstrecke.length; i++)
- sb.append(' ');
- sb.append('#');
-
- return sb.toString();
+ currentRennen = null;
+ position = null;
}
}
diff --git a/src/ninja/brunner/pgtl/program3/Wettbüro.java b/src/ninja/brunner/pgtl/program3/Wettbüro.java
new file mode 100644
index 0000000..44db759
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/Wettbüro.java
@@ -0,0 +1,31 @@
+package ninja.brunner.pgtl.program3;
+
+import java.util.ArrayList;
+import ninja.brunner.pgtl.program3.exceptions.ZuWenigGeldException;
+
+public class Wettbüro {
+ public ArrayList personen;
+ public ArrayList wetten;
+
+ public Wettbüro() {
+ personen = new ArrayList();
+ wetten = new ArrayList();
+ }
+
+ public Wette wetteAbschließen(Person person, Rennen rennen, Schnecke schnecke, float einsatz) throws ZuWenigGeldException {
+
+
+ if(person.guthaben < einsatz)
+ throw new ZuWenigGeldException();
+
+ person.guthaben -= einsatz;
+
+ return new Wette(person, rennen, schnecke, einsatz);
+ }
+
+ public Person registrierePerson(String name, float guthaben) {
+ Person person = new Person(name, guthaben);
+ personen.add(person);
+ return person;
+ }
+}
diff --git a/src/ninja/brunner/pgtl/program3/Wette.java b/src/ninja/brunner/pgtl/program3/Wette.java
new file mode 100644
index 0000000..120561b
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/Wette.java
@@ -0,0 +1,15 @@
+package ninja.brunner.pgtl.program3;
+
+public class Wette {
+ public Person person;
+ public Rennen rennen;
+ public Schnecke schnecke;
+ public float einsatz;
+
+ public Wette(Person person, Rennen rennen, Schnecke schnecke, float einsatz) {
+ this.person = person;
+ this.rennen = rennen;
+ this.schnecke = schnecke;
+ this.einsatz = einsatz;
+ }
+}
diff --git a/src/ninja/brunner/pgtl/program3/exceptions/NameBereitsVergebenException.java b/src/ninja/brunner/pgtl/program3/exceptions/NameBereitsVergebenException.java
new file mode 100644
index 0000000..851e78a
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/exceptions/NameBereitsVergebenException.java
@@ -0,0 +1,4 @@
+package ninja.brunner.pgtl.program3.exceptions;
+
+public class NameBereitsVergebenException extends Exception {
+}
diff --git a/src/ninja/brunner/pgtl/program3/exceptions/RennenNichtAktivException.java b/src/ninja/brunner/pgtl/program3/exceptions/RennenNichtAktivException.java
new file mode 100644
index 0000000..850edae
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/exceptions/RennenNichtAktivException.java
@@ -0,0 +1,4 @@
+package ninja.brunner.pgtl.program3.exceptions;
+
+public class RennenNichtAktivException extends Exception {
+}
diff --git a/src/ninja/brunner/pgtl/program3/exceptions/SchneckeNichtFreiException.java b/src/ninja/brunner/pgtl/program3/exceptions/SchneckeNichtFreiException.java
new file mode 100644
index 0000000..9094891
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/exceptions/SchneckeNichtFreiException.java
@@ -0,0 +1,4 @@
+package ninja.brunner.pgtl.program3.exceptions;
+
+public class SchneckeNichtFreiException extends Exception {
+}
diff --git a/src/ninja/brunner/pgtl/program3/exceptions/StreckeNichtFreiException.java b/src/ninja/brunner/pgtl/program3/exceptions/StreckeNichtFreiException.java
new file mode 100644
index 0000000..c539972
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/exceptions/StreckeNichtFreiException.java
@@ -0,0 +1,7 @@
+package ninja.brunner.pgtl.program3.exceptions;
+
+/**
+ * Created by Daniel on 13.12.2016.
+ */
+public class StreckeNichtFreiException extends Exception {
+}
diff --git a/src/ninja/brunner/pgtl/program3/exceptions/ZuWenigGeldException.java b/src/ninja/brunner/pgtl/program3/exceptions/ZuWenigGeldException.java
new file mode 100644
index 0000000..93d8dd0
--- /dev/null
+++ b/src/ninja/brunner/pgtl/program3/exceptions/ZuWenigGeldException.java
@@ -0,0 +1,4 @@
+package ninja.brunner.pgtl.program3.exceptions;
+
+public class ZuWenigGeldException extends Exception {
+}