Update Spiel.java

This commit is contained in:
GordonDaFreeman 2017-09-21 12:49:27 +02:00 committed by GitHub
parent 91f15c4809
commit c4b3007943
1 changed files with 120 additions and 10 deletions

View File

@ -1,25 +1,25 @@
package fußballmanager; package fußballmanager;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.NumberFormat; import java.text.NumberFormat;
import fußballmanager.personen.*; import fußballmanager.personen.*;
public class Spiel { public class Spiel {
int spielzeit; int spielzeit;
int verlängerung; int verlängerung;
Team heimteam; Team heimteam;
Team auswärtsteam; Team auswärtsteam;
Schiedsrichter schiri; Schiedsrichter schiri;
Ball b; Ball b;
//true = heim | false = auswärts //true = heim | false = auswärts
boolean ballBesitz; boolean ballBesitz;
public Spiel(Team heim, Team aus, Schiedsrichter s) { public Spiel(Team heim, Team aus, Schiedsrichter s) {
this.heimteam = heim; this.heimteam = heim;
this.auswärtsteam = aus; this.auswärtsteam = aus;
this.schiri = s; this.schiri = s;
ballBesitz = ((int) Math.random()) == 0 ? true : false; ballBesitz = ((int) Math.random()) == 0 ? true : false;
spielzeit = 0; spielzeit = 0;
@ -37,9 +37,9 @@ public class Spiel {
Team nichtballteam; Team nichtballteam;
if(ballBesitz){ if(ballBesitz){
ballteam = heimteam; ballteam = heimteam;
nichtballteam = auswärtsteam; nichtballteam = auswärtsteam;
}else{ }else{
ballteam = auswärtsteam; ballteam = auswärtsteam;
nichtballteam = heimteam; nichtballteam = heimteam;
} }
for(Spieler s:ballteam.spieler){ for(Spieler s:ballteam.spieler){
@ -53,8 +53,118 @@ public class Spiel {
} }
private void attackPhase() { private void attackPhase() {
Team ballteam;
Team nichtballteam;
if (ballBesitz) {
ballteam = heimteam;
nichtballteam = auswärtsteam;
} else {
ballteam = auswärtsteam;
nichtballteam = heimteam;
}
for (Spieler s : ballteam.spieler) {
if (s.hasBall()) {
boolean weiter = true;
for (Spieler g : nichtballteam.spieler) {
if (weiter)
if (s.p.getDistance(g.p) < 0.5) {
if (g.getAttack() > s.getDef()) {
int rng = new Random().nextInt(100);
if (rng < 89) {
// Ball wurde abgenommen
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) {
// Ball wurde weg gepasst
t.takeBall(s);
}
}
}
break;
}
}
}