initial commit

This commit is contained in:
Dominic 2019-11-29 19:27:56 +01:00
commit c74d331b66
Signed by: msrd0
GPG key ID: DCC8C247452E98F9
17 changed files with 1699 additions and 0 deletions

24
tut7/src/Buerger.java Normal file
View file

@ -0,0 +1,24 @@
public class Buerger
{
private final String name;
public Buerger(final String name)
{
this.name = name;
}
@Override
public String toString()
{
return name;
}
public boolean hatDiebesgut()
{
return false;
}
public void aktion(Buerger buerger[])
{
}
}

36
tut7/src/Dieb.java Normal file
View file

@ -0,0 +1,36 @@
public class Dieb extends Buerger
{
private int diebesgut;
public Dieb(String name)
{
super(name);
diebesgut = 0;
}
@Override
public boolean hatDiebesgut()
{
return (diebesgut > 0);
}
@Override
public void aktion(Buerger buerger[])
{
for (int i = 0; i < 5; i++)
{
int zufall = Zufall.zahl(buerger.length);
if (buerger[zufall] instanceof ReicherBuerger)
{
ReicherBuerger rb = (ReicherBuerger)buerger[zufall];
int klauen = Zufall.zahl(rb.getReichtum());
diebesgut += klauen;
rb.setReichtum(rb.getReichtum() - klauen);
}
else if (buerger[zufall] instanceof Polizist)
{
return;
}
}
}
}

19
tut7/src/Gefangener.java Normal file
View file

@ -0,0 +1,19 @@
public class Gefangener extends Dieb
{
public Gefangener(String name)
{
super(name);
}
@Override
public boolean hatDiebesgut()
{
return false;
}
@Override
public void aktion(Buerger buerger[])
{
System.out.println("Gefangener " + toString() + " aergert sich im Gefaengnis");
}
}

19
tut7/src/Polizist.java Normal file
View file

@ -0,0 +1,19 @@
public class Polizist extends Buerger
{
public Polizist(String name)
{
super(name);
}
@Override
public void aktion(Buerger buerger[])
{
for (int i = 0; i < buerger.length; i++)
{
if (buerger[i].hatDiebesgut())
{
buerger[i] = new Gefangener(buerger[i].toString());
}
}
}
}

View file

@ -0,0 +1,28 @@
public class ReicherBuerger extends Buerger
{
private int reichtum;
public ReicherBuerger(String name, int reichtum)
{
super(name);
this.reichtum = reichtum;
}
@Override
public void aktion(Buerger buerger[])
{
int zufall = Zufall.zahl(reichtum);
System.out.println("Buerger " + toString() + " besticht einen Politiker mit " + zufall + " Euro");
reichtum -= zufall;
}
public int getReichtum()
{
return reichtum;
}
public void setReichtum(int reichtum)
{
this.reichtum = reichtum;
}
}

36
tut7/src/Stadt.java Normal file
View file

@ -0,0 +1,36 @@
public class Stadt
{
private Buerger buerger[];
public Stadt(int anzahl)
{
buerger = new Buerger[anzahl];
for (int i = 0; i < anzahl; i++)
{
int zufall = Zufall.zahl(4);
switch (zufall) {
case 0:
buerger[i] = new Dieb(Zufall.name());
break;
case 1:
buerger[i] = new Gefangener(Zufall.name());
break;
case 2:
buerger[i] = new ReicherBuerger(Zufall.name(), Zufall.zahl(998) + 2);
break;
case 3:
buerger[i] = new Polizist(Zufall.name());
}
}
}
public static void main(String args[])
{
Stadt stadt = new Stadt(10);
for (int i = 0; i < 10; i++)
{
int zufall = Zufall.zahl(10);
stadt.buerger[zufall].aktion(stadt.buerger);
}
}
}

142
tut7/src/Zufall.java Normal file
View file

@ -0,0 +1,142 @@
import java.util.Random;
public class Zufall {
private static Random r = new Random();
/**
* Gibt eine zufaellige Zahl zwischen {@code 0} und {@code i - 1} zurueck.
*
* @param i Die Obergrenze (nicht eingeschlossen).
* @return Die Zufallszahl.
*/
public static int zahl(int i) {
return r.nextInt(i);
}
private static String[] artikel = { "Adventskalender", "Armband", "Buch",
"Christbaumschmuck", "Fensterbild", "Glasfigur", "Handschuhe",
"Holzkrippe", "Holzpuzzle", "Kerze", "Kette", "Kuscheldecke",
"Lichterkette", "Muetze", "Räucherhaus", "Rucksack", "Schal",
"Seife", "Schlitten", "Socken", "Stofftier", "Tasse", "Teedose",
"Teelichtkarussel", "Uhr", "Weihnachtspyramide", "Weihnachtsstern",
"Windlicht" };
private static String[] namen = { "Aaron", "Achmed", "Achmet", "Adrian",
"Ahmad", "Ahmed", "Ahmet", "Aileen", "Alena", "Alex", "Alexander",
"Alexandra", "Ali", "Alica", "Alice", "Alicia", "Alina", "Amelie",
"Amely", "Anabel", "Andre", "Andrea", "Andreas", "Angelina",
"Angelique", "Anica", "Anika", "Anja", "Ann", "Anna", "Annabel",
"Annabell", "Annabelle", "Annalena", "Anne", "Annica", "Annika",
"Annkathrin", "Annkatrin", "Anton", "Antonia", "Armin", "Arne",
"Arthur", "Artur", "Ayleen", "Aylin", "Bastian", "Ben", "Benedict",
"Benedikt", "Benjamin", "Bennet", "Bennett", "Bianca", "Bianka",
"Birte", "Birthe", "Bjarne", "Brian", "Bryan", "Calvin", "Can",
"Caren", "Carina", "Carl", "Carla", "Carlotta", "Carolin",
"Carolina", "Caroline", "Carsten", "Catarina", "Catharina",
"Cathrin", "Catrin", "Cedric", "Cedrik", "Celina", "Celine", "Cem",
"Chantal", "Chantale", "Charlin", "Charline", "Charlotte",
"Chiara", "Chris", "Christian", "Christin", "Christina",
"Christine", "Christof", "Christoph", "Christopher", "Cindy",
"Claas", "Clara", "Claudia", "Clemens", "Colin", "Collin",
"Conrad", "Constantin", "Corinna", "Cornelius", "Dana", "Daniel",
"Daniela", "Danny", "Dario", "David", "Denis", "Denise", "Deniz",
"Dennis", "Diana", "Dilara", "Dominic", "Dominik", "Dominique",
"Dustin", "Eike", "Eileen", "Elena", "Elias", "Elisa", "Elisabeth",
"Emilia", "Emilie", "Emily", "Emma", "Emmily", "Emre", "Enrico",
"Eric", "Erik", "Esther", "Eva", "Fabian", "Fabienne", "Fabio",
"Felix", "Fenja", "Finja", "Finn", "Finnja", "Fiona", "Florian",
"Frank", "Franziska", "Frederic", "Frederik", "Frederike",
"Friederike", "Fynn", "Gabriel", "Georg", "Gerrit", "Gina",
"Gregor", "Greta", "Hanna", "Hannah", "Hannes", "Hans", "Hauke",
"Helen", "Helena", "Hendrik", "Henning", "Henri", "Henrik",
"Henrike", "Henry", "Ina", "Inga", "Isabel", "Isabell", "Isabelle",
"Ivonne", "Jacob", "Jacqueline", "Jakob", "Jan", "Jana", "Janek",
"Janin", "Janina", "Janine", "Janis", "Janna", "Janne", "Jannek",
"Jannes", "Jannik", "Jannika", "Jannis", "Jaqueline", "Jasmin",
"Jasmina", "Jason", "Jasper", "Jean", "Jennifer", "Jenny", "Jens",
"Jeremie", "Jeremy", "Jerome", "Jessica", "Jessika", "Jil", "Jill",
"Joana", "Joanna", "Joel", "Johan", "Johann", "Johanna",
"Johannes", "John", "Jona", "Jonah", "Jonas", "Jonathan",
"Josefine", "Josephine", "Joshua", "Judith", "Jule", "Julia",
"Julian", "Juliane", "Julie", "Julien", "Julius", "Justin",
"Justus", "Kai", "Kaja", "Karen", "Karina", "Karl", "Karla",
"Karlotta", "Karolina", "Karoline", "Karsten", "Katarina",
"Katharina", "Kathrin", "Katja", "Katrin", "Kay", "Kerstin",
"Kevin", "Kiara", "Kilian", "Kim", "Kimberley", "Kimberly", "Kira",
"Klaas", "Klara", "Klemens", "Konrad", "Konstantin", "Korinna",
"Kornelius", "Kristian", "Kristin", "Kristina", "Kristine",
"Kristof", "Kyra", "Lara", "Larissa", "Lars", "Lasse", "Laura",
"Lea", "Leah", "Leif", "Lena", "Lennard", "Lennart", "Leo", "Leon",
"Leonard", "Leoni", "Leonie", "Levin", "Lidia", "Lili", "Lilli",
"Lilly", "Lina", "Linda", "Linn", "Linus", "Lisa", "Liza",
"Lorenz", "Louis", "Louisa", "Louise", "Luca", "Lucas", "Lucie",
"Lucy", "Luis", "Luisa", "Luise", "Luka", "Lukas", "Lydia", "Lynn",
"Madeleine", "Mads", "Magdalena", "Maik", "Maike", "Maja", "Malin",
"Malina", "Malte", "Mandy", "Manuel", "Mara", "Marah", "Marc",
"Marcel", "Marco", "Marcus", "Mareike", "Marek", "Maren", "Maria",
"Mariam", "Marie", "Marina", "Mario", "Marius", "Mark", "Marko",
"Markus", "Marleen", "Marlene", "Marlon", "Marten", "Martin",
"Marvin", "Marwin", "Mathias", "Mathies", "Mathis", "Matis",
"Mats", "Matthias", "Matthis", "Mattis", "Maurice", "Max", "Maxi",
"Maximilian", "Maya", "Mehmet", "Meik", "Meike", "Melanie",
"Melina", "Melissa", "Melvin", "Merle", "Merlin", "Mia", "Michael",
"Michaela", "Michel", "Michelle", "Mike", "Milena", "Mira",
"Miriam", "Mirko", "Mohamed", "Mohammed", "Mona", "Monique",
"Moritz", "Morten", "Muhammed", "Nadine", "Nadja", "Natalie",
"Natascha", "Nathalie", "Neele", "Nele", "Nic", "Nicholas", "Nick",
"Niclas", "Nico", "Nicolai", "Nicolas", "Nicole", "Niels", "Nik",
"Niklas", "Niko", "Nikolai", "Nikolas", "Nils", "Nina", "Noah",
"Nora", "Norman", "Ole", "Oliver", "Olivia", "Oscar", "Oskar",
"Pascal", "Patricia", "Patrick", "Patrik", "Patrizia", "Paul",
"Paula", "Paulina", "Pauline", "Peer", "Per", "Peter", "Phil",
"Philip", "Philipp", "Pia", "Pierre", "Rafael", "Ralf", "Ralph",
"Ramona", "Raphael", "Rebecca", "Rebekka", "Ricarda", "Ricardo",
"Riccardo", "Richard", "Rico", "Riko", "Robert", "Robin", "Roman",
"Ronja", "Ruben", "Sabine", "Sabrina", "Samantha", "Samira",
"Samuel", "Sandra", "Sandro", "Sandy", "Sara", "Sarah", "Sascha",
"Saskia", "Sebastian", "Selina", "Simon", "Simone", "Sina",
"Sinah", "Sofia", "Sofie", "Sonja", "Sophia", "Sophie", "Stefan",
"Stefanie", "Steffen", "Stella", "Stephan", "Stephanie", "Steve",
"Steven", "Susanne", "Svantje", "Svea", "Sven", "Svenja",
"Swantje", "Swen", "Tabea", "Tamara", "Tania", "Tanja", "Tatjana",
"Teresa", "Tessa", "Theresa", "Thies", "Thilo", "Thomas",
"Thorben", "Thore", "Thorge", "Thorsten", "Til", "Till", "Tilo",
"Tim", "Timm", "Timo", "Timon", "Tina", "Tobias", "Tom", "Tomas",
"Toni", "Tony", "Torben", "Tore", "Torge", "Torsten", "Tristan",
"Valentin", "Valerie", "Vanessa", "Verena", "Victor", "Victoria",
"Vievienne", "Viktor", "Viktoria", "Vincent", "Vivien", "Wibke",
"Wiebke", "Yannic", "Yannick", "Yannik", "Yannis", "Yasemin",
"Yasmin", "Yasmina", "Yvonne", "Zoe" };
private static String[] suesswaren = { "gebrannte Mandeln", "Lebkuchen",
"Makronen", "Marzipan", "Pralinen", "Printen", "Schokoladenkugeln",
"Schokofruechte", "Spekulatius", "Waffeln", "Zimtsterne",
"Zuckerstange" };
/**
* Gibt einen zufaelligen Artikel zurueck.
*
* @return Der Artikel.
*/
public static String artikel() {
return artikel[r.nextInt(artikel.length)];
}
/**
* Gibt einen zufaelligen Vornamen zurueck, der in den 90ern beliebt war.
*
* @return Der Vorname.
*/
public static String name() {
return namen[r.nextInt(namen.length)];
}
/**
* Gibt eine zufaellige Suessware zurueck.
*
* @return Die Suessware.
*/
public static String suessware() {
return suesswaren[r.nextInt(suesswaren.length)];
}
}