From 812b2f71c1c94093e39b637b79337d500852c7e1 Mon Sep 17 00:00:00 2001 From: Delta1805 Date: Sat, 23 Sep 2017 14:12:31 +0200 Subject: [PATCH] fUSSBALL 2.0 beta --- src/fussballmanager/Flugbahn.java | 29 +++ src/fussballmanager/Main.java | 29 +++ src/fussballmanager/Position.java | 32 +++ src/fussballmanager/Spiel.java | 198 ++++++++++++++++++ src/fussballmanager/Team.java | 85 ++++++++ src/fussballmanager/namegen/Datenbank.java | 54 +++++ src/fussballmanager/personen/Ball.java | 5 + src/fussballmanager/personen/Person.java | 25 +++ .../personen/Schiedsrichter.java | 10 + src/fussballmanager/personen/Spieler.java | 60 ++++++ src/fussballmanager/personen/Torwart.java | 20 ++ src/fussballmanager/personen/Trainer.java | 24 +++ 12 files changed, 571 insertions(+) create mode 100644 src/fussballmanager/Flugbahn.java create mode 100644 src/fussballmanager/Main.java create mode 100644 src/fussballmanager/Position.java create mode 100644 src/fussballmanager/Spiel.java create mode 100644 src/fussballmanager/Team.java create mode 100644 src/fussballmanager/namegen/Datenbank.java create mode 100644 src/fussballmanager/personen/Ball.java create mode 100644 src/fussballmanager/personen/Person.java create mode 100644 src/fussballmanager/personen/Schiedsrichter.java create mode 100644 src/fussballmanager/personen/Spieler.java create mode 100644 src/fussballmanager/personen/Torwart.java create mode 100644 src/fussballmanager/personen/Trainer.java diff --git a/src/fussballmanager/Flugbahn.java b/src/fussballmanager/Flugbahn.java new file mode 100644 index 0000000..4b3de4b --- /dev/null +++ b/src/fussballmanager/Flugbahn.java @@ -0,0 +1,29 @@ +package fussballmanager; + +public class Flugbahn { + //Steigung m + //Y-Achsen abschnitt b + //Definitionsbereich x1 und x2 + y1 und y2 + + double m,b; + Position p1,p2; + + public Flugbahn(Position p1,Position p2) { + m = (p1.y-p2.y)/(p1.x-p2.x); + b = p1.y+m*p1.x; + } + + public double f(double x){ + return m*x+b; + } + + public boolean isInRange(Position p){ + if(p1.xp.x||p1.x>p.x&&p2.x s.getDef()) { + int rng = new Random().nextInt(100); + if (rng < 89) { + // Ball wurde abgenommen + System.out.println(s.getname() + " gab Ball an " + g.getname()); + g.takeBall(s); + s.motivation -= 20; + } + if (rng < 90) { + + } + if (rng < 101) { + Spieler t = null; + double d = 200; + for (Spieler temp : ballteam.spieler) { + if (s.p.getDistance(temp.p) < d && !temp.equals(s)) { + d = s.p.getDistance(temp.p); + t = temp; + } + } + Flugbahn fb = new Flugbahn(s.p, t.p); + boolean succes = false; + for (Spieler temp : nichtballteam.spieler) { + if (fb.isInRange(temp.p)) { + // Pass wurde unterbrochen + temp.takeBall(s); + succes = true; + break; + } + } + if (!succes) { + // Ball wurde weg gepasst + t.takeBall(s); + } + } + } else { + Spieler t = null; + double d = 200; + for (Spieler temp : ballteam.spieler) { + if (s.p.getDistance(temp.p) < d && !temp.equals(s)) { + d = s.p.getDistance(temp.p); + t = temp; + } + } + Flugbahn fb = new Flugbahn(s.p, t.p); + boolean succes = false; + for (Spieler temp : nichtballteam.spieler) { + if (fb.isInRange(temp.p)) { + // Pass wurde unterbrochen + temp.takeBall(s); + succes = true; + break; + } + } + if (!succes) { + // Ball wurde weg gepasst + t.takeBall(s); + } + } + // + weiter = false; + } + } + if (weiter) { + double tordis = s.p.getDistance(nichtballteam.torwart.p); + Spieler t = null; + boolean ss = false; + for (Spieler m : ballteam.spieler) { + + if (!m.equals(s)) { + if (m.p.getDistance(nichtballteam.torwart.p) < tordis) { + t = m; + ss = true; + } + } + } + + if (t != null&&ss) { + Flugbahn fb = new Flugbahn(s.p, t.p); + boolean succes = false; + for (Spieler temp : nichtballteam.spieler) { + if (fb.isInRange(temp.p)) { + // Pass wurde unterbrochen + temp.takeBall(s); + succes = true; + break; + } + } + if (!succes) { + System.out.println(s.getname() + " passt Ball an " + t.getname()); + // Ball wurde weg gepasst + t.takeBall(s); + } + } + } + break; + } + } + } + + + + public String getSpielzeit() { + String r = ""; + NumberFormat numberFormat = new DecimalFormat("0"); + numberFormat.setRoundingMode(RoundingMode.DOWN); + r += "Spielzeit: " + numberFormat.format(this.spielzeit / 60) + ":"; + if (spielzeit % 60 < 10){ + r += "0"; + } + r += spielzeit % 60; + return r; + } + + +} diff --git a/src/fussballmanager/Team.java b/src/fussballmanager/Team.java new file mode 100644 index 0000000..a87cd8c --- /dev/null +++ b/src/fussballmanager/Team.java @@ -0,0 +1,85 @@ +package fussballmanager; + +import fussballmanager.namegen.Datenbank; +import fussballmanager.personen.*; + +public class Team { + String name; + Trainer trainer; + Spieler[] spieler = new Spieler[10]; + Torwart torwart; + int siege = 0; + + public Team(String name){ + this.name = name; + fülleTeam(); + addTrainer(); + } + + public Team(){ + this.name = Datenbank.genName()+"'s Team"; + fülleTeam(); + addTrainer(); + } + + public void fülleTeam(){ + //Fülle Feldspieler + for(int i =0; i<10;i++){ + spieler[i] = new Spieler(); + } + //Fülle Torwart + torwart = new Torwart(); + } + + public void addTrainer(){ + trainer = new Trainer(); + } + + public void setPositions(boolean heim){ + if (heim){ + torwart.p.x = 5; + torwart.p.y = 22.5; + for(int i = 0; i < 3; i++){ + spieler[i].p.x = 20; + spieler[i].p.y = 7.5+15*i; + } + for(int i = 3; i < 7; i++){ + spieler[i].p.x = 38; + spieler[i].p.y =5.625+11.25*i; + } + for(int i = 7; i < 9; i++){ + spieler[i].p.x = 52; + spieler[i].p.y =11.25+22.5*i; + } + spieler[9].p.x=44; + spieler[9].p.y=45; + }else{ + torwart.p.x = 90-5; + torwart.p.y = 22.5; + for(int i = 0; i < 3; i++){ + spieler[i].p.x = 90-20; + spieler[i].p.y = 7.5+15*i; + } + for(int i = 3; i < 7; i++){ + spieler[i].p.x = 90-38; + spieler[i].p.y =5.625+11.25*i; + } + for(int i = 7; i < 9; i++){ + spieler[i].p.x = 90-52; + spieler[i].p.y =11.25+22.5*i; + } + spieler[9].p.x=46; + spieler[9].p.y=45; + } + + } + + public boolean isInTeam(Person p){ + for(Person pp:spieler){ + if(p.equals(pp)) return true; + } + if(torwart.equals(p)) return true; + return false; + } +} + diff --git a/src/fussballmanager/namegen/Datenbank.java b/src/fussballmanager/namegen/Datenbank.java new file mode 100644 index 0000000..601332c --- /dev/null +++ b/src/fussballmanager/namegen/Datenbank.java @@ -0,0 +1,54 @@ +package fussballmanager.namegen; + +import java.util.ArrayList; + +public class Datenbank { + int n = 100; + static int counterName = 0; + static int counterVorname = 0; + static int counterBeiname = 0; + static String[] nameFeld; + static ArrayList namen = new ArrayList();// + static ArrayList vornamen = new ArrayList(); + static ArrayList beinamen = new ArrayList(); + + public static String genName(){ + String r = ""; + namenListeFüllen(); + r += namen.get((int) (Math.random() * namen.size())); + return r; + } + + public static String genVorname(){ + String r = ""; + vornameFeldFüllen(); + r += vornamen.get((int) (Math.random() * vornamen.size())); + return r; + } + + static void namenListeFüllen(){ + namen.add("Günter");// + namen.add("Diabetes"); + namen.add("Dextrose"); + namen.add("Hackschnetzler"); + namen.add("Rasur"); + namen.add("Algrim"); + namen.add("Schmitz"); + namen.add("Wühl"); + namen.add("Hommers"); + namen.add("Dagoba"); + } + + static void vornameFeldFüllen(){ + vornamen.add("Günter");// + vornamen.add("Gorden"); + vornamen.add("Dr."); + vornamen.add("Profi"); + vornamen.add("Hommers"); + vornamen.add("Metti"); + vornamen.add("Moriz"); + vornamen.add("Läon"); + vornamen.add("Hommers"); + vornamen.add("Willi"); + } +} diff --git a/src/fussballmanager/personen/Ball.java b/src/fussballmanager/personen/Ball.java new file mode 100644 index 0000000..d9652c5 --- /dev/null +++ b/src/fussballmanager/personen/Ball.java @@ -0,0 +1,5 @@ +package fussballmanager.personen; + +public class Ball{ + public Spieler s; +} diff --git a/src/fussballmanager/personen/Person.java b/src/fussballmanager/personen/Person.java new file mode 100644 index 0000000..12723c0 --- /dev/null +++ b/src/fussballmanager/personen/Person.java @@ -0,0 +1,25 @@ +package fussballmanager.personen; + +import fussballmanager.Team; + +public abstract class Person { + int alter; + Team team; + String name,vorname; + + public void setTeam(Team team){ + this.team = team; + } + + public Team getTeam(){ + return team; + } + + public boolean isInTeam(Person p){ + return team.isInTeam(p); + } + + public String getname() { + return vorname + " " + name; + } +} diff --git a/src/fussballmanager/personen/Schiedsrichter.java b/src/fussballmanager/personen/Schiedsrichter.java new file mode 100644 index 0000000..9a77b20 --- /dev/null +++ b/src/fussballmanager/personen/Schiedsrichter.java @@ -0,0 +1,10 @@ +package fussballmanager.personen; + +import fussballmanager.namegen.Datenbank; + +public class Schiedsrichter extends Person{ + public Schiedsrichter(){ + name = Datenbank.genName(); + vorname = Datenbank.genVorname(); + } +} diff --git a/src/fussballmanager/personen/Spieler.java b/src/fussballmanager/personen/Spieler.java new file mode 100644 index 0000000..cf3a9e4 --- /dev/null +++ b/src/fussballmanager/personen/Spieler.java @@ -0,0 +1,60 @@ +package fussballmanager.personen; + +import java.util.Random; + +import fussballmanager.Position; +import fussballmanager.namegen.Datenbank; + +public class Spieler extends Person { + int stärke; + int verteidigung; + int tore; + public int motivation; + public double geschwindigkeit; + public Position p; + Ball b; + int karte = 0; + + public int getAttack() { + return (int) (stärke+(0.2*motivation)); + } + + public int getDef() { + return (int) (verteidigung+(0.2*motivation)); + } + + + public void setBall(Ball b){ + this.b = b; + } + + public void takeBall(Spieler s){ + b = s.b; + b.s = s; + s.b = null; + } + + public Spieler(int stärke, int verteidigung, int alter, String vorname, + String name) { + this.stärke = stärke; + this.verteidigung = verteidigung; + this.alter = alter; + this.vorname = vorname; + this.name = name; + } + + public Spieler() { + int random = new Random().nextInt(100); + this.verteidigung = random; + this.stärke = 100-random; + this.geschwindigkeit = 4+Math.random()*2; + this.vorname = Datenbank.genVorname(); + this.name = Datenbank.genName(); + p = new Position(0,0); + } + + public boolean hasBall() { + if(b!=null) return true; + return false; + } +} diff --git a/src/fussballmanager/personen/Torwart.java b/src/fussballmanager/personen/Torwart.java new file mode 100644 index 0000000..3c98f08 --- /dev/null +++ b/src/fussballmanager/personen/Torwart.java @@ -0,0 +1,20 @@ +package fussballmanager.personen; + +import java.util.Random; + +import fussballmanager.Position; +import fussballmanager.namegen.Datenbank; + +public class Torwart extends Spieler{ + + public Torwart() { + int random = new Random().nextInt(100); + this.verteidigung = random; + this.stärke = 100-random; + this.geschwindigkeit = 4+Math.random()*2; + this.vorname = Datenbank.genVorname(); + this.name = Datenbank.genName(); + p = new Position(0,0); + } + +} diff --git a/src/fussballmanager/personen/Trainer.java b/src/fussballmanager/personen/Trainer.java new file mode 100644 index 0000000..cab5d56 --- /dev/null +++ b/src/fussballmanager/personen/Trainer.java @@ -0,0 +1,24 @@ +package fussballmanager.personen; + +import fussballmanager.namegen.Datenbank; + +public class Trainer extends Person{ + int inspiration; + int erfahrung = 0; + + public Trainer(){ + this.name = Datenbank.genName(); + this.vorname = Datenbank.genVorname(); + this.inspiration = (int) (Math.random()*100); + } + + public Trainer(String vorname, String name, int inspiration){ + this.name = name; + this.vorname = vorname; + this.inspiration = inspiration; + } + + + + +}